Cabal 1.24.2.0 → 2.0.0.2
raw patch · 561 files changed
+36087/−16019 lines, 561 filesdep +generics-sopdep +keysdep +parsecdep −exceptionsdep −regex-posixdep ~QuickCheckdep ~arraydep ~basebinary-addedPVP ok
version bump matches the API change (PVP)
Dependencies added: generics-sop, keys, parsec, singleton-bool, tar, these
Dependencies removed: exceptions, regex-posix
Dependency ranges changed: QuickCheck, array, base, bytestring, containers, directory, filepath, old-time, process, unix
API changes (from Hackage documentation)
- Distribution.InstalledPackageInfo: OriginalModule :: UnitId -> ModuleName -> OriginalModule
- Distribution.InstalledPackageInfo: [originalModuleName] :: OriginalModule -> ModuleName
- Distribution.InstalledPackageInfo: [originalPackageId] :: OriginalModule -> UnitId
- Distribution.InstalledPackageInfo: data OriginalModule
- Distribution.InstalledPackageInfo: instance Data.Binary.Class.Binary Distribution.InstalledPackageInfo.OriginalModule
- Distribution.InstalledPackageInfo: instance Distribution.Text.Text Distribution.InstalledPackageInfo.OriginalModule
- Distribution.InstalledPackageInfo: instance GHC.Classes.Eq Distribution.InstalledPackageInfo.OriginalModule
- Distribution.InstalledPackageInfo: instance GHC.Generics.Generic Distribution.InstalledPackageInfo.OriginalModule
- Distribution.InstalledPackageInfo: instance GHC.Read.Read Distribution.InstalledPackageInfo.OriginalModule
- Distribution.InstalledPackageInfo: instance GHC.Show.Show Distribution.InstalledPackageInfo.OriginalModule
- Distribution.Make: Version :: [Int] -> [String] -> Version
- Distribution.Make: [versionBranch] :: Version -> [Int]
- Distribution.Make: [versionTags] :: Version -> [String]
- Distribution.ModuleName: data ModuleName
- Distribution.Package: AbiHash :: String -> AbiHash
- Distribution.Package: ComponentId :: String -> ComponentId
- Distribution.Package: Dependency :: PackageName -> VersionRange -> Dependency
- Distribution.Package: PackageIdentifier :: PackageName -> Version -> PackageIdentifier
- Distribution.Package: PackageName :: String -> PackageName
- Distribution.Package: SimpleUnitId :: ComponentId -> UnitId
- Distribution.Package: [pkgName] :: PackageIdentifier -> PackageName
- Distribution.Package: [pkgVersion] :: PackageIdentifier -> Version
- Distribution.Package: [unPackageName] :: PackageName -> String
- Distribution.Package: data ComponentId
- Distribution.Package: data Dependency
- Distribution.Package: data PackageIdentifier
- Distribution.Package: getHSLibraryName :: UnitId -> String
- Distribution.Package: instance Control.DeepSeq.NFData Distribution.Package.ComponentId
- Distribution.Package: instance Control.DeepSeq.NFData Distribution.Package.PackageIdentifier
- Distribution.Package: instance Control.DeepSeq.NFData Distribution.Package.PackageName
- Distribution.Package: instance Control.DeepSeq.NFData Distribution.Package.UnitId
- Distribution.Package: instance Data.Binary.Class.Binary Distribution.Package.AbiHash
- Distribution.Package: instance Data.Binary.Class.Binary Distribution.Package.ComponentId
- Distribution.Package: instance Data.Binary.Class.Binary Distribution.Package.Dependency
- Distribution.Package: instance Data.Binary.Class.Binary Distribution.Package.PackageIdentifier
- Distribution.Package: instance Data.Binary.Class.Binary Distribution.Package.PackageName
- Distribution.Package: instance Data.Binary.Class.Binary Distribution.Package.UnitId
- Distribution.Package: instance Data.Data.Data Distribution.Package.ComponentId
- Distribution.Package: instance Data.Data.Data Distribution.Package.Dependency
- Distribution.Package: instance Data.Data.Data Distribution.Package.PackageIdentifier
- Distribution.Package: instance Data.Data.Data Distribution.Package.PackageName
- Distribution.Package: instance Data.Data.Data Distribution.Package.UnitId
- Distribution.Package: instance Distribution.Package.Package Distribution.Package.PackageIdentifier
- Distribution.Package: instance Distribution.Text.Text Distribution.Package.AbiHash
- Distribution.Package: instance Distribution.Text.Text Distribution.Package.ComponentId
- Distribution.Package: instance Distribution.Text.Text Distribution.Package.Dependency
- Distribution.Package: instance Distribution.Text.Text Distribution.Package.PackageIdentifier
- Distribution.Package: instance Distribution.Text.Text Distribution.Package.PackageName
- Distribution.Package: instance Distribution.Text.Text Distribution.Package.UnitId
- Distribution.Package: instance GHC.Classes.Eq Distribution.Package.AbiHash
- Distribution.Package: instance GHC.Classes.Eq Distribution.Package.ComponentId
- Distribution.Package: instance GHC.Classes.Eq Distribution.Package.Dependency
- Distribution.Package: instance GHC.Classes.Eq Distribution.Package.PackageIdentifier
- Distribution.Package: instance GHC.Classes.Eq Distribution.Package.PackageName
- Distribution.Package: instance GHC.Classes.Eq Distribution.Package.UnitId
- Distribution.Package: instance GHC.Classes.Ord Distribution.Package.ComponentId
- Distribution.Package: instance GHC.Classes.Ord Distribution.Package.PackageIdentifier
- Distribution.Package: instance GHC.Classes.Ord Distribution.Package.PackageName
- Distribution.Package: instance GHC.Classes.Ord Distribution.Package.UnitId
- Distribution.Package: instance GHC.Generics.Generic Distribution.Package.AbiHash
- Distribution.Package: instance GHC.Generics.Generic Distribution.Package.ComponentId
- Distribution.Package: instance GHC.Generics.Generic Distribution.Package.Dependency
- Distribution.Package: instance GHC.Generics.Generic Distribution.Package.PackageIdentifier
- Distribution.Package: instance GHC.Generics.Generic Distribution.Package.PackageName
- Distribution.Package: instance GHC.Generics.Generic Distribution.Package.UnitId
- Distribution.Package: instance GHC.Read.Read Distribution.Package.AbiHash
- Distribution.Package: instance GHC.Read.Read Distribution.Package.ComponentId
- Distribution.Package: instance GHC.Read.Read Distribution.Package.Dependency
- Distribution.Package: instance GHC.Read.Read Distribution.Package.PackageIdentifier
- Distribution.Package: instance GHC.Read.Read Distribution.Package.PackageName
- Distribution.Package: instance GHC.Read.Read Distribution.Package.UnitId
- Distribution.Package: instance GHC.Show.Show Distribution.Package.AbiHash
- Distribution.Package: instance GHC.Show.Show Distribution.Package.ComponentId
- Distribution.Package: instance GHC.Show.Show Distribution.Package.Dependency
- Distribution.Package: instance GHC.Show.Show Distribution.Package.PackageIdentifier
- Distribution.Package: instance GHC.Show.Show Distribution.Package.PackageName
- Distribution.Package: instance GHC.Show.Show Distribution.Package.UnitId
- Distribution.Package: mkLegacyUnitId :: PackageId -> UnitId
- Distribution.Package: mkUnitId :: String -> UnitId
- Distribution.Package: newtype AbiHash
- Distribution.Package: newtype PackageName
- Distribution.Package: newtype UnitId
- Distribution.Package: notThisPackageVersion :: PackageIdentifier -> Dependency
- Distribution.Package: simplifyDependency :: Dependency -> Dependency
- Distribution.Package: thisPackageVersion :: PackageIdentifier -> Dependency
- Distribution.Package: type InstalledPackageId = UnitId
- Distribution.Package: type PackageId = PackageIdentifier
- Distribution.PackageDescription: FlagName :: String -> FlagName
- Distribution.PackageDescription: [benchmarkEnabled] :: Benchmark -> Bool
- Distribution.PackageDescription: [exposedSignatures] :: Library -> [ModuleName]
- Distribution.PackageDescription: [requiredSignatures] :: Library -> [ModuleName]
- Distribution.PackageDescription: [targetBuildRenaming] :: BuildInfo -> Map PackageName ModuleRenaming
- Distribution.PackageDescription: [testEnabled] :: TestSuite -> Bool
- Distribution.PackageDescription: enabledBenchmarks :: PackageDescription -> [Benchmark]
- Distribution.PackageDescription: enabledTests :: PackageDescription -> [TestSuite]
- Distribution.PackageDescription: instance (Data.Binary.Class.Binary v, Data.Binary.Class.Binary c, Data.Binary.Class.Binary a) => Data.Binary.Class.Binary (Distribution.PackageDescription.CondTree v c a)
- Distribution.PackageDescription: instance (Data.Data.Data a, Data.Data.Data c, Data.Data.Data v) => Data.Data.Data (Distribution.PackageDescription.CondTree v c a)
- Distribution.PackageDescription: instance (GHC.Classes.Eq v, GHC.Classes.Eq c, GHC.Classes.Eq a) => GHC.Classes.Eq (Distribution.PackageDescription.CondTree v c a)
- Distribution.PackageDescription: instance (GHC.Show.Show v, GHC.Show.Show c, GHC.Show.Show a) => GHC.Show.Show (Distribution.PackageDescription.CondTree v c a)
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.Benchmark
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.BenchmarkInterface
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.BenchmarkType
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.BuildInfo
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.BuildType
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.ConfVar
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.Executable
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.Flag
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.FlagName
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.GenericPackageDescription
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.Library
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.ModuleReexport
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.PackageDescription
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.RepoKind
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.RepoType
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.SetupBuildInfo
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.SourceRepo
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.TestSuite
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.TestSuiteInterface
- Distribution.PackageDescription: instance Data.Binary.Class.Binary Distribution.PackageDescription.TestType
- Distribution.PackageDescription: instance Data.Binary.Class.Binary c => Data.Binary.Class.Binary (Distribution.PackageDescription.Condition c)
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.Benchmark
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.BenchmarkInterface
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.BenchmarkType
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.BuildInfo
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.BuildType
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.ConfVar
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.Executable
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.Flag
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.FlagName
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.GenericPackageDescription
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.Library
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.ModuleReexport
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.PackageDescription
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.RepoKind
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.RepoType
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.SetupBuildInfo
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.SourceRepo
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.TestSuite
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.TestSuiteInterface
- Distribution.PackageDescription: instance Data.Data.Data Distribution.PackageDescription.TestType
- Distribution.PackageDescription: instance Data.Data.Data c => Data.Data.Data (Distribution.PackageDescription.Condition c)
- Distribution.PackageDescription: instance Data.Foldable.Foldable Distribution.PackageDescription.Condition
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup (Distribution.PackageDescription.Condition a)
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup Distribution.PackageDescription.Benchmark
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup Distribution.PackageDescription.BenchmarkInterface
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup Distribution.PackageDescription.BuildInfo
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup Distribution.PackageDescription.Executable
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup Distribution.PackageDescription.Library
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup Distribution.PackageDescription.SetupBuildInfo
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup Distribution.PackageDescription.TestSuite
- Distribution.PackageDescription: instance Data.Semigroup.Semigroup Distribution.PackageDescription.TestSuiteInterface
- Distribution.PackageDescription: instance Data.Traversable.Traversable Distribution.PackageDescription.Condition
- Distribution.PackageDescription: instance Distribution.Package.Package Distribution.PackageDescription.GenericPackageDescription
- Distribution.PackageDescription: instance Distribution.Package.Package Distribution.PackageDescription.PackageDescription
- Distribution.PackageDescription: instance Distribution.Text.Text Distribution.PackageDescription.BenchmarkType
- Distribution.PackageDescription: instance Distribution.Text.Text Distribution.PackageDescription.BuildType
- Distribution.PackageDescription: instance Distribution.Text.Text Distribution.PackageDescription.ModuleReexport
- Distribution.PackageDescription: instance Distribution.Text.Text Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance Distribution.Text.Text Distribution.PackageDescription.RepoKind
- Distribution.PackageDescription: instance Distribution.Text.Text Distribution.PackageDescription.RepoType
- Distribution.PackageDescription: instance Distribution.Text.Text Distribution.PackageDescription.TestType
- Distribution.PackageDescription: instance GHC.Base.Alternative Distribution.PackageDescription.Condition
- Distribution.PackageDescription: instance GHC.Base.Applicative Distribution.PackageDescription.Condition
- Distribution.PackageDescription: instance GHC.Base.Functor Distribution.PackageDescription.Condition
- Distribution.PackageDescription: instance GHC.Base.Monad Distribution.PackageDescription.Condition
- Distribution.PackageDescription: instance GHC.Base.MonadPlus Distribution.PackageDescription.Condition
- Distribution.PackageDescription: instance GHC.Base.Monoid (Distribution.PackageDescription.Condition a)
- Distribution.PackageDescription: instance GHC.Base.Monoid Distribution.PackageDescription.Benchmark
- Distribution.PackageDescription: instance GHC.Base.Monoid Distribution.PackageDescription.BenchmarkInterface
- Distribution.PackageDescription: instance GHC.Base.Monoid Distribution.PackageDescription.BuildInfo
- Distribution.PackageDescription: instance GHC.Base.Monoid Distribution.PackageDescription.Executable
- Distribution.PackageDescription: instance GHC.Base.Monoid Distribution.PackageDescription.Library
- Distribution.PackageDescription: instance GHC.Base.Monoid Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance GHC.Base.Monoid Distribution.PackageDescription.SetupBuildInfo
- Distribution.PackageDescription: instance GHC.Base.Monoid Distribution.PackageDescription.TestSuite
- Distribution.PackageDescription: instance GHC.Base.Monoid Distribution.PackageDescription.TestSuiteInterface
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.Benchmark
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.BenchmarkInterface
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.BenchmarkType
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.BuildInfo
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.BuildType
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.ConfVar
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.Executable
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.Flag
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.FlagName
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.GenericPackageDescription
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.Library
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.ModuleReexport
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.PackageDescription
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.RepoKind
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.RepoType
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.SetupBuildInfo
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.SourceRepo
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.TestSuite
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.TestSuiteInterface
- Distribution.PackageDescription: instance GHC.Classes.Eq Distribution.PackageDescription.TestType
- Distribution.PackageDescription: instance GHC.Classes.Eq c => GHC.Classes.Eq (Distribution.PackageDescription.Condition c)
- Distribution.PackageDescription: instance GHC.Classes.Ord Distribution.PackageDescription.FlagName
- Distribution.PackageDescription: instance GHC.Classes.Ord Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance GHC.Classes.Ord Distribution.PackageDescription.RepoKind
- Distribution.PackageDescription: instance GHC.Classes.Ord Distribution.PackageDescription.RepoType
- Distribution.PackageDescription: instance GHC.Generics.Generic (Distribution.PackageDescription.CondTree v c a)
- Distribution.PackageDescription: instance GHC.Generics.Generic (Distribution.PackageDescription.Condition c)
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.Benchmark
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.BenchmarkInterface
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.BenchmarkType
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.BuildInfo
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.BuildType
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.ConfVar
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.Executable
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.Flag
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.FlagName
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.GenericPackageDescription
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.Library
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.ModuleReexport
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.PackageDescription
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.RepoKind
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.RepoType
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.SetupBuildInfo
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.SourceRepo
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.TestSuite
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.TestSuiteInterface
- Distribution.PackageDescription: instance GHC.Generics.Generic Distribution.PackageDescription.TestType
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.Benchmark
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.BenchmarkInterface
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.BenchmarkType
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.BuildInfo
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.BuildType
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.Executable
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.FlagName
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.Library
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.ModuleReexport
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.PackageDescription
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.RepoKind
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.RepoType
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.SetupBuildInfo
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.SourceRepo
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.TestSuite
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.TestSuiteInterface
- Distribution.PackageDescription: instance GHC.Read.Read Distribution.PackageDescription.TestType
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.Benchmark
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.BenchmarkInterface
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.BenchmarkType
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.BuildInfo
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.BuildType
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.ConfVar
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.Executable
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.Flag
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.FlagName
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.GenericPackageDescription
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.Library
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.ModuleReexport
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.ModuleRenaming
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.PackageDescription
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.RepoKind
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.RepoType
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.SetupBuildInfo
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.SourceRepo
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.TestSuite
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.TestSuiteInterface
- Distribution.PackageDescription: instance GHC.Show.Show Distribution.PackageDescription.TestType
- Distribution.PackageDescription: instance GHC.Show.Show c => GHC.Show.Show (Distribution.PackageDescription.Condition c)
- Distribution.PackageDescription: lookupRenaming :: Package pkg => pkg -> Map PackageName ModuleRenaming -> ModuleRenaming
- Distribution.PackageDescription: newtype FlagName
- Distribution.PackageDescription.Configuration: instance Data.Semigroup.Semigroup Distribution.PackageDescription.Configuration.DependencyMap
- Distribution.PackageDescription.Configuration: instance GHC.Base.Monoid Distribution.PackageDescription.Configuration.DependencyMap
- Distribution.PackageDescription.Configuration: instance GHC.Read.Read Distribution.PackageDescription.Configuration.DependencyMap
- Distribution.PackageDescription.Configuration: instance GHC.Show.Show Distribution.PackageDescription.Configuration.DependencyMap
- Distribution.PackageDescription.Parse: showHookedBuildInfo :: HookedBuildInfo -> String
- Distribution.PackageDescription.Parse: showPackageDescription :: PackageDescription -> String
- Distribution.PackageDescription.Parse: writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> IO ()
- Distribution.PackageDescription.Parse: writePackageDescription :: FilePath -> PackageDescription -> IO ()
- Distribution.Simple.BuildPaths: haddockPref' :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
- Distribution.Simple.BuildPaths: hscolourPref' :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
- Distribution.Simple.LocalBuildInfo: DisabledAllBenchmarks :: ComponentDisabledReason
- Distribution.Simple.LocalBuildInfo: DisabledAllTests :: ComponentDisabledReason
- Distribution.Simple.LocalBuildInfo: DisabledComponent :: ComponentDisabledReason
- Distribution.Simple.LocalBuildInfo: [componentPackageRenaming] :: ComponentLocalBuildInfo -> Map PackageName ModuleRenaming
- Distribution.Simple.LocalBuildInfo: [componentsConfigs] :: LocalBuildInfo -> [(ComponentName, ComponentLocalBuildInfo, [ComponentName])]
- Distribution.Simple.LocalBuildInfo: checkComponentsCyclic :: Ord key => [(node, key, [key])] -> Maybe [(node, key, [key])]
- Distribution.Simple.LocalBuildInfo: componentDisabledReason :: Component -> Maybe ComponentDisabledReason
- Distribution.Simple.LocalBuildInfo: componentEnabled :: Component -> Bool
- Distribution.Simple.LocalBuildInfo: data ComponentDisabledReason
- Distribution.Simple.LocalBuildInfo: instance Data.Binary.Class.Binary Distribution.Simple.LocalBuildInfo.ComponentLocalBuildInfo
- Distribution.Simple.LocalBuildInfo: instance Data.Binary.Class.Binary Distribution.Simple.LocalBuildInfo.ComponentName
- Distribution.Simple.LocalBuildInfo: instance Data.Binary.Class.Binary Distribution.Simple.LocalBuildInfo.LocalBuildInfo
- Distribution.Simple.LocalBuildInfo: instance GHC.Classes.Eq Distribution.Simple.LocalBuildInfo.Component
- Distribution.Simple.LocalBuildInfo: instance GHC.Classes.Eq Distribution.Simple.LocalBuildInfo.ComponentName
- Distribution.Simple.LocalBuildInfo: instance GHC.Classes.Ord Distribution.Simple.LocalBuildInfo.ComponentName
- Distribution.Simple.LocalBuildInfo: instance GHC.Generics.Generic Distribution.Simple.LocalBuildInfo.ComponentLocalBuildInfo
- Distribution.Simple.LocalBuildInfo: instance GHC.Generics.Generic Distribution.Simple.LocalBuildInfo.ComponentName
- Distribution.Simple.LocalBuildInfo: instance GHC.Generics.Generic Distribution.Simple.LocalBuildInfo.LocalBuildInfo
- Distribution.Simple.LocalBuildInfo: instance GHC.Read.Read Distribution.Simple.LocalBuildInfo.Component
- Distribution.Simple.LocalBuildInfo: instance GHC.Read.Read Distribution.Simple.LocalBuildInfo.ComponentLocalBuildInfo
- Distribution.Simple.LocalBuildInfo: instance GHC.Read.Read Distribution.Simple.LocalBuildInfo.ComponentName
- Distribution.Simple.LocalBuildInfo: instance GHC.Read.Read Distribution.Simple.LocalBuildInfo.LocalBuildInfo
- Distribution.Simple.LocalBuildInfo: instance GHC.Show.Show Distribution.Simple.LocalBuildInfo.Component
- Distribution.Simple.LocalBuildInfo: instance GHC.Show.Show Distribution.Simple.LocalBuildInfo.ComponentLocalBuildInfo
- Distribution.Simple.LocalBuildInfo: instance GHC.Show.Show Distribution.Simple.LocalBuildInfo.ComponentName
- Distribution.Simple.LocalBuildInfo: instance GHC.Show.Show Distribution.Simple.LocalBuildInfo.LocalBuildInfo
- Distribution.Simple.LocalBuildInfo: pkgEnabledComponents :: PackageDescription -> [Component]
- Distribution.Simple.PackageIndex: instance Distribution.Package.HasUnitId a => Data.Semigroup.Semigroup (Distribution.Simple.PackageIndex.PackageIndex a)
- Distribution.Simple.PackageIndex: instance Distribution.Package.HasUnitId a => GHC.Base.Monoid (Distribution.Simple.PackageIndex.PackageIndex a)
- Distribution.Simple.Program.HcPkg: registerMultiInstance :: HcPkgInfo -> Verbosity -> PackageDBStack -> InstalledPackageInfo -> IO ()
- Distribution.Simple.Program.HcPkg: registerMultiInstanceInvocation :: HcPkgInfo -> Verbosity -> PackageDBStack -> Either FilePath InstalledPackageInfo -> ProgramInvocation
- Distribution.Simple.Program.HcPkg: reregister :: HcPkgInfo -> Verbosity -> PackageDBStack -> Either FilePath InstalledPackageInfo -> IO ()
- Distribution.Simple.Program.HcPkg: reregisterInvocation :: HcPkgInfo -> Verbosity -> PackageDBStack -> Either FilePath InstalledPackageInfo -> ProgramInvocation
- Distribution.Simple.Setup: AllowNewerAll :: AllowNewer
- Distribution.Simple.Setup: AllowNewerDep :: PackageName -> AllowNewerDep
- Distribution.Simple.Setup: AllowNewerDepScoped :: PackageName -> PackageName -> AllowNewerDep
- Distribution.Simple.Setup: AllowNewerNone :: AllowNewer
- Distribution.Simple.Setup: AllowNewerSome :: [AllowNewerDep] -> AllowNewer
- Distribution.Simple.Setup: data AllowNewer
- Distribution.Simple.Setup: data AllowNewerDep
- Distribution.Simple.Setup: haddockTargetFromFlag :: Flag Bool -> HaddockTarget
- Distribution.Simple.Setup: instance Data.Binary.Class.Binary Distribution.Simple.Setup.AllowNewerDep
- Distribution.Simple.Setup: instance Distribution.Text.Text Distribution.Simple.Setup.AllowNewerDep
- Distribution.Simple.Setup: instance GHC.Classes.Eq Distribution.Simple.Setup.AllowNewerDep
- Distribution.Simple.Setup: instance GHC.Generics.Generic Distribution.Simple.Setup.AllowNewerDep
- Distribution.Simple.Setup: instance GHC.Read.Read Distribution.Simple.Setup.AllowNewerDep
- Distribution.Simple.Setup: instance GHC.Show.Show Distribution.Simple.Setup.AllowNewerDep
- Distribution.Simple.Setup: isAllowNewer :: AllowNewer -> Bool
- Distribution.Version: Version :: [Int] -> [String] -> Version
- Distribution.Version: [versionBranch] :: Version -> [Int]
- Distribution.Version: [versionTags] :: Version -> [String]
+ Distribution.Backpack: DefiniteUnitId :: DefUnitId -> OpenUnitId
+ Distribution.Backpack: IndefFullUnitId :: ComponentId -> OpenModuleSubst -> OpenUnitId
+ Distribution.Backpack: OpenModule :: OpenUnitId -> ModuleName -> OpenModule
+ Distribution.Backpack: OpenModuleVar :: ModuleName -> OpenModule
+ Distribution.Backpack: abstractUnitId :: OpenUnitId -> UnitId
+ Distribution.Backpack: data DefUnitId
+ Distribution.Backpack: data OpenModule
+ Distribution.Backpack: data OpenUnitId
+ Distribution.Backpack: dispOpenModuleSubst :: OpenModuleSubst -> Doc
+ Distribution.Backpack: dispOpenModuleSubstEntry :: (ModuleName, OpenModule) -> Doc
+ Distribution.Backpack: hashModuleSubst :: Map ModuleName Module -> Maybe String
+ Distribution.Backpack: instance Control.DeepSeq.NFData Distribution.Backpack.OpenModule
+ Distribution.Backpack: instance Control.DeepSeq.NFData Distribution.Backpack.OpenUnitId
+ Distribution.Backpack: instance Data.Binary.Class.Binary Distribution.Backpack.OpenModule
+ Distribution.Backpack: instance Data.Binary.Class.Binary Distribution.Backpack.OpenUnitId
+ Distribution.Backpack: instance Data.Data.Data Distribution.Backpack.OpenModule
+ Distribution.Backpack: instance Data.Data.Data Distribution.Backpack.OpenUnitId
+ Distribution.Backpack: instance Distribution.Text.Text Distribution.Backpack.OpenModule
+ Distribution.Backpack: instance Distribution.Text.Text Distribution.Backpack.OpenUnitId
+ Distribution.Backpack: instance GHC.Classes.Eq Distribution.Backpack.OpenModule
+ Distribution.Backpack: instance GHC.Classes.Eq Distribution.Backpack.OpenUnitId
+ Distribution.Backpack: instance GHC.Classes.Ord Distribution.Backpack.OpenModule
+ Distribution.Backpack: instance GHC.Classes.Ord Distribution.Backpack.OpenUnitId
+ Distribution.Backpack: instance GHC.Generics.Generic Distribution.Backpack.OpenModule
+ Distribution.Backpack: instance GHC.Generics.Generic Distribution.Backpack.OpenUnitId
+ Distribution.Backpack: instance GHC.Read.Read Distribution.Backpack.OpenModule
+ Distribution.Backpack: instance GHC.Read.Read Distribution.Backpack.OpenUnitId
+ Distribution.Backpack: instance GHC.Show.Show Distribution.Backpack.OpenModule
+ Distribution.Backpack: instance GHC.Show.Show Distribution.Backpack.OpenUnitId
+ Distribution.Backpack: mkDefUnitId :: ComponentId -> Map ModuleName Module -> DefUnitId
+ Distribution.Backpack: mkOpenUnitId :: UnitId -> ComponentId -> OpenModuleSubst -> OpenUnitId
+ Distribution.Backpack: openModuleFreeHoles :: OpenModule -> Set ModuleName
+ Distribution.Backpack: openModuleSubstFreeHoles :: OpenModuleSubst -> Set ModuleName
+ Distribution.Backpack: openUnitIdFreeHoles :: OpenUnitId -> Set ModuleName
+ Distribution.Backpack: parseOpenModuleSubst :: ReadP r OpenModuleSubst
+ Distribution.Backpack: parseOpenModuleSubstEntry :: ReadP r (ModuleName, OpenModule)
+ Distribution.Backpack: type OpenModuleSubst = Map ModuleName OpenModule
+ Distribution.Backpack: unDefUnitId :: DefUnitId -> UnitId
+ Distribution.Backpack.ComponentsGraph: componentCycleMsg :: [ComponentName] -> Doc
+ Distribution.Backpack.ComponentsGraph: componentsGraphToList :: ComponentsGraph -> ComponentsWithDeps
+ Distribution.Backpack.ComponentsGraph: dispComponentsWithDeps :: ComponentsWithDeps -> Doc
+ Distribution.Backpack.ComponentsGraph: mkComponentsGraph :: ComponentRequestedSpec -> PackageDescription -> Either [ComponentName] ComponentsGraph
+ Distribution.Backpack.ComponentsGraph: type ComponentsGraph = Graph (Node ComponentName Component)
+ Distribution.Backpack.ComponentsGraph: type ComponentsWithDeps = [(Component, [ComponentName])]
+ Distribution.Backpack.Configure: configureComponentLocalBuildInfos :: Verbosity -> Bool -> ComponentRequestedSpec -> Bool -> Flag String -> Flag ComponentId -> PackageDescription -> [PreExistingComponent] -> FlagAssignment -> [(ModuleName, Module)] -> InstalledPackageIndex -> Compiler -> LogProgress ([ComponentLocalBuildInfo], InstalledPackageIndex)
+ Distribution.Backpack.ConfiguredComponent: ConfiguredComponent :: AnnotatedId ComponentId -> Component -> Bool -> [AnnotatedId ComponentId] -> [ComponentInclude ComponentId IncludeRenaming] -> ConfiguredComponent
+ Distribution.Backpack.ConfiguredComponent: [cc_ann_id] :: ConfiguredComponent -> AnnotatedId ComponentId
+ Distribution.Backpack.ConfiguredComponent: [cc_component] :: ConfiguredComponent -> Component
+ Distribution.Backpack.ConfiguredComponent: [cc_exe_deps] :: ConfiguredComponent -> [AnnotatedId ComponentId]
+ Distribution.Backpack.ConfiguredComponent: [cc_includes] :: ConfiguredComponent -> [ComponentInclude ComponentId IncludeRenaming]
+ Distribution.Backpack.ConfiguredComponent: [cc_public] :: ConfiguredComponent -> Bool
+ Distribution.Backpack.ConfiguredComponent: cc_cid :: ConfiguredComponent -> ComponentId
+ Distribution.Backpack.ConfiguredComponent: cc_name :: ConfiguredComponent -> ComponentName
+ Distribution.Backpack.ConfiguredComponent: cc_pkgid :: ConfiguredComponent -> PackageId
+ Distribution.Backpack.ConfiguredComponent: data ConfiguredComponent
+ Distribution.Backpack.ConfiguredComponent: dispConfiguredComponent :: ConfiguredComponent -> Doc
+ Distribution.Backpack.ConfiguredComponent: extendConfiguredComponentMap :: ConfiguredComponent -> ConfiguredComponentMap -> ConfiguredComponentMap
+ Distribution.Backpack.ConfiguredComponent: newPackageDepsBehaviour :: PackageDescription -> Bool
+ Distribution.Backpack.ConfiguredComponent: toConfiguredComponent :: PackageDescription -> ComponentId -> ConfiguredComponentMap -> Component -> LogProgress ConfiguredComponent
+ Distribution.Backpack.ConfiguredComponent: toConfiguredComponents :: Bool -> FlagAssignment -> Bool -> Flag String -> Flag ComponentId -> PackageDescription -> ConfiguredComponentMap -> [Component] -> LogProgress [ConfiguredComponent]
+ Distribution.Backpack.ConfiguredComponent: type ConfiguredComponentMap = Map PackageName (Map ComponentName (AnnotatedId ComponentId))
+ Distribution.Backpack.DescribeUnitId: setupMessage' :: Text a => Verbosity -> String -> PackageIdentifier -> ComponentName -> Maybe [(ModuleName, a)] -> IO ()
+ Distribution.Backpack.FullUnitId: FullUnitId :: ComponentId -> OpenModuleSubst -> FullUnitId
+ Distribution.Backpack.FullUnitId: data FullUnitId
+ Distribution.Backpack.FullUnitId: expandOpenUnitId :: FullDb -> OpenUnitId -> FullUnitId
+ Distribution.Backpack.FullUnitId: expandUnitId :: FullDb -> DefUnitId -> FullUnitId
+ Distribution.Backpack.FullUnitId: instance GHC.Generics.Generic Distribution.Backpack.FullUnitId.FullUnitId
+ Distribution.Backpack.FullUnitId: instance GHC.Show.Show Distribution.Backpack.FullUnitId.FullUnitId
+ Distribution.Backpack.FullUnitId: type FullDb = DefUnitId -> FullUnitId
+ Distribution.Backpack.LinkedComponent: LinkedComponent :: AnnotatedId ComponentId -> Component -> [AnnotatedId OpenUnitId] -> Bool -> [ComponentInclude OpenUnitId ModuleRenaming] -> [ComponentInclude OpenUnitId ModuleRenaming] -> ModuleShape -> LinkedComponent
+ Distribution.Backpack.LinkedComponent: [lc_ann_id] :: LinkedComponent -> AnnotatedId ComponentId
+ Distribution.Backpack.LinkedComponent: [lc_component] :: LinkedComponent -> Component
+ Distribution.Backpack.LinkedComponent: [lc_exe_deps] :: LinkedComponent -> [AnnotatedId OpenUnitId]
+ Distribution.Backpack.LinkedComponent: [lc_includes] :: LinkedComponent -> [ComponentInclude OpenUnitId ModuleRenaming]
+ Distribution.Backpack.LinkedComponent: [lc_public] :: LinkedComponent -> Bool
+ Distribution.Backpack.LinkedComponent: [lc_shape] :: LinkedComponent -> ModuleShape
+ Distribution.Backpack.LinkedComponent: [lc_sig_includes] :: LinkedComponent -> [ComponentInclude OpenUnitId ModuleRenaming]
+ Distribution.Backpack.LinkedComponent: data LinkedComponent
+ Distribution.Backpack.LinkedComponent: dispLinkedComponent :: LinkedComponent -> Doc
+ Distribution.Backpack.LinkedComponent: extendLinkedComponentMap :: LinkedComponent -> LinkedComponentMap -> LinkedComponentMap
+ Distribution.Backpack.LinkedComponent: instance Distribution.Package.Package Distribution.Backpack.LinkedComponent.LinkedComponent
+ Distribution.Backpack.LinkedComponent: lc_cid :: LinkedComponent -> ComponentId
+ Distribution.Backpack.LinkedComponent: lc_insts :: LinkedComponent -> [(ModuleName, OpenModule)]
+ Distribution.Backpack.LinkedComponent: lc_pkgid :: LinkedComponent -> PackageId
+ Distribution.Backpack.LinkedComponent: lc_uid :: LinkedComponent -> OpenUnitId
+ Distribution.Backpack.LinkedComponent: toLinkedComponent :: Verbosity -> FullDb -> PackageId -> LinkedComponentMap -> ConfiguredComponent -> LogProgress LinkedComponent
+ Distribution.Backpack.LinkedComponent: toLinkedComponents :: Verbosity -> FullDb -> PackageId -> LinkedComponentMap -> [ConfiguredComponent] -> LogProgress [LinkedComponent]
+ Distribution.Backpack.LinkedComponent: type LinkedComponentMap = Map ComponentId (OpenUnitId, ModuleShape)
+ Distribution.Backpack.ModSubst: class ModSubst a
+ Distribution.Backpack.ModSubst: instance Distribution.Backpack.ModSubst.ModSubst (Data.Set.Internal.Set Distribution.ModuleName.ModuleName)
+ Distribution.Backpack.ModSubst: instance Distribution.Backpack.ModSubst.ModSubst Distribution.Backpack.OpenModule
+ Distribution.Backpack.ModSubst: instance Distribution.Backpack.ModSubst.ModSubst Distribution.Backpack.OpenUnitId
+ Distribution.Backpack.ModSubst: instance Distribution.Backpack.ModSubst.ModSubst a => Distribution.Backpack.ModSubst.ModSubst (Data.Map.Internal.Map k a)
+ Distribution.Backpack.ModSubst: instance Distribution.Backpack.ModSubst.ModSubst a => Distribution.Backpack.ModSubst.ModSubst (k, a)
+ Distribution.Backpack.ModSubst: instance Distribution.Backpack.ModSubst.ModSubst a => Distribution.Backpack.ModSubst.ModSubst [a]
+ Distribution.Backpack.ModSubst: modSubst :: ModSubst a => OpenModuleSubst -> a -> a
+ Distribution.Backpack.ModuleShape: ModuleShape :: OpenModuleSubst -> Set ModuleName -> ModuleShape
+ Distribution.Backpack.ModuleShape: [modShapeProvides] :: ModuleShape -> OpenModuleSubst
+ Distribution.Backpack.ModuleShape: [modShapeRequires] :: ModuleShape -> Set ModuleName
+ Distribution.Backpack.ModuleShape: data ModuleShape
+ Distribution.Backpack.ModuleShape: emptyModuleShape :: ModuleShape
+ Distribution.Backpack.ModuleShape: instance Data.Binary.Class.Binary Distribution.Backpack.ModuleShape.ModuleShape
+ Distribution.Backpack.ModuleShape: instance Distribution.Backpack.ModSubst.ModSubst Distribution.Backpack.ModuleShape.ModuleShape
+ Distribution.Backpack.ModuleShape: instance GHC.Classes.Eq Distribution.Backpack.ModuleShape.ModuleShape
+ Distribution.Backpack.ModuleShape: instance GHC.Generics.Generic Distribution.Backpack.ModuleShape.ModuleShape
+ Distribution.Backpack.ModuleShape: instance GHC.Show.Show Distribution.Backpack.ModuleShape.ModuleShape
+ Distribution.Backpack.ModuleShape: shapeInstalledPackage :: InstalledPackageInfo -> ModuleShape
+ Distribution.Compat.Binary: decodeFileOrFail' :: Binary a => FilePath -> IO (Either String a)
+ Distribution.Compat.DList: data DList a
+ Distribution.Compat.DList: instance Data.Semigroup.Semigroup (Distribution.Compat.DList.DList a)
+ Distribution.Compat.DList: instance GHC.Base.Monoid (Distribution.Compat.DList.DList a)
+ Distribution.Compat.DList: runDList :: DList a -> [a]
+ Distribution.Compat.DList: singleton :: a -> DList a
+ Distribution.Compat.DList: snoc :: DList a -> a -> DList a
+ Distribution.Compat.Exception: displayException :: Exception e => e -> String
+ Distribution.Compat.Graph: AcyclicSCC :: vertex -> SCC vertex
+ Distribution.Compat.Graph: CyclicSCC :: [vertex] -> SCC vertex
+ Distribution.Compat.Graph: N :: a -> k -> [k] -> Node k a
+ Distribution.Compat.Graph: broken :: Graph a -> [(a, [Key a])]
+ Distribution.Compat.Graph: class Ord (Key a) => IsNode a where {
+ Distribution.Compat.Graph: closure :: Graph a -> [Key a] -> Maybe [a]
+ Distribution.Compat.Graph: cycles :: Graph a -> [[a]]
+ Distribution.Compat.Graph: data Graph a
+ Distribution.Compat.Graph: data Node k a
+ Distribution.Compat.Graph: data SCC vertex
+ Distribution.Compat.Graph: deleteKey :: IsNode a => Key a -> Graph a -> Graph a
+ Distribution.Compat.Graph: deleteLookup :: IsNode a => Key a -> Graph a -> (Maybe a, Graph a)
+ Distribution.Compat.Graph: empty :: IsNode a => Graph a
+ Distribution.Compat.Graph: fromDistinctList :: (IsNode a, Show (Key a)) => [a] -> Graph a
+ Distribution.Compat.Graph: insert :: IsNode a => a -> Graph a -> Graph a
+ Distribution.Compat.Graph: instance (Control.DeepSeq.NFData a, Control.DeepSeq.NFData (Distribution.Compat.Graph.Key a)) => Control.DeepSeq.NFData (Distribution.Compat.Graph.Graph a)
+ Distribution.Compat.Graph: instance (Distribution.Compat.Graph.IsNode a, Data.Binary.Class.Binary a, GHC.Show.Show (Distribution.Compat.Graph.Key a)) => Data.Binary.Class.Binary (Distribution.Compat.Graph.Graph a)
+ Distribution.Compat.Graph: instance (Distribution.Compat.Graph.IsNode a, Distribution.Compat.Graph.IsNode b, Distribution.Compat.Graph.Key a ~ Distribution.Compat.Graph.Key b) => Distribution.Compat.Graph.IsNode (Data.Either.Either a b)
+ Distribution.Compat.Graph: instance (Distribution.Compat.Graph.IsNode a, GHC.Read.Read a, GHC.Show.Show (Distribution.Compat.Graph.Key a)) => GHC.Read.Read (Distribution.Compat.Graph.Graph a)
+ Distribution.Compat.Graph: instance (GHC.Classes.Eq (Distribution.Compat.Graph.Key a), GHC.Classes.Eq a) => GHC.Classes.Eq (Distribution.Compat.Graph.Graph a)
+ Distribution.Compat.Graph: instance (GHC.Classes.Eq k, GHC.Classes.Eq a) => GHC.Classes.Eq (Distribution.Compat.Graph.Node k a)
+ Distribution.Compat.Graph: instance (GHC.Show.Show k, GHC.Show.Show a) => GHC.Show.Show (Distribution.Compat.Graph.Node k a)
+ Distribution.Compat.Graph: instance Data.Foldable.Foldable Distribution.Compat.Graph.Graph
+ Distribution.Compat.Graph: instance GHC.Base.Functor (Distribution.Compat.Graph.Node k)
+ Distribution.Compat.Graph: instance GHC.Classes.Ord k => Distribution.Compat.Graph.IsNode (Distribution.Compat.Graph.Node k a)
+ Distribution.Compat.Graph: instance GHC.Show.Show a => GHC.Show.Show (Distribution.Compat.Graph.Graph a)
+ Distribution.Compat.Graph: keys :: Graph a -> [Key a]
+ Distribution.Compat.Graph: keysSet :: Graph a -> Set (Key a)
+ Distribution.Compat.Graph: lookup :: IsNode a => Key a -> Graph a -> Maybe a
+ Distribution.Compat.Graph: member :: IsNode a => Key a -> Graph a -> Bool
+ Distribution.Compat.Graph: neighbors :: Graph a -> Key a -> Maybe [a]
+ Distribution.Compat.Graph: nodeKey :: IsNode a => a -> Key a
+ Distribution.Compat.Graph: nodeNeighbors :: IsNode a => a -> [Key a]
+ Distribution.Compat.Graph: nodeValue :: Node k a -> a
+ Distribution.Compat.Graph: null :: Graph a -> Bool
+ Distribution.Compat.Graph: revClosure :: Graph a -> [Key a] -> Maybe [a]
+ Distribution.Compat.Graph: revNeighbors :: Graph a -> Key a -> Maybe [a]
+ Distribution.Compat.Graph: revTopSort :: Graph a -> [a]
+ Distribution.Compat.Graph: size :: Graph a -> Int
+ Distribution.Compat.Graph: stronglyConnComp :: Graph a -> [SCC a]
+ Distribution.Compat.Graph: toGraph :: Graph a -> (Graph, Vertex -> a, Key a -> Maybe Vertex)
+ Distribution.Compat.Graph: toList :: Graph a -> [a]
+ Distribution.Compat.Graph: toMap :: Graph a -> Map (Key a) a
+ Distribution.Compat.Graph: topSort :: Graph a -> [a]
+ Distribution.Compat.Graph: type family Key a :: *;
+ Distribution.Compat.Graph: unionLeft :: IsNode a => Graph a -> Graph a -> Graph a
+ Distribution.Compat.Graph: unionRight :: IsNode a => Graph a -> Graph a -> Graph a
+ Distribution.Compat.Graph: }
+ Distribution.Compat.Prelude.Internal: (<<>>) :: Doc -> Doc -> Doc
+ Distribution.Compat.Prelude.Internal: (<>) :: Semigroup a => a -> a -> a
+ Distribution.Compat.Prelude.Internal: (<|>) :: Alternative f => f a -> f a -> f a
+ Distribution.Compat.Prelude.Internal: ap :: Monad m => m (a -> b) -> m a -> m b
+ Distribution.Compat.Prelude.Internal: catMaybes :: () => [Maybe a] -> [a]
+ Distribution.Compat.Prelude.Internal: chr :: Int -> Char
+ Distribution.Compat.Prelude.Internal: class Applicative f => Alternative (f :: * -> *)
+ Distribution.Compat.Prelude.Internal: class Binary t
+ Distribution.Compat.Prelude.Internal: class Typeable * a => Data a
+ Distribution.Compat.Prelude.Internal: class Foldable (t :: * -> *)
+ Distribution.Compat.Prelude.Internal: class Generic a
+ Distribution.Compat.Prelude.Internal: class IsString a
+ Distribution.Compat.Prelude.Internal: class (Alternative m, Monad m) => MonadPlus (m :: * -> *)
+ Distribution.Compat.Prelude.Internal: class NFData a
+ Distribution.Compat.Prelude.Internal: class Semigroup a
+ Distribution.Compat.Prelude.Internal: class (Functor t, Foldable t) => Traversable (t :: * -> *)
+ Distribution.Compat.Prelude.Internal: class Typeable k (a :: k)
+ Distribution.Compat.Prelude.Internal: data Int16
+ Distribution.Compat.Prelude.Internal: data Int32
+ Distribution.Compat.Prelude.Internal: data Int64
+ Distribution.Compat.Prelude.Internal: data Int8
+ Distribution.Compat.Prelude.Internal: data Map k a
+ Distribution.Compat.Prelude.Internal: data Word
+ Distribution.Compat.Prelude.Internal: data Word16
+ Distribution.Compat.Prelude.Internal: data Word32
+ Distribution.Compat.Prelude.Internal: data Word64
+ Distribution.Compat.Prelude.Internal: data Word8
+ Distribution.Compat.Prelude.Internal: elem :: (Foldable t, Eq a) => a -> t a -> Bool
+ Distribution.Compat.Prelude.Internal: empty :: Alternative f => f a
+ Distribution.Compat.Prelude.Internal: filterM :: Applicative m => (a -> m Bool) -> [a] -> m [a]
+ Distribution.Compat.Prelude.Internal: find :: Foldable t => (a -> Bool) -> t a -> Maybe a
+ Distribution.Compat.Prelude.Internal: first :: Arrow a => forall b c d. () => a b c -> a (b, d) (c, d)
+ Distribution.Compat.Prelude.Internal: foldM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
+ Distribution.Compat.Prelude.Internal: foldMap :: Foldable t => forall m a. Monoid m => (a -> m) -> t a -> m
+ Distribution.Compat.Prelude.Internal: foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
+ Distribution.Compat.Prelude.Internal: foldl' :: Foldable t => forall b a. () => (b -> a -> b) -> b -> t a -> b
+ Distribution.Compat.Prelude.Internal: foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Distribution.Compat.Prelude.Internal: foldr :: Foldable t => forall a b. () => (a -> b -> b) -> b -> t a -> b
+ Distribution.Compat.Prelude.Internal: foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Distribution.Compat.Prelude.Internal: for :: (Traversable t, Applicative f) => t a -> (a -> f b) -> f t b
+ Distribution.Compat.Prelude.Internal: for_ :: (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()
+ Distribution.Compat.Prelude.Internal: fromMaybe :: () => a -> Maybe a -> a
+ Distribution.Compat.Prelude.Internal: fromString :: IsString a => String -> a
+ Distribution.Compat.Prelude.Internal: genericRnf :: (Generic a, GNFData (Rep a)) => a -> ()
+ Distribution.Compat.Prelude.Internal: get :: Binary t => Get t
+ Distribution.Compat.Prelude.Internal: gmappend :: (Generic a, GSemigroup (Rep a)) => a -> a -> a
+ Distribution.Compat.Prelude.Internal: gmempty :: (Generic a, GMonoid (Rep a)) => a
+ Distribution.Compat.Prelude.Internal: intercalate :: () => [a] -> [[a]] -> [a]
+ Distribution.Compat.Prelude.Internal: intersperse :: () => a -> [a] -> [a]
+ Distribution.Compat.Prelude.Internal: isAlpha :: Char -> Bool
+ Distribution.Compat.Prelude.Internal: isAlphaNum :: Char -> Bool
+ Distribution.Compat.Prelude.Internal: isDigit :: Char -> Bool
+ Distribution.Compat.Prelude.Internal: isJust :: () => Maybe a -> Bool
+ Distribution.Compat.Prelude.Internal: isNothing :: () => Maybe a -> Bool
+ Distribution.Compat.Prelude.Internal: isPrefixOf :: Eq a => [a] -> [a] -> Bool
+ Distribution.Compat.Prelude.Internal: isSpace :: Char -> Bool
+ Distribution.Compat.Prelude.Internal: isSuffixOf :: Eq a => [a] -> [a] -> Bool
+ Distribution.Compat.Prelude.Internal: isUpper :: Char -> Bool
+ Distribution.Compat.Prelude.Internal: length :: Foldable t => forall a. () => t a -> Int
+ Distribution.Compat.Prelude.Internal: liftM :: Monad m => (a1 -> r) -> m a1 -> m r
+ Distribution.Compat.Prelude.Internal: liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
+ Distribution.Compat.Prelude.Internal: listToMaybe :: () => [a] -> Maybe a
+ Distribution.Compat.Prelude.Internal: many :: Alternative f => f a -> f [a]
+ Distribution.Compat.Prelude.Internal: mapMaybe :: () => (a -> Maybe b) -> [a] -> [b]
+ Distribution.Compat.Prelude.Internal: maximum :: (Foldable t, Ord a) => t a -> a
+ Distribution.Compat.Prelude.Internal: maybeToList :: () => Maybe a -> [a]
+ Distribution.Compat.Prelude.Internal: minimum :: (Foldable t, Ord a) => t a -> a
+ Distribution.Compat.Prelude.Internal: mplus :: MonadPlus m => m a -> m a -> m a
+ Distribution.Compat.Prelude.Internal: mzero :: MonadPlus m => m a
+ Distribution.Compat.Prelude.Internal: nub :: Eq a => [a] -> [a]
+ Distribution.Compat.Prelude.Internal: nubBy :: () => (a -> a -> Bool) -> [a] -> [a]
+ Distribution.Compat.Prelude.Internal: null :: Foldable t => forall a. () => t a -> Bool
+ Distribution.Compat.Prelude.Internal: ord :: Char -> Int
+ Distribution.Compat.Prelude.Internal: product :: (Foldable t, Num a) => t a -> a
+ Distribution.Compat.Prelude.Internal: put :: Binary t => t -> Put
+ Distribution.Compat.Prelude.Internal: putList :: Binary t => [t] -> Put
+ Distribution.Compat.Prelude.Internal: rnf :: NFData a => a -> ()
+ Distribution.Compat.Prelude.Internal: sequenceA :: Traversable t => forall (f :: * -> *) a. Applicative f => t f a -> f t a
+ Distribution.Compat.Prelude.Internal: some :: Alternative f => f a -> f [a]
+ Distribution.Compat.Prelude.Internal: sort :: Ord a => [a] -> [a]
+ Distribution.Compat.Prelude.Internal: sortBy :: () => (a -> a -> Ordering) -> [a] -> [a]
+ Distribution.Compat.Prelude.Internal: sum :: (Foldable t, Num a) => t a -> a
+ Distribution.Compat.Prelude.Internal: toLower :: Char -> Char
+ Distribution.Compat.Prelude.Internal: toUpper :: Char -> Char
+ Distribution.Compat.Prelude.Internal: traverse :: Traversable t => forall (f :: * -> *) a b. Applicative f => (a -> f b) -> t a -> f t b
+ Distribution.Compat.Prelude.Internal: traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
+ Distribution.Compat.Prelude.Internal: type IO a = WithCallStack (IO a)
+ Distribution.Compat.Prelude.Internal: type NoCallStackIO a = IO a
+ Distribution.Compat.Prelude.Internal: unfoldr :: () => (b -> Maybe (a, b)) -> b -> [a]
+ Distribution.Compat.Prelude.Internal: unless :: Applicative f => Bool -> f () -> f ()
+ Distribution.Compat.Prelude.Internal: void :: Functor f => f a -> f ()
+ Distribution.Compat.Prelude.Internal: when :: Applicative f => Bool -> f () -> f ()
+ Distribution.Compat.ReadP: eof :: ReadP r ()
+ Distribution.Compat.ReadP: skipSpaces1 :: ReadP r ()
+ Distribution.Compat.Stack: annotateCallStackIO :: WithCallStack (IO a -> IO a)
+ Distribution.Compat.Stack: callStack :: HasCallStack -> CallStack
+ Distribution.Compat.Stack: data CallStack
+ Distribution.Compat.Stack: parentSrcLocPrefix :: WithCallStack String
+ Distribution.Compat.Stack: prettyCallStack :: CallStack -> String
+ Distribution.Compat.Stack: type WithCallStack a = HasCallStack => a
+ Distribution.Compat.Stack: withFrozenCallStack :: HasCallStack => (HasCallStack -> a) -> a
+ Distribution.Compat.Stack: withLexicalCallStack :: (a -> WithCallStack (IO b)) -> WithCallStack (a -> IO b)
+ Distribution.Compat.Time: ModTime :: Word64 -> ModTime
+ Distribution.Compat.Time: calibrateMtimeChangeDelay :: IO (Int, Int)
+ Distribution.Compat.Time: getCurTime :: NoCallStackIO ModTime
+ Distribution.Compat.Time: getFileAge :: FilePath -> NoCallStackIO Double
+ Distribution.Compat.Time: getModTime :: FilePath -> NoCallStackIO ModTime
+ Distribution.Compat.Time: instance Data.Binary.Class.Binary Distribution.Compat.Time.ModTime
+ Distribution.Compat.Time: instance GHC.Classes.Eq Distribution.Compat.Time.ModTime
+ Distribution.Compat.Time: instance GHC.Classes.Ord Distribution.Compat.Time.ModTime
+ Distribution.Compat.Time: instance GHC.Enum.Bounded Distribution.Compat.Time.ModTime
+ Distribution.Compat.Time: instance GHC.Read.Read Distribution.Compat.Time.ModTime
+ Distribution.Compat.Time: instance GHC.Show.Show Distribution.Compat.Time.ModTime
+ Distribution.Compat.Time: newtype ModTime
+ Distribution.Compat.Time: posixSecondsToModTime :: Int64 -> ModTime
+ Distribution.Compiler: classifyCompilerFlavor :: String -> CompilerFlavor
+ Distribution.InstalledPackageInfo: AbiDependency :: UnitId -> AbiHash -> AbiDependency
+ Distribution.InstalledPackageInfo: [abiDepends] :: InstalledPackageInfo -> [AbiDependency]
+ Distribution.InstalledPackageInfo: [depAbiHash] :: AbiDependency -> AbiHash
+ Distribution.InstalledPackageInfo: [depUnitId] :: AbiDependency -> UnitId
+ Distribution.InstalledPackageInfo: [indefinite] :: InstalledPackageInfo -> Bool
+ Distribution.InstalledPackageInfo: [installedComponentId_] :: InstalledPackageInfo -> ComponentId
+ Distribution.InstalledPackageInfo: [instantiatedWith] :: InstalledPackageInfo -> [(ModuleName, OpenModule)]
+ Distribution.InstalledPackageInfo: [sourceLibName] :: InstalledPackageInfo -> Maybe UnqualComponentName
+ Distribution.InstalledPackageInfo: data AbiDependency
+ Distribution.InstalledPackageInfo: installedOpenUnitId :: InstalledPackageInfo -> OpenUnitId
+ Distribution.InstalledPackageInfo: instance Data.Binary.Class.Binary Distribution.InstalledPackageInfo.AbiDependency
+ Distribution.InstalledPackageInfo: instance Distribution.Compat.Graph.IsNode Distribution.InstalledPackageInfo.InstalledPackageInfo
+ Distribution.InstalledPackageInfo: instance Distribution.Package.HasMungedPackageId Distribution.InstalledPackageInfo.InstalledPackageInfo
+ Distribution.InstalledPackageInfo: instance Distribution.Text.Text Distribution.InstalledPackageInfo.AbiDependency
+ Distribution.InstalledPackageInfo: instance GHC.Classes.Eq Distribution.InstalledPackageInfo.AbiDependency
+ Distribution.InstalledPackageInfo: instance GHC.Generics.Generic Distribution.InstalledPackageInfo.AbiDependency
+ Distribution.InstalledPackageInfo: instance GHC.Read.Read Distribution.InstalledPackageInfo.AbiDependency
+ Distribution.InstalledPackageInfo: instance GHC.Show.Show Distribution.InstalledPackageInfo.AbiDependency
+ Distribution.InstalledPackageInfo: requiredSignatures :: InstalledPackageInfo -> Set ModuleName
+ Distribution.InstalledPackageInfo: sourceComponentName :: InstalledPackageInfo -> ComponentName
+ Distribution.ModuleName: ModuleName :: ShortTextLst -> ModuleName
+ Distribution.ModuleName: fromComponents :: [String] -> ModuleName
+ Distribution.ModuleName: instance Control.DeepSeq.NFData Distribution.ModuleName.ModuleName
+ Distribution.ModuleName: instance Control.DeepSeq.NFData Distribution.ModuleName.ShortTextLst
+ Distribution.ModuleName: instance Data.Binary.Class.Binary Distribution.ModuleName.ShortTextLst
+ Distribution.ModuleName: instance Data.Data.Data Distribution.ModuleName.ShortTextLst
+ Distribution.ModuleName: instance Data.String.IsString Distribution.ModuleName.ModuleName
+ Distribution.ModuleName: instance GHC.Classes.Eq Distribution.ModuleName.ShortTextLst
+ Distribution.ModuleName: instance GHC.Classes.Ord Distribution.ModuleName.ShortTextLst
+ Distribution.ModuleName: instance GHC.Generics.Generic Distribution.ModuleName.ShortTextLst
+ Distribution.ModuleName: instance GHC.Read.Read Distribution.ModuleName.ShortTextLst
+ Distribution.ModuleName: instance GHC.Show.Show Distribution.ModuleName.ShortTextLst
+ Distribution.ModuleName: newtype ModuleName
+ Distribution.ModuleName: validModuleComponent :: String -> Bool
+ Distribution.Package: class HasMungedPackageId pkg
+ Distribution.Package: instance Distribution.Package.HasMungedPackageId Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Package: instance Distribution.Package.Package Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Package: mungedId :: HasMungedPackageId pkg => pkg -> MungedPackageId
+ Distribution.Package: mungedName' :: HasMungedPackageId pkg => pkg -> MungedPackageName
+ Distribution.Package: mungedVersion' :: HasMungedPackageId munged => munged -> Version
+ Distribution.PackageDescription: CBenchName :: UnqualComponentName -> ComponentName
+ Distribution.PackageDescription: CExeName :: UnqualComponentName -> ComponentName
+ Distribution.PackageDescription: CFLibName :: UnqualComponentName -> ComponentName
+ Distribution.PackageDescription: CLibName :: ComponentName
+ Distribution.PackageDescription: CSubLibName :: UnqualComponentName -> ComponentName
+ Distribution.PackageDescription: CTestName :: UnqualComponentName -> ComponentName
+ Distribution.PackageDescription: DefaultRenaming :: ModuleRenaming
+ Distribution.PackageDescription: HidingRenaming :: [ModuleName] -> ModuleRenaming
+ Distribution.PackageDescription: [autogenModules] :: BuildInfo -> [ModuleName]
+ Distribution.PackageDescription: [buildToolDepends] :: BuildInfo -> [ExeDependency]
+ Distribution.PackageDescription: [condForeignLibs] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] ForeignLib)]
+ Distribution.PackageDescription: [condSubLibraries] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] Library)]
+ Distribution.PackageDescription: [exeScope] :: Executable -> ExecutableScope
+ Distribution.PackageDescription: [foreignLibs] :: PackageDescription -> [ForeignLib]
+ Distribution.PackageDescription: [libName] :: Library -> Maybe UnqualComponentName
+ Distribution.PackageDescription: [mixins] :: BuildInfo -> [Mixin]
+ Distribution.PackageDescription: [signatures] :: Library -> [ModuleName]
+ Distribution.PackageDescription: [subLibraries] :: PackageDescription -> [Library]
+ Distribution.PackageDescription: allLibraries :: PackageDescription -> [Library]
+ Distribution.PackageDescription: benchmarkModulesAutogen :: Benchmark -> [ModuleName]
+ Distribution.PackageDescription: data ComponentName
+ Distribution.PackageDescription: data FlagName
+ Distribution.PackageDescription: defaultLibName :: ComponentName
+ Distribution.PackageDescription: dispFlagAssignment :: FlagAssignment -> Doc
+ Distribution.PackageDescription: emptyFlag :: FlagName -> Flag
+ Distribution.PackageDescription: emptySourceRepo :: RepoKind -> SourceRepo
+ Distribution.PackageDescription: exeModulesAutogen :: Executable -> [ModuleName]
+ Distribution.PackageDescription: explicitLibModules :: Library -> [ModuleName]
+ Distribution.PackageDescription: hasPublicLib :: PackageDescription -> Bool
+ Distribution.PackageDescription: libModulesAutogen :: Library -> [ModuleName]
+ Distribution.PackageDescription: mkFlagName :: String -> FlagName
+ Distribution.PackageDescription: parseFlagAssignment :: ReadP r FlagAssignment
+ Distribution.PackageDescription: showFlagValue :: (FlagName, Bool) -> String
+ Distribution.PackageDescription: testModulesAutogen :: TestSuite -> [ModuleName]
+ Distribution.PackageDescription: unFlagName :: FlagName -> String
+ Distribution.PackageDescription.Configuration: finalizePD :: FlagAssignment -> ComponentRequestedSpec -> (Dependency -> Bool) -> Platform -> CompilerInfo -> [Dependency] -> GenericPackageDescription -> Either [Dependency] (PackageDescription, FlagAssignment)
+ Distribution.PackageDescription.Parse: BenchmarkStanza :: Maybe BenchmarkType -> Maybe FilePath -> Maybe ModuleName -> BuildInfo -> BenchmarkStanza
+ Distribution.PackageDescription.Parse: TestSuiteStanza :: Maybe TestType -> Maybe FilePath -> Maybe ModuleName -> BuildInfo -> TestSuiteStanza
+ Distribution.PackageDescription.Parse: [benchmarkStanzaBenchmarkModule] :: BenchmarkStanza -> Maybe ModuleName
+ Distribution.PackageDescription.Parse: [benchmarkStanzaBenchmarkType] :: BenchmarkStanza -> Maybe BenchmarkType
+ Distribution.PackageDescription.Parse: [benchmarkStanzaBuildInfo] :: BenchmarkStanza -> BuildInfo
+ Distribution.PackageDescription.Parse: [benchmarkStanzaMainIs] :: BenchmarkStanza -> Maybe FilePath
+ Distribution.PackageDescription.Parse: [testStanzaBuildInfo] :: TestSuiteStanza -> BuildInfo
+ Distribution.PackageDescription.Parse: [testStanzaMainIs] :: TestSuiteStanza -> Maybe FilePath
+ Distribution.PackageDescription.Parse: [testStanzaTestModule] :: TestSuiteStanza -> Maybe ModuleName
+ Distribution.PackageDescription.Parse: [testStanzaTestType] :: TestSuiteStanza -> Maybe TestType
+ Distribution.PackageDescription.Parse: benchmarkFieldDescrs :: [FieldDescr BenchmarkStanza]
+ Distribution.PackageDescription.Parse: data BenchmarkStanza
+ Distribution.PackageDescription.Parse: data TestSuiteStanza
+ Distribution.PackageDescription.Parse: foreignLibFieldDescrs :: [FieldDescr ForeignLib]
+ Distribution.PackageDescription.Parse: parseGenericPackageDescription :: String -> ParseResult GenericPackageDescription
+ Distribution.PackageDescription.Parse: readGenericPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription
+ Distribution.PackageDescription.PrettyPrint: showHookedBuildInfo :: HookedBuildInfo -> String
+ Distribution.PackageDescription.PrettyPrint: showPackageDescription :: PackageDescription -> String
+ Distribution.PackageDescription.PrettyPrint: writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> NoCallStackIO ()
+ Distribution.PackageDescription.PrettyPrint: writePackageDescription :: FilePath -> PackageDescription -> NoCallStackIO ()
+ Distribution.Simple: [doctestHook] :: UserHooks -> PackageDescription -> LocalBuildInfo -> UserHooks -> DoctestFlags -> IO ()
+ Distribution.Simple: [postDoctest] :: UserHooks -> Args -> DoctestFlags -> PackageDescription -> LocalBuildInfo -> IO ()
+ Distribution.Simple: [preDoctest] :: UserHooks -> Args -> DoctestFlags -> IO HookedBuildInfo
+ Distribution.Simple: defaultMainWithHooksNoRead :: UserHooks -> GenericPackageDescription -> IO ()
+ Distribution.Simple.Build: componentInitialBuildSteps :: FilePath -> PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> Verbosity -> IO ()
+ Distribution.Simple.BuildPaths: autogenComponentModulesDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> String
+ Distribution.Simple.BuildPaths: autogenPackageModulesDir :: LocalBuildInfo -> String
+ Distribution.Simple.BuildPaths: autogenPathsModuleName :: PackageDescription -> ModuleName
+ Distribution.Simple.BuildPaths: exeBuildDir :: LocalBuildInfo -> Executable -> FilePath
+ Distribution.Simple.BuildPaths: flibBuildDir :: LocalBuildInfo -> ForeignLib -> FilePath
+ Distribution.Simple.BuildPaths: getExeSourceFiles :: Verbosity -> LocalBuildInfo -> Executable -> ComponentLocalBuildInfo -> IO [(ModuleName, FilePath)]
+ Distribution.Simple.BuildPaths: getFLibSourceFiles :: Verbosity -> LocalBuildInfo -> ForeignLib -> ComponentLocalBuildInfo -> IO [(ModuleName, FilePath)]
+ Distribution.Simple.BuildPaths: getLibSourceFiles :: Verbosity -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO [(ModuleName, FilePath)]
+ Distribution.Simple.BuildPaths: getSourceFiles :: Verbosity -> [FilePath] -> [ModuleName] -> IO [(ModuleName, FilePath)]
+ Distribution.Simple.BuildPaths: staticLibExtension :: String
+ Distribution.Simple.BuildTarget: readTargetInfos :: Verbosity -> PackageDescription -> LocalBuildInfo -> [String] -> IO [TargetInfo]
+ Distribution.Simple.BuildToolDepends: desugarBuildTool :: PackageDescription -> LegacyExeDependency -> Maybe ExeDependency
+ Distribution.Simple.BuildToolDepends: getAllInternalToolDependencies :: PackageDescription -> BuildInfo -> [UnqualComponentName]
+ Distribution.Simple.BuildToolDepends: getAllToolDependencies :: PackageDescription -> BuildInfo -> [ExeDependency]
+ Distribution.Simple.BuildToolDepends: isInternal :: PackageDescription -> ExeDependency -> Bool
+ Distribution.Simple.Compiler: backpackSupported :: Compiler -> Bool
+ Distribution.Simple.Compiler: compilerCompatFlavor :: CompilerFlavor -> Compiler -> Bool
+ Distribution.Simple.Compiler: coverageSupported :: Compiler -> Bool
+ Distribution.Simple.Compiler: profilingSupported :: Compiler -> Bool
+ Distribution.Simple.Configure: computeCompatPackageName :: PackageName -> Maybe UnqualComponentName -> MungedPackageName
+ Distribution.Simple.Configure: getInternalPackages :: GenericPackageDescription -> Map PackageName (Maybe UnqualComponentName)
+ Distribution.Simple.Doctest: doctest :: PackageDescription -> LocalBuildInfo -> [PPSuffixHandler] -> DoctestFlags -> IO ()
+ Distribution.Simple.Doctest: instance Data.Semigroup.Semigroup Distribution.Simple.Doctest.DoctestArgs
+ Distribution.Simple.Doctest: instance GHC.Base.Monoid Distribution.Simple.Doctest.DoctestArgs
+ Distribution.Simple.Doctest: instance GHC.Generics.Generic Distribution.Simple.Doctest.DoctestArgs
+ Distribution.Simple.Doctest: instance GHC.Show.Show Distribution.Simple.Doctest.DoctestArgs
+ Distribution.Simple.GHC: GhcEnvFileClearPackageDbStack :: GhcEnvironmentFileEntry
+ Distribution.Simple.GHC: GhcEnvFileComment :: String -> GhcEnvironmentFileEntry
+ Distribution.Simple.GHC: GhcEnvFilePackageDb :: PackageDB -> GhcEnvironmentFileEntry
+ Distribution.Simple.GHC: GhcEnvFilePackageId :: UnitId -> GhcEnvironmentFileEntry
+ Distribution.Simple.GHC: GhcImplInfo :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> GhcImplInfo
+ Distribution.Simple.GHC: [alwaysNondecIndent] :: GhcImplInfo -> Bool
+ Distribution.Simple.GHC: [flagDebugInfo] :: GhcImplInfo -> Bool
+ Distribution.Simple.GHC: [flagGhciScript] :: GhcImplInfo -> Bool
+ Distribution.Simple.GHC: [flagPackageConf] :: GhcImplInfo -> Bool
+ Distribution.Simple.GHC: [flagProfAuto] :: GhcImplInfo -> Bool
+ Distribution.Simple.GHC: [flagWarnMissingHomeModules] :: GhcImplInfo -> Bool
+ Distribution.Simple.GHC: [reportsNoExt] :: GhcImplInfo -> Bool
+ Distribution.Simple.GHC: [supportsHaskell2010] :: GhcImplInfo -> Bool
+ Distribution.Simple.GHC: [supportsPkgEnvFiles] :: GhcImplInfo -> Bool
+ Distribution.Simple.GHC: buildFLib :: Verbosity -> Flag (Maybe Int) -> PackageDescription -> LocalBuildInfo -> ForeignLib -> ComponentLocalBuildInfo -> IO ()
+ Distribution.Simple.GHC: data GhcEnvironmentFileEntry
+ Distribution.Simple.GHC: data GhcImplInfo
+ Distribution.Simple.GHC: getImplInfo :: Compiler -> GhcImplInfo
+ Distribution.Simple.GHC: installFLib :: Verbosity -> LocalBuildInfo -> FilePath -> FilePath -> PackageDescription -> ForeignLib -> IO ()
+ Distribution.Simple.GHC: replFLib :: Verbosity -> Flag (Maybe Int) -> PackageDescription -> LocalBuildInfo -> ForeignLib -> ComponentLocalBuildInfo -> IO ()
+ Distribution.Simple.GHC: simpleGhcEnvironmentFile :: PackageDBStack -> [UnitId] -> [GhcEnvironmentFileEntry]
+ Distribution.Simple.GHC: writeGhcEnvironmentFile :: FilePath -> Platform -> Version -> [GhcEnvironmentFileEntry] -> NoCallStackIO ()
+ Distribution.Simple.InstallDirs: [flibdir] :: InstallDirs dir -> dir
+ Distribution.Simple.InstallDirs: [libexecsubdir] :: InstallDirs dir -> dir
+ Distribution.Simple.InstallDirs: combinePathTemplate :: PathTemplate -> PathTemplate -> PathTemplate
+ Distribution.Simple.InstallDirs: defaultInstallDirs' :: Bool -> CompilerFlavor -> Bool -> Bool -> IO InstallDirTemplates
+ Distribution.Simple.LocalBuildInfo: CFLib :: ForeignLib -> Component
+ Distribution.Simple.LocalBuildInfo: CFLibName :: UnqualComponentName -> ComponentName
+ Distribution.Simple.LocalBuildInfo: CSubLibName :: UnqualComponentName -> ComponentName
+ Distribution.Simple.LocalBuildInfo: FLibComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> ComponentLocalBuildInfo
+ Distribution.Simple.LocalBuildInfo: [componentCompatPackageName] :: ComponentLocalBuildInfo -> MungedPackageName
+ Distribution.Simple.LocalBuildInfo: [componentComponentId] :: ComponentLocalBuildInfo -> ComponentId
+ Distribution.Simple.LocalBuildInfo: [componentEnabledSpec] :: LocalBuildInfo -> ComponentRequestedSpec
+ Distribution.Simple.LocalBuildInfo: [componentExeDeps] :: ComponentLocalBuildInfo -> [UnitId]
+ Distribution.Simple.LocalBuildInfo: [componentGraph] :: LocalBuildInfo -> Graph ComponentLocalBuildInfo
+ Distribution.Simple.LocalBuildInfo: [componentIncludes] :: ComponentLocalBuildInfo -> [(OpenUnitId, ModuleRenaming)]
+ Distribution.Simple.LocalBuildInfo: [componentInstantiatedWith] :: ComponentLocalBuildInfo -> [(ModuleName, OpenModule)]
+ Distribution.Simple.LocalBuildInfo: [componentInternalDeps] :: ComponentLocalBuildInfo -> [UnitId]
+ Distribution.Simple.LocalBuildInfo: [componentIsIndefinite_] :: ComponentLocalBuildInfo -> Bool
+ Distribution.Simple.LocalBuildInfo: [componentIsPublic] :: ComponentLocalBuildInfo -> Bool
+ Distribution.Simple.LocalBuildInfo: [componentLocalName] :: ComponentLocalBuildInfo -> ComponentName
+ Distribution.Simple.LocalBuildInfo: [componentNameMap] :: LocalBuildInfo -> Map ComponentName [ComponentLocalBuildInfo]
+ Distribution.Simple.LocalBuildInfo: [exeCoverage] :: LocalBuildInfo -> Bool
+ Distribution.Simple.LocalBuildInfo: [libCoverage] :: LocalBuildInfo -> Bool
+ Distribution.Simple.LocalBuildInfo: absoluteComponentInstallDirs :: PackageDescription -> LocalBuildInfo -> UnitId -> CopyDest -> InstallDirs FilePath
+ Distribution.Simple.LocalBuildInfo: allLibModules :: Library -> ComponentLocalBuildInfo -> [ModuleName]
+ Distribution.Simple.LocalBuildInfo: componentBuildDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> FilePath
+ Distribution.Simple.LocalBuildInfo: componentBuildable :: Component -> Bool
+ Distribution.Simple.LocalBuildInfo: componentNameString :: ComponentName -> Maybe UnqualComponentName
+ Distribution.Simple.LocalBuildInfo: defaultLibName :: ComponentName
+ Distribution.Simple.LocalBuildInfo: enabledBenchLBIs :: PackageDescription -> LocalBuildInfo -> [(Benchmark, ComponentLocalBuildInfo)]
+ Distribution.Simple.LocalBuildInfo: enabledTestLBIs :: PackageDescription -> LocalBuildInfo -> [(TestSuite, ComponentLocalBuildInfo)]
+ Distribution.Simple.LocalBuildInfo: pkgBuildableComponents :: PackageDescription -> [Component]
+ Distribution.Simple.LocalBuildInfo: prefixRelativeComponentInstallDirs :: PackageId -> LocalBuildInfo -> UnitId -> InstallDirs (Maybe FilePath)
+ Distribution.Simple.LocalBuildInfo: withBenchLBI :: PackageDescription -> LocalBuildInfo -> (Benchmark -> ComponentLocalBuildInfo -> IO ()) -> IO ()
+ Distribution.Simple.PackageIndex: allPackagesBySourcePackageIdAndLibName :: HasUnitId a => PackageIndex a -> [((PackageId, Maybe UnqualComponentName), [a])]
+ Distribution.Simple.PackageIndex: instance Data.Semigroup.Semigroup (Distribution.Simple.PackageIndex.PackageIndex Distribution.InstalledPackageInfo.InstalledPackageInfo)
+ Distribution.Simple.PackageIndex: instance GHC.Base.Monoid (Distribution.Simple.PackageIndex.PackageIndex Distribution.InstalledPackageInfo.InstalledPackageInfo)
+ Distribution.Simple.PackageIndex: lookupComponentId :: PackageIndex a -> ComponentId -> Maybe a
+ Distribution.Simple.PackageIndex: lookupInternalDependency :: InstalledPackageIndex -> Dependency -> Maybe UnqualComponentName -> [(Version, [InstalledPackageInfo])]
+ Distribution.Simple.Program: [progInvokePathEnv] :: ProgramInvocation -> [FilePath]
+ Distribution.Simple.Program: data ProgramDb
+ Distribution.Simple.Program: defaultProgramDb :: ProgramDb
+ Distribution.Simple.Program: doctestProgram :: Program
+ Distribution.Simple.Program: emptyProgramDb :: ProgramDb
+ Distribution.Simple.Program: restoreProgramDb :: [Program] -> ProgramDb -> ProgramDb
+ Distribution.Simple.Program.Builtin: doctestProgram :: Program
+ Distribution.Simple.Program.Builtin: runghcProgram :: Program
+ Distribution.Simple.Program.Db: unconfigureProgram :: String -> ProgramDb -> ProgramDb
+ Distribution.Simple.Program.GHC: [ghcOptExtraPath] :: GhcOptions -> NubListR FilePath
+ Distribution.Simple.Program.GHC: [ghcOptInstantiatedWith] :: GhcOptions -> [(ModuleName, OpenModule)]
+ Distribution.Simple.Program.GHC: [ghcOptLinkModDefFiles] :: GhcOptions -> NubListR FilePath
+ Distribution.Simple.Program.GHC: [ghcOptNoCode] :: GhcOptions -> Flag Bool
+ Distribution.Simple.Program.GHC: [ghcOptStaticLib] :: GhcOptions -> Flag Bool
+ Distribution.Simple.Program.GHC: [ghcOptThisComponentId] :: GhcOptions -> Flag ComponentId
+ Distribution.Simple.Program.GHC: [ghcOptWarnMissingHomeModules] :: GhcOptions -> Flag Bool
+ Distribution.Simple.Program.HcPkg: RegisterOptions :: Bool -> Bool -> Bool -> RegisterOptions
+ Distribution.Simple.Program.HcPkg: [registerAllowOverwrite] :: RegisterOptions -> Bool
+ Distribution.Simple.Program.HcPkg: [registerMultiInstance] :: RegisterOptions -> Bool
+ Distribution.Simple.Program.HcPkg: [registerSuppressFilesCheck] :: RegisterOptions -> Bool
+ Distribution.Simple.Program.HcPkg: [suppressFilesCheck] :: HcPkgInfo -> Bool
+ Distribution.Simple.Program.HcPkg: data RegisterOptions
+ Distribution.Simple.Program.HcPkg: defaultRegisterOptions :: RegisterOptions
+ Distribution.Simple.Program.Run: [progInvokePathEnv] :: ProgramInvocation -> [FilePath]
+ Distribution.Simple.Program.Types: instance GHC.Show.Show Distribution.Simple.Program.Types.Program
+ Distribution.Simple.Register: RegisterOptions :: Bool -> Bool -> Bool -> RegisterOptions
+ Distribution.Simple.Register: [registerAllowOverwrite] :: RegisterOptions -> Bool
+ Distribution.Simple.Register: [registerMultiInstance] :: RegisterOptions -> Bool
+ Distribution.Simple.Register: [registerSuppressFilesCheck] :: RegisterOptions -> Bool
+ Distribution.Simple.Register: abiHash :: Verbosity -> PackageDescription -> FilePath -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO AbiHash
+ Distribution.Simple.Register: data RegisterOptions
+ Distribution.Simple.Register: defaultRegisterOptions :: RegisterOptions
+ Distribution.Simple.Register: internalPackageDBPath :: LocalBuildInfo -> FilePath -> FilePath
+ Distribution.Simple.Setup: AllowNewer :: RelaxDeps -> AllowNewer
+ Distribution.Simple.Setup: AllowOlder :: RelaxDeps -> AllowOlder
+ Distribution.Simple.Setup: DoctestFlags :: [(String, FilePath)] -> [(String, [String])] -> Flag FilePath -> Flag Verbosity -> DoctestFlags
+ Distribution.Simple.Setup: RelaxDepsAll :: RelaxDeps
+ Distribution.Simple.Setup: RelaxDepsNone :: RelaxDeps
+ Distribution.Simple.Setup: RelaxDepsSome :: [RelaxedDep] -> RelaxDeps
+ Distribution.Simple.Setup: RelaxedDep :: PackageName -> RelaxedDep
+ Distribution.Simple.Setup: RelaxedDepScoped :: PackageName -> PackageName -> RelaxedDep
+ Distribution.Simple.Setup: [configAllowOlder] :: ConfigFlags -> Maybe AllowOlder
+ Distribution.Simple.Setup: [configArgs] :: ConfigFlags -> [String]
+ Distribution.Simple.Setup: [configCID] :: ConfigFlags -> Flag ComponentId
+ Distribution.Simple.Setup: [configCabalFilePath] :: ConfigFlags -> Flag FilePath
+ Distribution.Simple.Setup: [configDeterministic] :: ConfigFlags -> Flag Bool
+ Distribution.Simple.Setup: [configInstantiateWith] :: ConfigFlags -> [(ModuleName, Module)]
+ Distribution.Simple.Setup: [copyArgs] :: CopyFlags -> [String]
+ Distribution.Simple.Setup: [doctestDistPref] :: DoctestFlags -> Flag FilePath
+ Distribution.Simple.Setup: [doctestProgramArgs] :: DoctestFlags -> [(String, [String])]
+ Distribution.Simple.Setup: [doctestProgramPaths] :: DoctestFlags -> [(String, FilePath)]
+ Distribution.Simple.Setup: [doctestVerbosity] :: DoctestFlags -> Flag Verbosity
+ Distribution.Simple.Setup: [haddockForeignLibs] :: HaddockFlags -> Flag Bool
+ Distribution.Simple.Setup: [hscolourForeignLibs] :: HscolourFlags -> Flag Bool
+ Distribution.Simple.Setup: [regArgs] :: RegisterFlags -> [String]
+ Distribution.Simple.Setup: [unAllowNewer] :: AllowNewer -> RelaxDeps
+ Distribution.Simple.Setup: [unAllowOlder] :: AllowOlder -> RelaxDeps
+ Distribution.Simple.Setup: asBool :: BooleanFlag a => a -> Bool
+ Distribution.Simple.Setup: class BooleanFlag a
+ Distribution.Simple.Setup: data DoctestFlags
+ Distribution.Simple.Setup: data RelaxDeps
+ Distribution.Simple.Setup: data RelaxedDep
+ Distribution.Simple.Setup: defaultDoctestFlags :: DoctestFlags
+ Distribution.Simple.Setup: doctestCommand :: CommandUI DoctestFlags
+ Distribution.Simple.Setup: emptyDoctestFlags :: DoctestFlags
+ Distribution.Simple.Setup: instance Data.Binary.Class.Binary Distribution.Simple.Setup.AllowOlder
+ Distribution.Simple.Setup: instance Data.Binary.Class.Binary Distribution.Simple.Setup.RelaxDeps
+ Distribution.Simple.Setup: instance Data.Binary.Class.Binary Distribution.Simple.Setup.RelaxedDep
+ Distribution.Simple.Setup: instance Data.Semigroup.Semigroup Distribution.Simple.Setup.AllowOlder
+ Distribution.Simple.Setup: instance Data.Semigroup.Semigroup Distribution.Simple.Setup.DoctestFlags
+ Distribution.Simple.Setup: instance Data.Semigroup.Semigroup Distribution.Simple.Setup.RelaxDeps
+ Distribution.Simple.Setup: instance Distribution.Simple.Setup.BooleanFlag GHC.Types.Bool
+ Distribution.Simple.Setup: instance Distribution.Text.Text Distribution.Simple.Setup.RelaxedDep
+ Distribution.Simple.Setup: instance GHC.Base.Monoid Distribution.Simple.Setup.AllowOlder
+ Distribution.Simple.Setup: instance GHC.Base.Monoid Distribution.Simple.Setup.DoctestFlags
+ Distribution.Simple.Setup: instance GHC.Base.Monoid Distribution.Simple.Setup.RelaxDeps
+ Distribution.Simple.Setup: instance GHC.Classes.Eq Distribution.Simple.Setup.AllowOlder
+ Distribution.Simple.Setup: instance GHC.Classes.Eq Distribution.Simple.Setup.ConfigFlags
+ Distribution.Simple.Setup: instance GHC.Classes.Eq Distribution.Simple.Setup.RelaxDeps
+ Distribution.Simple.Setup: instance GHC.Classes.Eq Distribution.Simple.Setup.RelaxedDep
+ Distribution.Simple.Setup: instance GHC.Generics.Generic Distribution.Simple.Setup.AllowOlder
+ Distribution.Simple.Setup: instance GHC.Generics.Generic Distribution.Simple.Setup.DoctestFlags
+ Distribution.Simple.Setup: instance GHC.Generics.Generic Distribution.Simple.Setup.RelaxDeps
+ Distribution.Simple.Setup: instance GHC.Generics.Generic Distribution.Simple.Setup.RelaxedDep
+ Distribution.Simple.Setup: instance GHC.Read.Read Distribution.Simple.Setup.AllowOlder
+ Distribution.Simple.Setup: instance GHC.Read.Read Distribution.Simple.Setup.BuildFlags
+ Distribution.Simple.Setup: instance GHC.Read.Read Distribution.Simple.Setup.RelaxDeps
+ Distribution.Simple.Setup: instance GHC.Read.Read Distribution.Simple.Setup.RelaxedDep
+ Distribution.Simple.Setup: instance GHC.Show.Show Distribution.Simple.Setup.AllowOlder
+ Distribution.Simple.Setup: instance GHC.Show.Show Distribution.Simple.Setup.DoctestFlags
+ Distribution.Simple.Setup: instance GHC.Show.Show Distribution.Simple.Setup.RelaxDeps
+ Distribution.Simple.Setup: instance GHC.Show.Show Distribution.Simple.Setup.RelaxedDep
+ Distribution.Simple.Setup: isRelaxDeps :: RelaxDeps -> Bool
+ Distribution.Simple.Setup: maybeToFlag :: Maybe a -> Flag a
+ Distribution.Simple.Setup: newtype AllowNewer
+ Distribution.Simple.Setup: newtype AllowOlder
+ Distribution.Simple.Setup: programDbOptions :: ProgramDb -> ShowOrParseArgs -> (flags -> [(String, [String])]) -> ([(String, [String])] -> (flags -> flags)) -> [OptionField flags]
+ Distribution.Simple.Setup: programDbPaths' :: (String -> String) -> ProgramDb -> ShowOrParseArgs -> (flags -> [(String, FilePath)]) -> ([(String, FilePath)] -> (flags -> flags)) -> [OptionField flags]
+ Distribution.Simple.UserHooks: [doctestHook] :: UserHooks -> PackageDescription -> LocalBuildInfo -> UserHooks -> DoctestFlags -> IO ()
+ Distribution.Simple.UserHooks: [postDoctest] :: UserHooks -> Args -> DoctestFlags -> PackageDescription -> LocalBuildInfo -> IO ()
+ Distribution.Simple.UserHooks: [preDoctest] :: UserHooks -> Args -> DoctestFlags -> IO HookedBuildInfo
+ Distribution.Simple.Utils: annotateIO :: Verbosity -> IO a -> IO a
+ Distribution.Simple.Utils: die' :: Verbosity -> String -> IO a
+ Distribution.Simple.Utils: dieNoVerbosity :: String -> IO a
+ Distribution.Simple.Utils: dieNoWrap :: Verbosity -> String -> IO a
+ Distribution.Simple.Utils: dieWithLocation' :: Verbosity -> FilePath -> Maybe Int -> String -> IO a
+ Distribution.Simple.Utils: fromUTF8BS :: ByteString -> String
+ Distribution.Simple.Utils: fromUTF8LBS :: ByteString -> String
+ Distribution.Simple.Utils: infoNoWrap :: Verbosity -> String -> IO ()
+ Distribution.Simple.Utils: instance GHC.Classes.Eq Distribution.Simple.Utils.TraceWhen
+ Distribution.Simple.Utils: isAbsoluteOnAnyPlatform :: FilePath -> Bool
+ Distribution.Simple.Utils: isRelativeOnAnyPlatform :: FilePath -> Bool
+ Distribution.Simple.Utils: noticeDoc :: Verbosity -> Doc -> IO ()
+ Distribution.Simple.Utils: noticeNoWrap :: Verbosity -> String -> IO ()
+ Distribution.Simple.Utils: ordNubBy :: Ord b => (a -> b) -> [a] -> [a]
+ Distribution.Simple.Utils: rewriteFileEx :: Verbosity -> FilePath -> String -> IO ()
+ Distribution.Simple.Utils: unintersperse :: Char -> String -> [String]
+ Distribution.System: Compat :: ClassificationStrictness
+ Distribution.System: Permissive :: ClassificationStrictness
+ Distribution.System: Strict :: ClassificationStrictness
+ Distribution.System: classifyArch :: ClassificationStrictness -> String -> Arch
+ Distribution.System: classifyOS :: ClassificationStrictness -> String -> OS
+ Distribution.System: data ClassificationStrictness
+ Distribution.Text: flatStyle :: Style
+ Distribution.Text: stdParse :: Text ver => (ver -> String -> res) -> ReadP r res
+ Distribution.Types.AbiHash: data AbiHash
+ Distribution.Types.AbiHash: instance Data.Binary.Class.Binary Distribution.Types.AbiHash.AbiHash
+ Distribution.Types.AbiHash: instance Data.String.IsString Distribution.Types.AbiHash.AbiHash
+ Distribution.Types.AbiHash: instance Distribution.Text.Text Distribution.Types.AbiHash.AbiHash
+ Distribution.Types.AbiHash: instance GHC.Classes.Eq Distribution.Types.AbiHash.AbiHash
+ Distribution.Types.AbiHash: instance GHC.Generics.Generic Distribution.Types.AbiHash.AbiHash
+ Distribution.Types.AbiHash: instance GHC.Read.Read Distribution.Types.AbiHash.AbiHash
+ Distribution.Types.AbiHash: instance GHC.Show.Show Distribution.Types.AbiHash.AbiHash
+ Distribution.Types.AbiHash: mkAbiHash :: String -> AbiHash
+ Distribution.Types.AbiHash: unAbiHash :: AbiHash -> String
+ Distribution.Types.AnnotatedId: AnnotatedId :: PackageId -> ComponentName -> id -> AnnotatedId id
+ Distribution.Types.AnnotatedId: [ann_cname] :: AnnotatedId id -> ComponentName
+ Distribution.Types.AnnotatedId: [ann_id] :: AnnotatedId id -> id
+ Distribution.Types.AnnotatedId: [ann_pid] :: AnnotatedId id -> PackageId
+ Distribution.Types.AnnotatedId: data AnnotatedId id
+ Distribution.Types.AnnotatedId: instance Distribution.Package.Package (Distribution.Types.AnnotatedId.AnnotatedId id)
+ Distribution.Types.AnnotatedId: instance GHC.Base.Functor Distribution.Types.AnnotatedId.AnnotatedId
+ Distribution.Types.AnnotatedId: instance GHC.Show.Show id => GHC.Show.Show (Distribution.Types.AnnotatedId.AnnotatedId id)
+ Distribution.Types.Benchmark: Benchmark :: UnqualComponentName -> BenchmarkInterface -> BuildInfo -> Benchmark
+ Distribution.Types.Benchmark: [benchmarkBuildInfo] :: Benchmark -> BuildInfo
+ Distribution.Types.Benchmark: [benchmarkInterface] :: Benchmark -> BenchmarkInterface
+ Distribution.Types.Benchmark: [benchmarkName] :: Benchmark -> UnqualComponentName
+ Distribution.Types.Benchmark: benchmarkModules :: Benchmark -> [ModuleName]
+ Distribution.Types.Benchmark: benchmarkModulesAutogen :: Benchmark -> [ModuleName]
+ Distribution.Types.Benchmark: benchmarkType :: Benchmark -> BenchmarkType
+ Distribution.Types.Benchmark: data Benchmark
+ Distribution.Types.Benchmark: emptyBenchmark :: Benchmark
+ Distribution.Types.Benchmark: instance Data.Binary.Class.Binary Distribution.Types.Benchmark.Benchmark
+ Distribution.Types.Benchmark: instance Data.Data.Data Distribution.Types.Benchmark.Benchmark
+ Distribution.Types.Benchmark: instance Data.Semigroup.Semigroup Distribution.Types.Benchmark.Benchmark
+ Distribution.Types.Benchmark: instance GHC.Base.Monoid Distribution.Types.Benchmark.Benchmark
+ Distribution.Types.Benchmark: instance GHC.Classes.Eq Distribution.Types.Benchmark.Benchmark
+ Distribution.Types.Benchmark: instance GHC.Generics.Generic Distribution.Types.Benchmark.Benchmark
+ Distribution.Types.Benchmark: instance GHC.Read.Read Distribution.Types.Benchmark.Benchmark
+ Distribution.Types.Benchmark: instance GHC.Show.Show Distribution.Types.Benchmark.Benchmark
+ Distribution.Types.BenchmarkInterface: BenchmarkExeV10 :: Version -> FilePath -> BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: BenchmarkUnsupported :: BenchmarkType -> BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: data BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: instance Data.Binary.Class.Binary Distribution.Types.BenchmarkInterface.BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: instance Data.Data.Data Distribution.Types.BenchmarkInterface.BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: instance Data.Semigroup.Semigroup Distribution.Types.BenchmarkInterface.BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: instance GHC.Base.Monoid Distribution.Types.BenchmarkInterface.BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: instance GHC.Classes.Eq Distribution.Types.BenchmarkInterface.BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: instance GHC.Generics.Generic Distribution.Types.BenchmarkInterface.BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: instance GHC.Read.Read Distribution.Types.BenchmarkInterface.BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: instance GHC.Show.Show Distribution.Types.BenchmarkInterface.BenchmarkInterface
+ Distribution.Types.BenchmarkType: BenchmarkTypeExe :: Version -> BenchmarkType
+ Distribution.Types.BenchmarkType: BenchmarkTypeUnknown :: String -> Version -> BenchmarkType
+ Distribution.Types.BenchmarkType: data BenchmarkType
+ Distribution.Types.BenchmarkType: instance Data.Binary.Class.Binary Distribution.Types.BenchmarkType.BenchmarkType
+ Distribution.Types.BenchmarkType: instance Data.Data.Data Distribution.Types.BenchmarkType.BenchmarkType
+ Distribution.Types.BenchmarkType: instance Distribution.Text.Text Distribution.Types.BenchmarkType.BenchmarkType
+ Distribution.Types.BenchmarkType: instance GHC.Classes.Eq Distribution.Types.BenchmarkType.BenchmarkType
+ Distribution.Types.BenchmarkType: instance GHC.Generics.Generic Distribution.Types.BenchmarkType.BenchmarkType
+ Distribution.Types.BenchmarkType: instance GHC.Read.Read Distribution.Types.BenchmarkType.BenchmarkType
+ Distribution.Types.BenchmarkType: instance GHC.Show.Show Distribution.Types.BenchmarkType.BenchmarkType
+ Distribution.Types.BenchmarkType: knownBenchmarkTypes :: [BenchmarkType]
+ Distribution.Types.BuildInfo: BuildInfo :: Bool -> [LegacyExeDependency] -> [ExeDependency] -> [String] -> [String] -> [String] -> [PkgconfigDependency] -> [String] -> [String] -> [FilePath] -> [FilePath] -> [FilePath] -> [ModuleName] -> [ModuleName] -> Maybe Language -> [Language] -> [Extension] -> [Extension] -> [Extension] -> [String] -> [String] -> [String] -> [FilePath] -> [FilePath] -> [FilePath] -> [(CompilerFlavor, [String])] -> [(CompilerFlavor, [String])] -> [(CompilerFlavor, [String])] -> [(String, String)] -> [Dependency] -> [Mixin] -> BuildInfo
+ Distribution.Types.BuildInfo: [autogenModules] :: BuildInfo -> [ModuleName]
+ Distribution.Types.BuildInfo: [buildToolDepends] :: BuildInfo -> [ExeDependency]
+ Distribution.Types.BuildInfo: [buildTools] :: BuildInfo -> [LegacyExeDependency]
+ Distribution.Types.BuildInfo: [buildable] :: BuildInfo -> Bool
+ Distribution.Types.BuildInfo: [cSources] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [ccOptions] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [cppOptions] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [customFieldsBI] :: BuildInfo -> [(String, String)]
+ Distribution.Types.BuildInfo: [defaultExtensions] :: BuildInfo -> [Extension]
+ Distribution.Types.BuildInfo: [defaultLanguage] :: BuildInfo -> Maybe Language
+ Distribution.Types.BuildInfo: [extraFrameworkDirs] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [extraGHCiLibs] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [extraLibDirs] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [extraLibs] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [frameworks] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [hsSourceDirs] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [includeDirs] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [includes] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [installIncludes] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [jsSources] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [ldOptions] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [mixins] :: BuildInfo -> [Mixin]
+ Distribution.Types.BuildInfo: [oldExtensions] :: BuildInfo -> [Extension]
+ Distribution.Types.BuildInfo: [options] :: BuildInfo -> [(CompilerFlavor, [String])]
+ Distribution.Types.BuildInfo: [otherExtensions] :: BuildInfo -> [Extension]
+ Distribution.Types.BuildInfo: [otherLanguages] :: BuildInfo -> [Language]
+ Distribution.Types.BuildInfo: [otherModules] :: BuildInfo -> [ModuleName]
+ Distribution.Types.BuildInfo: [pkgconfigDepends] :: BuildInfo -> [PkgconfigDependency]
+ Distribution.Types.BuildInfo: [profOptions] :: BuildInfo -> [(CompilerFlavor, [String])]
+ Distribution.Types.BuildInfo: [sharedOptions] :: BuildInfo -> [(CompilerFlavor, [String])]
+ Distribution.Types.BuildInfo: [targetBuildDepends] :: BuildInfo -> [Dependency]
+ Distribution.Types.BuildInfo: allExtensions :: BuildInfo -> [Extension]
+ Distribution.Types.BuildInfo: allLanguages :: BuildInfo -> [Language]
+ Distribution.Types.BuildInfo: data BuildInfo
+ Distribution.Types.BuildInfo: emptyBuildInfo :: BuildInfo
+ Distribution.Types.BuildInfo: hcOptions :: CompilerFlavor -> BuildInfo -> [String]
+ Distribution.Types.BuildInfo: hcProfOptions :: CompilerFlavor -> BuildInfo -> [String]
+ Distribution.Types.BuildInfo: hcSharedOptions :: CompilerFlavor -> BuildInfo -> [String]
+ Distribution.Types.BuildInfo: instance Data.Binary.Class.Binary Distribution.Types.BuildInfo.BuildInfo
+ Distribution.Types.BuildInfo: instance Data.Data.Data Distribution.Types.BuildInfo.BuildInfo
+ Distribution.Types.BuildInfo: instance Data.Semigroup.Semigroup Distribution.Types.BuildInfo.BuildInfo
+ Distribution.Types.BuildInfo: instance GHC.Base.Monoid Distribution.Types.BuildInfo.BuildInfo
+ Distribution.Types.BuildInfo: instance GHC.Classes.Eq Distribution.Types.BuildInfo.BuildInfo
+ Distribution.Types.BuildInfo: instance GHC.Generics.Generic Distribution.Types.BuildInfo.BuildInfo
+ Distribution.Types.BuildInfo: instance GHC.Read.Read Distribution.Types.BuildInfo.BuildInfo
+ Distribution.Types.BuildInfo: instance GHC.Show.Show Distribution.Types.BuildInfo.BuildInfo
+ Distribution.Types.BuildInfo: usedExtensions :: BuildInfo -> [Extension]
+ Distribution.Types.BuildType: Configure :: BuildType
+ Distribution.Types.BuildType: Custom :: BuildType
+ Distribution.Types.BuildType: Make :: BuildType
+ Distribution.Types.BuildType: Simple :: BuildType
+ Distribution.Types.BuildType: UnknownBuildType :: String -> BuildType
+ Distribution.Types.BuildType: data BuildType
+ Distribution.Types.BuildType: instance Data.Binary.Class.Binary Distribution.Types.BuildType.BuildType
+ Distribution.Types.BuildType: instance Data.Data.Data Distribution.Types.BuildType.BuildType
+ Distribution.Types.BuildType: instance Distribution.Text.Text Distribution.Types.BuildType.BuildType
+ Distribution.Types.BuildType: instance GHC.Classes.Eq Distribution.Types.BuildType.BuildType
+ Distribution.Types.BuildType: instance GHC.Generics.Generic Distribution.Types.BuildType.BuildType
+ Distribution.Types.BuildType: instance GHC.Read.Read Distribution.Types.BuildType.BuildType
+ Distribution.Types.BuildType: instance GHC.Show.Show Distribution.Types.BuildType.BuildType
+ Distribution.Types.BuildType: knownBuildTypes :: [BuildType]
+ Distribution.Types.Component: CBench :: Benchmark -> Component
+ Distribution.Types.Component: CExe :: Executable -> Component
+ Distribution.Types.Component: CFLib :: ForeignLib -> Component
+ Distribution.Types.Component: CLib :: Library -> Component
+ Distribution.Types.Component: CTest :: TestSuite -> Component
+ Distribution.Types.Component: componentBuildInfo :: Component -> BuildInfo
+ Distribution.Types.Component: componentBuildable :: Component -> Bool
+ Distribution.Types.Component: componentName :: Component -> ComponentName
+ Distribution.Types.Component: data Component
+ Distribution.Types.Component: foldComponent :: (Library -> a) -> (ForeignLib -> a) -> (Executable -> a) -> (TestSuite -> a) -> (Benchmark -> a) -> Component -> a
+ Distribution.Types.Component: instance Data.Semigroup.Semigroup Distribution.Types.Component.Component
+ Distribution.Types.Component: instance GHC.Classes.Eq Distribution.Types.Component.Component
+ Distribution.Types.Component: instance GHC.Read.Read Distribution.Types.Component.Component
+ Distribution.Types.Component: instance GHC.Show.Show Distribution.Types.Component.Component
+ Distribution.Types.Component: partitionComponents :: [Component] -> ([Library], [ForeignLib], [Executable], [TestSuite], [Benchmark])
+ Distribution.Types.ComponentId: data ComponentId
+ Distribution.Types.ComponentId: instance Control.DeepSeq.NFData Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: instance Data.Binary.Class.Binary Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: instance Data.Data.Data Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: instance Data.String.IsString Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: instance Distribution.Text.Text Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: instance GHC.Classes.Eq Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: instance GHC.Classes.Ord Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: instance GHC.Generics.Generic Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: instance GHC.Read.Read Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: instance GHC.Show.Show Distribution.Types.ComponentId.ComponentId
+ Distribution.Types.ComponentId: mkComponentId :: String -> ComponentId
+ Distribution.Types.ComponentId: unComponentId :: ComponentId -> String
+ Distribution.Types.ComponentInclude: ComponentInclude :: AnnotatedId id -> rn -> Bool -> ComponentInclude id rn
+ Distribution.Types.ComponentInclude: [ci_ann_id] :: ComponentInclude id rn -> AnnotatedId id
+ Distribution.Types.ComponentInclude: [ci_implicit] :: ComponentInclude id rn -> Bool
+ Distribution.Types.ComponentInclude: [ci_renaming] :: ComponentInclude id rn -> rn
+ Distribution.Types.ComponentInclude: ci_cname :: ComponentInclude id rn -> ComponentName
+ Distribution.Types.ComponentInclude: ci_id :: ComponentInclude id rn -> id
+ Distribution.Types.ComponentInclude: ci_pkgid :: ComponentInclude id rn -> PackageId
+ Distribution.Types.ComponentInclude: data ComponentInclude id rn
+ Distribution.Types.ComponentLocalBuildInfo: BenchComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: ExeComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: FLibComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: LibComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> Bool -> [(ModuleName, OpenModule)] -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> String -> MungedPackageName -> [ExposedModule] -> Bool -> ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: TestComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: [componentCompatPackageKey] :: ComponentLocalBuildInfo -> String
+ Distribution.Types.ComponentLocalBuildInfo: [componentCompatPackageName] :: ComponentLocalBuildInfo -> MungedPackageName
+ Distribution.Types.ComponentLocalBuildInfo: [componentComponentId] :: ComponentLocalBuildInfo -> ComponentId
+ Distribution.Types.ComponentLocalBuildInfo: [componentExeDeps] :: ComponentLocalBuildInfo -> [UnitId]
+ Distribution.Types.ComponentLocalBuildInfo: [componentExposedModules] :: ComponentLocalBuildInfo -> [ExposedModule]
+ Distribution.Types.ComponentLocalBuildInfo: [componentIncludes] :: ComponentLocalBuildInfo -> [(OpenUnitId, ModuleRenaming)]
+ Distribution.Types.ComponentLocalBuildInfo: [componentInstantiatedWith] :: ComponentLocalBuildInfo -> [(ModuleName, OpenModule)]
+ Distribution.Types.ComponentLocalBuildInfo: [componentInternalDeps] :: ComponentLocalBuildInfo -> [UnitId]
+ Distribution.Types.ComponentLocalBuildInfo: [componentIsIndefinite_] :: ComponentLocalBuildInfo -> Bool
+ Distribution.Types.ComponentLocalBuildInfo: [componentIsPublic] :: ComponentLocalBuildInfo -> Bool
+ Distribution.Types.ComponentLocalBuildInfo: [componentLocalName] :: ComponentLocalBuildInfo -> ComponentName
+ Distribution.Types.ComponentLocalBuildInfo: [componentPackageDeps] :: ComponentLocalBuildInfo -> [(UnitId, MungedPackageId)]
+ Distribution.Types.ComponentLocalBuildInfo: [componentUnitId] :: ComponentLocalBuildInfo -> UnitId
+ Distribution.Types.ComponentLocalBuildInfo: componentIsIndefinite :: ComponentLocalBuildInfo -> Bool
+ Distribution.Types.ComponentLocalBuildInfo: data ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: instance Data.Binary.Class.Binary Distribution.Types.ComponentLocalBuildInfo.ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: instance Distribution.Compat.Graph.IsNode Distribution.Types.ComponentLocalBuildInfo.ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: instance GHC.Generics.Generic Distribution.Types.ComponentLocalBuildInfo.ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: instance GHC.Read.Read Distribution.Types.ComponentLocalBuildInfo.ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: instance GHC.Show.Show Distribution.Types.ComponentLocalBuildInfo.ComponentLocalBuildInfo
+ Distribution.Types.ComponentLocalBuildInfo: maybeComponentInstantiatedWith :: ComponentLocalBuildInfo -> Maybe [(ModuleName, OpenModule)]
+ Distribution.Types.ComponentName: CBenchName :: UnqualComponentName -> ComponentName
+ Distribution.Types.ComponentName: CExeName :: UnqualComponentName -> ComponentName
+ Distribution.Types.ComponentName: CFLibName :: UnqualComponentName -> ComponentName
+ Distribution.Types.ComponentName: CLibName :: ComponentName
+ Distribution.Types.ComponentName: CSubLibName :: UnqualComponentName -> ComponentName
+ Distribution.Types.ComponentName: CTestName :: UnqualComponentName -> ComponentName
+ Distribution.Types.ComponentName: componentNameStanza :: ComponentName -> String
+ Distribution.Types.ComponentName: componentNameString :: ComponentName -> Maybe UnqualComponentName
+ Distribution.Types.ComponentName: data ComponentName
+ Distribution.Types.ComponentName: defaultLibName :: ComponentName
+ Distribution.Types.ComponentName: instance Data.Binary.Class.Binary Distribution.Types.ComponentName.ComponentName
+ Distribution.Types.ComponentName: instance Distribution.Text.Text Distribution.Types.ComponentName.ComponentName
+ Distribution.Types.ComponentName: instance GHC.Classes.Eq Distribution.Types.ComponentName.ComponentName
+ Distribution.Types.ComponentName: instance GHC.Classes.Ord Distribution.Types.ComponentName.ComponentName
+ Distribution.Types.ComponentName: instance GHC.Generics.Generic Distribution.Types.ComponentName.ComponentName
+ Distribution.Types.ComponentName: instance GHC.Read.Read Distribution.Types.ComponentName.ComponentName
+ Distribution.Types.ComponentName: instance GHC.Show.Show Distribution.Types.ComponentName.ComponentName
+ Distribution.Types.ComponentName: libraryComponentName :: Maybe UnqualComponentName -> ComponentName
+ Distribution.Types.ComponentName: showComponentName :: ComponentName -> String
+ Distribution.Types.ComponentRequestedSpec: ComponentRequestedSpec :: Bool -> Bool -> ComponentRequestedSpec
+ Distribution.Types.ComponentRequestedSpec: DisabledAllBenchmarks :: ComponentDisabledReason
+ Distribution.Types.ComponentRequestedSpec: DisabledAllButOne :: String -> ComponentDisabledReason
+ Distribution.Types.ComponentRequestedSpec: DisabledAllTests :: ComponentDisabledReason
+ Distribution.Types.ComponentRequestedSpec: DisabledComponent :: ComponentDisabledReason
+ Distribution.Types.ComponentRequestedSpec: OneComponentRequestedSpec :: ComponentName -> ComponentRequestedSpec
+ Distribution.Types.ComponentRequestedSpec: [benchmarksRequested] :: ComponentRequestedSpec -> Bool
+ Distribution.Types.ComponentRequestedSpec: [testsRequested] :: ComponentRequestedSpec -> Bool
+ Distribution.Types.ComponentRequestedSpec: componentDisabledReason :: ComponentRequestedSpec -> Component -> Maybe ComponentDisabledReason
+ Distribution.Types.ComponentRequestedSpec: componentEnabled :: ComponentRequestedSpec -> Component -> Bool
+ Distribution.Types.ComponentRequestedSpec: componentNameRequested :: ComponentRequestedSpec -> ComponentName -> Bool
+ Distribution.Types.ComponentRequestedSpec: data ComponentDisabledReason
+ Distribution.Types.ComponentRequestedSpec: data ComponentRequestedSpec
+ Distribution.Types.ComponentRequestedSpec: defaultComponentRequestedSpec :: ComponentRequestedSpec
+ Distribution.Types.ComponentRequestedSpec: instance Data.Binary.Class.Binary Distribution.Types.ComponentRequestedSpec.ComponentRequestedSpec
+ Distribution.Types.ComponentRequestedSpec: instance GHC.Classes.Eq Distribution.Types.ComponentRequestedSpec.ComponentRequestedSpec
+ Distribution.Types.ComponentRequestedSpec: instance GHC.Generics.Generic Distribution.Types.ComponentRequestedSpec.ComponentRequestedSpec
+ Distribution.Types.ComponentRequestedSpec: instance GHC.Read.Read Distribution.Types.ComponentRequestedSpec.ComponentRequestedSpec
+ Distribution.Types.ComponentRequestedSpec: instance GHC.Show.Show Distribution.Types.ComponentRequestedSpec.ComponentRequestedSpec
+ Distribution.Types.CondTree: CondBranch :: Condition v -> CondTree v c a -> Maybe (CondTree v c a) -> CondBranch v c a
+ Distribution.Types.CondTree: CondNode :: a -> c -> [CondBranch v c a] -> CondTree v c a
+ Distribution.Types.CondTree: [condBranchCondition] :: CondBranch v c a -> Condition v
+ Distribution.Types.CondTree: [condBranchIfFalse] :: CondBranch v c a -> Maybe (CondTree v c a)
+ Distribution.Types.CondTree: [condBranchIfTrue] :: CondBranch v c a -> CondTree v c a
+ Distribution.Types.CondTree: [condTreeComponents] :: CondTree v c a -> [CondBranch v c a]
+ Distribution.Types.CondTree: [condTreeConstraints] :: CondTree v c a -> c
+ Distribution.Types.CondTree: [condTreeData] :: CondTree v c a -> a
+ Distribution.Types.CondTree: condIfThen :: Condition v -> CondTree v c a -> CondBranch v c a
+ Distribution.Types.CondTree: condIfThenElse :: Condition v -> CondTree v c a -> CondTree v c a -> CondBranch v c a
+ Distribution.Types.CondTree: data CondBranch v c a
+ Distribution.Types.CondTree: data CondTree v c a
+ Distribution.Types.CondTree: extractCondition :: Eq v => (a -> Bool) -> CondTree v c a -> Condition v
+ Distribution.Types.CondTree: ignoreConditions :: (Monoid a, Monoid c) => CondTree v c a -> (a, c)
+ Distribution.Types.CondTree: instance (Data.Binary.Class.Binary v, Data.Binary.Class.Binary c, Data.Binary.Class.Binary a) => Data.Binary.Class.Binary (Distribution.Types.CondTree.CondBranch v c a)
+ Distribution.Types.CondTree: instance (Data.Binary.Class.Binary v, Data.Binary.Class.Binary c, Data.Binary.Class.Binary a) => Data.Binary.Class.Binary (Distribution.Types.CondTree.CondTree v c a)
+ Distribution.Types.CondTree: instance (Data.Data.Data a, Data.Data.Data c, Data.Data.Data v) => Data.Data.Data (Distribution.Types.CondTree.CondBranch v c a)
+ Distribution.Types.CondTree: instance (Data.Data.Data a, Data.Data.Data c, Data.Data.Data v) => Data.Data.Data (Distribution.Types.CondTree.CondTree v c a)
+ Distribution.Types.CondTree: instance (GHC.Classes.Eq a, GHC.Classes.Eq c, GHC.Classes.Eq v) => GHC.Classes.Eq (Distribution.Types.CondTree.CondBranch v c a)
+ Distribution.Types.CondTree: instance (GHC.Classes.Eq v, GHC.Classes.Eq c, GHC.Classes.Eq a) => GHC.Classes.Eq (Distribution.Types.CondTree.CondTree v c a)
+ Distribution.Types.CondTree: instance (GHC.Show.Show a, GHC.Show.Show c, GHC.Show.Show v) => GHC.Show.Show (Distribution.Types.CondTree.CondBranch v c a)
+ Distribution.Types.CondTree: instance (GHC.Show.Show v, GHC.Show.Show c, GHC.Show.Show a) => GHC.Show.Show (Distribution.Types.CondTree.CondTree v c a)
+ Distribution.Types.CondTree: instance Data.Foldable.Foldable (Distribution.Types.CondTree.CondBranch v c)
+ Distribution.Types.CondTree: instance Data.Foldable.Foldable (Distribution.Types.CondTree.CondTree v c)
+ Distribution.Types.CondTree: instance Data.Traversable.Traversable (Distribution.Types.CondTree.CondBranch v c)
+ Distribution.Types.CondTree: instance Data.Traversable.Traversable (Distribution.Types.CondTree.CondTree v c)
+ Distribution.Types.CondTree: instance GHC.Base.Functor (Distribution.Types.CondTree.CondBranch v c)
+ Distribution.Types.CondTree: instance GHC.Base.Functor (Distribution.Types.CondTree.CondTree v c)
+ Distribution.Types.CondTree: instance GHC.Generics.Generic (Distribution.Types.CondTree.CondBranch v c a)
+ Distribution.Types.CondTree: instance GHC.Generics.Generic (Distribution.Types.CondTree.CondTree v c a)
+ Distribution.Types.CondTree: mapCondTree :: (a -> b) -> (c -> d) -> (Condition v -> Condition w) -> CondTree v c a -> CondTree w d b
+ Distribution.Types.CondTree: mapTreeConds :: (Condition v -> Condition w) -> CondTree v c a -> CondTree w c a
+ Distribution.Types.CondTree: mapTreeConstrs :: (c -> d) -> CondTree v c a -> CondTree v d a
+ Distribution.Types.CondTree: mapTreeData :: (a -> b) -> CondTree v c a -> CondTree v c b
+ Distribution.Types.CondTree: simplifyCondTree :: (Monoid a, Monoid d) => (v -> Either v Bool) -> CondTree v d a -> (d, a)
+ Distribution.Types.Condition: CAnd :: (Condition c) -> (Condition c) -> Condition c
+ Distribution.Types.Condition: CNot :: (Condition c) -> Condition c
+ Distribution.Types.Condition: COr :: (Condition c) -> (Condition c) -> Condition c
+ Distribution.Types.Condition: Lit :: Bool -> Condition c
+ Distribution.Types.Condition: Var :: c -> Condition c
+ Distribution.Types.Condition: cAnd :: Condition a -> Condition a -> Condition a
+ Distribution.Types.Condition: cNot :: Condition a -> Condition a
+ Distribution.Types.Condition: cOr :: Eq v => Condition v -> Condition v -> Condition v
+ Distribution.Types.Condition: data Condition c
+ Distribution.Types.Condition: instance Data.Binary.Class.Binary c => Data.Binary.Class.Binary (Distribution.Types.Condition.Condition c)
+ Distribution.Types.Condition: instance Data.Data.Data c => Data.Data.Data (Distribution.Types.Condition.Condition c)
+ Distribution.Types.Condition: instance Data.Foldable.Foldable Distribution.Types.Condition.Condition
+ Distribution.Types.Condition: instance Data.Semigroup.Semigroup (Distribution.Types.Condition.Condition a)
+ Distribution.Types.Condition: instance Data.Traversable.Traversable Distribution.Types.Condition.Condition
+ Distribution.Types.Condition: instance GHC.Base.Alternative Distribution.Types.Condition.Condition
+ Distribution.Types.Condition: instance GHC.Base.Applicative Distribution.Types.Condition.Condition
+ Distribution.Types.Condition: instance GHC.Base.Functor Distribution.Types.Condition.Condition
+ Distribution.Types.Condition: instance GHC.Base.Monad Distribution.Types.Condition.Condition
+ Distribution.Types.Condition: instance GHC.Base.MonadPlus Distribution.Types.Condition.Condition
+ Distribution.Types.Condition: instance GHC.Base.Monoid (Distribution.Types.Condition.Condition a)
+ Distribution.Types.Condition: instance GHC.Classes.Eq c => GHC.Classes.Eq (Distribution.Types.Condition.Condition c)
+ Distribution.Types.Condition: instance GHC.Generics.Generic (Distribution.Types.Condition.Condition c)
+ Distribution.Types.Condition: instance GHC.Show.Show c => GHC.Show.Show (Distribution.Types.Condition.Condition c)
+ Distribution.Types.Condition: simplifyCondition :: Condition c -> (c -> Either d Bool) -> (Condition d, [d])
+ Distribution.Types.Dependency: Dependency :: PackageName -> VersionRange -> Dependency
+ Distribution.Types.Dependency: data Dependency
+ Distribution.Types.Dependency: depPkgName :: Dependency -> PackageName
+ Distribution.Types.Dependency: depVerRange :: Dependency -> VersionRange
+ Distribution.Types.Dependency: instance Control.DeepSeq.NFData Distribution.Types.Dependency.Dependency
+ Distribution.Types.Dependency: instance Data.Binary.Class.Binary Distribution.Types.Dependency.Dependency
+ Distribution.Types.Dependency: instance Data.Data.Data Distribution.Types.Dependency.Dependency
+ Distribution.Types.Dependency: instance Distribution.Text.Text Distribution.Types.Dependency.Dependency
+ Distribution.Types.Dependency: instance GHC.Classes.Eq Distribution.Types.Dependency.Dependency
+ Distribution.Types.Dependency: instance GHC.Generics.Generic Distribution.Types.Dependency.Dependency
+ Distribution.Types.Dependency: instance GHC.Read.Read Distribution.Types.Dependency.Dependency
+ Distribution.Types.Dependency: instance GHC.Show.Show Distribution.Types.Dependency.Dependency
+ Distribution.Types.Dependency: notThisPackageVersion :: PackageIdentifier -> Dependency
+ Distribution.Types.Dependency: simplifyDependency :: Dependency -> Dependency
+ Distribution.Types.Dependency: thisPackageVersion :: PackageIdentifier -> Dependency
+ Distribution.Types.DependencyMap: constrainBy :: DependencyMap -> DependencyMap -> DependencyMap
+ Distribution.Types.DependencyMap: data DependencyMap
+ Distribution.Types.DependencyMap: fromDepMap :: DependencyMap -> [Dependency]
+ Distribution.Types.DependencyMap: instance Data.Semigroup.Semigroup Distribution.Types.DependencyMap.DependencyMap
+ Distribution.Types.DependencyMap: instance GHC.Base.Monoid Distribution.Types.DependencyMap.DependencyMap
+ Distribution.Types.DependencyMap: instance GHC.Read.Read Distribution.Types.DependencyMap.DependencyMap
+ Distribution.Types.DependencyMap: instance GHC.Show.Show Distribution.Types.DependencyMap.DependencyMap
+ Distribution.Types.DependencyMap: toDepMap :: [Dependency] -> DependencyMap
+ Distribution.Types.ExeDependency: ExeDependency :: PackageName -> UnqualComponentName -> VersionRange -> ExeDependency
+ Distribution.Types.ExeDependency: data ExeDependency
+ Distribution.Types.ExeDependency: instance Control.DeepSeq.NFData Distribution.Types.ExeDependency.ExeDependency
+ Distribution.Types.ExeDependency: instance Data.Binary.Class.Binary Distribution.Types.ExeDependency.ExeDependency
+ Distribution.Types.ExeDependency: instance Data.Data.Data Distribution.Types.ExeDependency.ExeDependency
+ Distribution.Types.ExeDependency: instance Distribution.Text.Text Distribution.Types.ExeDependency.ExeDependency
+ Distribution.Types.ExeDependency: instance GHC.Classes.Eq Distribution.Types.ExeDependency.ExeDependency
+ Distribution.Types.ExeDependency: instance GHC.Generics.Generic Distribution.Types.ExeDependency.ExeDependency
+ Distribution.Types.ExeDependency: instance GHC.Read.Read Distribution.Types.ExeDependency.ExeDependency
+ Distribution.Types.ExeDependency: instance GHC.Show.Show Distribution.Types.ExeDependency.ExeDependency
+ Distribution.Types.ExeDependency: qualifiedExeName :: ExeDependency -> ComponentName
+ Distribution.Types.Executable: Executable :: UnqualComponentName -> FilePath -> ExecutableScope -> BuildInfo -> Executable
+ Distribution.Types.Executable: [buildInfo] :: Executable -> BuildInfo
+ Distribution.Types.Executable: [exeName] :: Executable -> UnqualComponentName
+ Distribution.Types.Executable: [exeScope] :: Executable -> ExecutableScope
+ Distribution.Types.Executable: [modulePath] :: Executable -> FilePath
+ Distribution.Types.Executable: data Executable
+ Distribution.Types.Executable: emptyExecutable :: Executable
+ Distribution.Types.Executable: exeModules :: Executable -> [ModuleName]
+ Distribution.Types.Executable: exeModulesAutogen :: Executable -> [ModuleName]
+ Distribution.Types.Executable: instance Data.Binary.Class.Binary Distribution.Types.Executable.Executable
+ Distribution.Types.Executable: instance Data.Data.Data Distribution.Types.Executable.Executable
+ Distribution.Types.Executable: instance Data.Semigroup.Semigroup Distribution.Types.Executable.Executable
+ Distribution.Types.Executable: instance GHC.Base.Monoid Distribution.Types.Executable.Executable
+ Distribution.Types.Executable: instance GHC.Classes.Eq Distribution.Types.Executable.Executable
+ Distribution.Types.Executable: instance GHC.Generics.Generic Distribution.Types.Executable.Executable
+ Distribution.Types.Executable: instance GHC.Read.Read Distribution.Types.Executable.Executable
+ Distribution.Types.Executable: instance GHC.Show.Show Distribution.Types.Executable.Executable
+ Distribution.Types.ExecutableScope: ExecutablePrivate :: ExecutableScope
+ Distribution.Types.ExecutableScope: ExecutablePublic :: ExecutableScope
+ Distribution.Types.ExecutableScope: ExecutableScopeUnknown :: ExecutableScope
+ Distribution.Types.ExecutableScope: data ExecutableScope
+ Distribution.Types.ExecutableScope: instance Data.Binary.Class.Binary Distribution.Types.ExecutableScope.ExecutableScope
+ Distribution.Types.ExecutableScope: instance Data.Data.Data Distribution.Types.ExecutableScope.ExecutableScope
+ Distribution.Types.ExecutableScope: instance Data.Semigroup.Semigroup Distribution.Types.ExecutableScope.ExecutableScope
+ Distribution.Types.ExecutableScope: instance Distribution.Text.Text Distribution.Types.ExecutableScope.ExecutableScope
+ Distribution.Types.ExecutableScope: instance GHC.Base.Monoid Distribution.Types.ExecutableScope.ExecutableScope
+ Distribution.Types.ExecutableScope: instance GHC.Classes.Eq Distribution.Types.ExecutableScope.ExecutableScope
+ Distribution.Types.ExecutableScope: instance GHC.Generics.Generic Distribution.Types.ExecutableScope.ExecutableScope
+ Distribution.Types.ExecutableScope: instance GHC.Read.Read Distribution.Types.ExecutableScope.ExecutableScope
+ Distribution.Types.ExecutableScope: instance GHC.Show.Show Distribution.Types.ExecutableScope.ExecutableScope
+ Distribution.Types.ForeignLib: ForeignLib :: UnqualComponentName -> ForeignLibType -> [ForeignLibOption] -> BuildInfo -> Maybe LibVersionInfo -> Maybe Version -> [FilePath] -> ForeignLib
+ Distribution.Types.ForeignLib: [foreignLibBuildInfo] :: ForeignLib -> BuildInfo
+ Distribution.Types.ForeignLib: [foreignLibModDefFile] :: ForeignLib -> [FilePath]
+ Distribution.Types.ForeignLib: [foreignLibName] :: ForeignLib -> UnqualComponentName
+ Distribution.Types.ForeignLib: [foreignLibOptions] :: ForeignLib -> [ForeignLibOption]
+ Distribution.Types.ForeignLib: [foreignLibType] :: ForeignLib -> ForeignLibType
+ Distribution.Types.ForeignLib: [foreignLibVersionInfo] :: ForeignLib -> Maybe LibVersionInfo
+ Distribution.Types.ForeignLib: [foreignLibVersionLinux] :: ForeignLib -> Maybe Version
+ Distribution.Types.ForeignLib: data ForeignLib
+ Distribution.Types.ForeignLib: data LibVersionInfo
+ Distribution.Types.ForeignLib: emptyForeignLib :: ForeignLib
+ Distribution.Types.ForeignLib: foreignLibIsShared :: ForeignLib -> Bool
+ Distribution.Types.ForeignLib: foreignLibModules :: ForeignLib -> [ModuleName]
+ Distribution.Types.ForeignLib: foreignLibVersion :: ForeignLib -> OS -> [Int]
+ Distribution.Types.ForeignLib: instance Data.Binary.Class.Binary Distribution.Types.ForeignLib.ForeignLib
+ Distribution.Types.ForeignLib: instance Data.Binary.Class.Binary Distribution.Types.ForeignLib.LibVersionInfo
+ Distribution.Types.ForeignLib: instance Data.Data.Data Distribution.Types.ForeignLib.ForeignLib
+ Distribution.Types.ForeignLib: instance Data.Data.Data Distribution.Types.ForeignLib.LibVersionInfo
+ Distribution.Types.ForeignLib: instance Data.Semigroup.Semigroup Distribution.Types.ForeignLib.ForeignLib
+ Distribution.Types.ForeignLib: instance Distribution.Text.Text Distribution.Types.ForeignLib.LibVersionInfo
+ Distribution.Types.ForeignLib: instance GHC.Base.Monoid Distribution.Types.ForeignLib.ForeignLib
+ Distribution.Types.ForeignLib: instance GHC.Classes.Eq Distribution.Types.ForeignLib.ForeignLib
+ Distribution.Types.ForeignLib: instance GHC.Classes.Eq Distribution.Types.ForeignLib.LibVersionInfo
+ Distribution.Types.ForeignLib: instance GHC.Classes.Ord Distribution.Types.ForeignLib.LibVersionInfo
+ Distribution.Types.ForeignLib: instance GHC.Generics.Generic Distribution.Types.ForeignLib.ForeignLib
+ Distribution.Types.ForeignLib: instance GHC.Generics.Generic Distribution.Types.ForeignLib.LibVersionInfo
+ Distribution.Types.ForeignLib: instance GHC.Read.Read Distribution.Types.ForeignLib.ForeignLib
+ Distribution.Types.ForeignLib: instance GHC.Read.Read Distribution.Types.ForeignLib.LibVersionInfo
+ Distribution.Types.ForeignLib: instance GHC.Show.Show Distribution.Types.ForeignLib.ForeignLib
+ Distribution.Types.ForeignLib: instance GHC.Show.Show Distribution.Types.ForeignLib.LibVersionInfo
+ Distribution.Types.ForeignLib: libVersionInfoCRA :: LibVersionInfo -> (Int, Int, Int)
+ Distribution.Types.ForeignLib: libVersionMajor :: LibVersionInfo -> Int
+ Distribution.Types.ForeignLib: libVersionNumber :: LibVersionInfo -> (Int, Int, Int)
+ Distribution.Types.ForeignLib: libVersionNumberShow :: LibVersionInfo -> String
+ Distribution.Types.ForeignLib: mkLibVersionInfo :: (Int, Int, Int) -> LibVersionInfo
+ Distribution.Types.ForeignLibOption: ForeignLibStandalone :: ForeignLibOption
+ Distribution.Types.ForeignLibOption: data ForeignLibOption
+ Distribution.Types.ForeignLibOption: instance Data.Binary.Class.Binary Distribution.Types.ForeignLibOption.ForeignLibOption
+ Distribution.Types.ForeignLibOption: instance Data.Data.Data Distribution.Types.ForeignLibOption.ForeignLibOption
+ Distribution.Types.ForeignLibOption: instance Distribution.Text.Text Distribution.Types.ForeignLibOption.ForeignLibOption
+ Distribution.Types.ForeignLibOption: instance GHC.Classes.Eq Distribution.Types.ForeignLibOption.ForeignLibOption
+ Distribution.Types.ForeignLibOption: instance GHC.Generics.Generic Distribution.Types.ForeignLibOption.ForeignLibOption
+ Distribution.Types.ForeignLibOption: instance GHC.Read.Read Distribution.Types.ForeignLibOption.ForeignLibOption
+ Distribution.Types.ForeignLibOption: instance GHC.Show.Show Distribution.Types.ForeignLibOption.ForeignLibOption
+ Distribution.Types.ForeignLibType: ForeignLibNativeShared :: ForeignLibType
+ Distribution.Types.ForeignLibType: ForeignLibNativeStatic :: ForeignLibType
+ Distribution.Types.ForeignLibType: ForeignLibTypeUnknown :: ForeignLibType
+ Distribution.Types.ForeignLibType: data ForeignLibType
+ Distribution.Types.ForeignLibType: foreignLibTypeIsShared :: ForeignLibType -> Bool
+ Distribution.Types.ForeignLibType: instance Data.Binary.Class.Binary Distribution.Types.ForeignLibType.ForeignLibType
+ Distribution.Types.ForeignLibType: instance Data.Data.Data Distribution.Types.ForeignLibType.ForeignLibType
+ Distribution.Types.ForeignLibType: instance Data.Semigroup.Semigroup Distribution.Types.ForeignLibType.ForeignLibType
+ Distribution.Types.ForeignLibType: instance Distribution.Text.Text Distribution.Types.ForeignLibType.ForeignLibType
+ Distribution.Types.ForeignLibType: instance GHC.Base.Monoid Distribution.Types.ForeignLibType.ForeignLibType
+ Distribution.Types.ForeignLibType: instance GHC.Classes.Eq Distribution.Types.ForeignLibType.ForeignLibType
+ Distribution.Types.ForeignLibType: instance GHC.Generics.Generic Distribution.Types.ForeignLibType.ForeignLibType
+ Distribution.Types.ForeignLibType: instance GHC.Read.Read Distribution.Types.ForeignLibType.ForeignLibType
+ Distribution.Types.ForeignLibType: instance GHC.Show.Show Distribution.Types.ForeignLibType.ForeignLibType
+ Distribution.Types.ForeignLibType: knownForeignLibTypes :: [ForeignLibType]
+ Distribution.Types.GenericPackageDescription: Arch :: Arch -> ConfVar
+ Distribution.Types.GenericPackageDescription: Flag :: FlagName -> ConfVar
+ Distribution.Types.GenericPackageDescription: GenericPackageDescription :: PackageDescription -> [Flag] -> Maybe (CondTree ConfVar [Dependency] Library) -> [(UnqualComponentName, CondTree ConfVar [Dependency] Library)] -> [(UnqualComponentName, CondTree ConfVar [Dependency] ForeignLib)] -> [(UnqualComponentName, CondTree ConfVar [Dependency] Executable)] -> [(UnqualComponentName, CondTree ConfVar [Dependency] TestSuite)] -> [(UnqualComponentName, CondTree ConfVar [Dependency] Benchmark)] -> GenericPackageDescription
+ Distribution.Types.GenericPackageDescription: Impl :: CompilerFlavor -> VersionRange -> ConfVar
+ Distribution.Types.GenericPackageDescription: MkFlag :: FlagName -> String -> Bool -> Bool -> Flag
+ Distribution.Types.GenericPackageDescription: OS :: OS -> ConfVar
+ Distribution.Types.GenericPackageDescription: [condBenchmarks] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] Benchmark)]
+ Distribution.Types.GenericPackageDescription: [condExecutables] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] Executable)]
+ Distribution.Types.GenericPackageDescription: [condForeignLibs] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] ForeignLib)]
+ Distribution.Types.GenericPackageDescription: [condLibrary] :: GenericPackageDescription -> Maybe (CondTree ConfVar [Dependency] Library)
+ Distribution.Types.GenericPackageDescription: [condSubLibraries] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] Library)]
+ Distribution.Types.GenericPackageDescription: [condTestSuites] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] TestSuite)]
+ Distribution.Types.GenericPackageDescription: [flagDefault] :: Flag -> Bool
+ Distribution.Types.GenericPackageDescription: [flagDescription] :: Flag -> String
+ Distribution.Types.GenericPackageDescription: [flagManual] :: Flag -> Bool
+ Distribution.Types.GenericPackageDescription: [flagName] :: Flag -> FlagName
+ Distribution.Types.GenericPackageDescription: [genPackageFlags] :: GenericPackageDescription -> [Flag]
+ Distribution.Types.GenericPackageDescription: [packageDescription] :: GenericPackageDescription -> PackageDescription
+ Distribution.Types.GenericPackageDescription: data ConfVar
+ Distribution.Types.GenericPackageDescription: data Flag
+ Distribution.Types.GenericPackageDescription: data FlagName
+ Distribution.Types.GenericPackageDescription: data GenericPackageDescription
+ Distribution.Types.GenericPackageDescription: dispFlagAssignment :: FlagAssignment -> Doc
+ Distribution.Types.GenericPackageDescription: emptyFlag :: FlagName -> Flag
+ Distribution.Types.GenericPackageDescription: instance Data.Binary.Class.Binary Distribution.Types.GenericPackageDescription.ConfVar
+ Distribution.Types.GenericPackageDescription: instance Data.Binary.Class.Binary Distribution.Types.GenericPackageDescription.Flag
+ Distribution.Types.GenericPackageDescription: instance Data.Binary.Class.Binary Distribution.Types.GenericPackageDescription.FlagName
+ Distribution.Types.GenericPackageDescription: instance Data.Binary.Class.Binary Distribution.Types.GenericPackageDescription.GenericPackageDescription
+ Distribution.Types.GenericPackageDescription: instance Data.Data.Data Distribution.Types.GenericPackageDescription.ConfVar
+ Distribution.Types.GenericPackageDescription: instance Data.Data.Data Distribution.Types.GenericPackageDescription.Flag
+ Distribution.Types.GenericPackageDescription: instance Data.Data.Data Distribution.Types.GenericPackageDescription.FlagName
+ Distribution.Types.GenericPackageDescription: instance Data.Data.Data Distribution.Types.GenericPackageDescription.GenericPackageDescription
+ Distribution.Types.GenericPackageDescription: instance Data.String.IsString Distribution.Types.GenericPackageDescription.FlagName
+ Distribution.Types.GenericPackageDescription: instance Distribution.Package.Package Distribution.Types.GenericPackageDescription.GenericPackageDescription
+ Distribution.Types.GenericPackageDescription: instance GHC.Classes.Eq Distribution.Types.GenericPackageDescription.ConfVar
+ Distribution.Types.GenericPackageDescription: instance GHC.Classes.Eq Distribution.Types.GenericPackageDescription.Flag
+ Distribution.Types.GenericPackageDescription: instance GHC.Classes.Eq Distribution.Types.GenericPackageDescription.FlagName
+ Distribution.Types.GenericPackageDescription: instance GHC.Classes.Eq Distribution.Types.GenericPackageDescription.GenericPackageDescription
+ Distribution.Types.GenericPackageDescription: instance GHC.Classes.Ord Distribution.Types.GenericPackageDescription.FlagName
+ Distribution.Types.GenericPackageDescription: instance GHC.Generics.Generic Distribution.Types.GenericPackageDescription.ConfVar
+ Distribution.Types.GenericPackageDescription: instance GHC.Generics.Generic Distribution.Types.GenericPackageDescription.Flag
+ Distribution.Types.GenericPackageDescription: instance GHC.Generics.Generic Distribution.Types.GenericPackageDescription.FlagName
+ Distribution.Types.GenericPackageDescription: instance GHC.Generics.Generic Distribution.Types.GenericPackageDescription.GenericPackageDescription
+ Distribution.Types.GenericPackageDescription: instance GHC.Read.Read Distribution.Types.GenericPackageDescription.FlagName
+ Distribution.Types.GenericPackageDescription: instance GHC.Show.Show Distribution.Types.GenericPackageDescription.ConfVar
+ Distribution.Types.GenericPackageDescription: instance GHC.Show.Show Distribution.Types.GenericPackageDescription.Flag
+ Distribution.Types.GenericPackageDescription: instance GHC.Show.Show Distribution.Types.GenericPackageDescription.FlagName
+ Distribution.Types.GenericPackageDescription: instance GHC.Show.Show Distribution.Types.GenericPackageDescription.GenericPackageDescription
+ Distribution.Types.GenericPackageDescription: mkFlagName :: String -> FlagName
+ Distribution.Types.GenericPackageDescription: parseFlagAssignment :: ReadP r FlagAssignment
+ Distribution.Types.GenericPackageDescription: showFlagValue :: (FlagName, Bool) -> String
+ Distribution.Types.GenericPackageDescription: type FlagAssignment = [(FlagName, Bool)]
+ Distribution.Types.GenericPackageDescription: unFlagName :: FlagName -> String
+ Distribution.Types.HookedBuildInfo: emptyHookedBuildInfo :: HookedBuildInfo
+ Distribution.Types.HookedBuildInfo: type HookedBuildInfo = (Maybe BuildInfo, [(UnqualComponentName, BuildInfo)])
+ Distribution.Types.IncludeRenaming: IncludeRenaming :: ModuleRenaming -> ModuleRenaming -> IncludeRenaming
+ Distribution.Types.IncludeRenaming: [includeProvidesRn] :: IncludeRenaming -> ModuleRenaming
+ Distribution.Types.IncludeRenaming: [includeRequiresRn] :: IncludeRenaming -> ModuleRenaming
+ Distribution.Types.IncludeRenaming: data IncludeRenaming
+ Distribution.Types.IncludeRenaming: defaultIncludeRenaming :: IncludeRenaming
+ Distribution.Types.IncludeRenaming: instance Data.Binary.Class.Binary Distribution.Types.IncludeRenaming.IncludeRenaming
+ Distribution.Types.IncludeRenaming: instance Data.Data.Data Distribution.Types.IncludeRenaming.IncludeRenaming
+ Distribution.Types.IncludeRenaming: instance Distribution.Text.Text Distribution.Types.IncludeRenaming.IncludeRenaming
+ Distribution.Types.IncludeRenaming: instance GHC.Classes.Eq Distribution.Types.IncludeRenaming.IncludeRenaming
+ Distribution.Types.IncludeRenaming: instance GHC.Classes.Ord Distribution.Types.IncludeRenaming.IncludeRenaming
+ Distribution.Types.IncludeRenaming: instance GHC.Generics.Generic Distribution.Types.IncludeRenaming.IncludeRenaming
+ Distribution.Types.IncludeRenaming: instance GHC.Read.Read Distribution.Types.IncludeRenaming.IncludeRenaming
+ Distribution.Types.IncludeRenaming: instance GHC.Show.Show Distribution.Types.IncludeRenaming.IncludeRenaming
+ Distribution.Types.IncludeRenaming: isDefaultIncludeRenaming :: IncludeRenaming -> Bool
+ Distribution.Types.LegacyExeDependency: LegacyExeDependency :: String -> VersionRange -> LegacyExeDependency
+ Distribution.Types.LegacyExeDependency: data LegacyExeDependency
+ Distribution.Types.LegacyExeDependency: instance Control.DeepSeq.NFData Distribution.Types.LegacyExeDependency.LegacyExeDependency
+ Distribution.Types.LegacyExeDependency: instance Data.Binary.Class.Binary Distribution.Types.LegacyExeDependency.LegacyExeDependency
+ Distribution.Types.LegacyExeDependency: instance Data.Data.Data Distribution.Types.LegacyExeDependency.LegacyExeDependency
+ Distribution.Types.LegacyExeDependency: instance Distribution.Text.Text Distribution.Types.LegacyExeDependency.LegacyExeDependency
+ Distribution.Types.LegacyExeDependency: instance GHC.Classes.Eq Distribution.Types.LegacyExeDependency.LegacyExeDependency
+ Distribution.Types.LegacyExeDependency: instance GHC.Generics.Generic Distribution.Types.LegacyExeDependency.LegacyExeDependency
+ Distribution.Types.LegacyExeDependency: instance GHC.Read.Read Distribution.Types.LegacyExeDependency.LegacyExeDependency
+ Distribution.Types.LegacyExeDependency: instance GHC.Show.Show Distribution.Types.LegacyExeDependency.LegacyExeDependency
+ Distribution.Types.Library: Library :: Maybe UnqualComponentName -> [ModuleName] -> [ModuleReexport] -> [ModuleName] -> Bool -> BuildInfo -> Library
+ Distribution.Types.Library: [exposedModules] :: Library -> [ModuleName]
+ Distribution.Types.Library: [libBuildInfo] :: Library -> BuildInfo
+ Distribution.Types.Library: [libExposed] :: Library -> Bool
+ Distribution.Types.Library: [libName] :: Library -> Maybe UnqualComponentName
+ Distribution.Types.Library: [reexportedModules] :: Library -> [ModuleReexport]
+ Distribution.Types.Library: [signatures] :: Library -> [ModuleName]
+ Distribution.Types.Library: data Library
+ Distribution.Types.Library: emptyLibrary :: Library
+ Distribution.Types.Library: explicitLibModules :: Library -> [ModuleName]
+ Distribution.Types.Library: instance Data.Binary.Class.Binary Distribution.Types.Library.Library
+ Distribution.Types.Library: instance Data.Data.Data Distribution.Types.Library.Library
+ Distribution.Types.Library: instance Data.Semigroup.Semigroup Distribution.Types.Library.Library
+ Distribution.Types.Library: instance GHC.Base.Monoid Distribution.Types.Library.Library
+ Distribution.Types.Library: instance GHC.Classes.Eq Distribution.Types.Library.Library
+ Distribution.Types.Library: instance GHC.Generics.Generic Distribution.Types.Library.Library
+ Distribution.Types.Library: instance GHC.Read.Read Distribution.Types.Library.Library
+ Distribution.Types.Library: instance GHC.Show.Show Distribution.Types.Library.Library
+ Distribution.Types.Library: libModules :: Library -> [ModuleName]
+ Distribution.Types.Library: libModulesAutogen :: Library -> [ModuleName]
+ Distribution.Types.LocalBuildInfo: LocalBuildInfo :: ConfigFlags -> FlagAssignment -> ComponentRequestedSpec -> [String] -> InstallDirTemplates -> Compiler -> Platform -> FilePath -> Graph ComponentLocalBuildInfo -> Map ComponentName [ComponentLocalBuildInfo] -> InstalledPackageIndex -> Maybe FilePath -> PackageDescription -> ProgramDb -> PackageDBStack -> Bool -> Bool -> Bool -> Bool -> Bool -> ProfDetailLevel -> ProfDetailLevel -> OptimisationLevel -> DebugInfoLevel -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> PathTemplate -> PathTemplate -> Bool -> LocalBuildInfo
+ Distribution.Types.LocalBuildInfo: [buildDir] :: LocalBuildInfo -> FilePath
+ Distribution.Types.LocalBuildInfo: [compiler] :: LocalBuildInfo -> Compiler
+ Distribution.Types.LocalBuildInfo: [componentEnabledSpec] :: LocalBuildInfo -> ComponentRequestedSpec
+ Distribution.Types.LocalBuildInfo: [componentGraph] :: LocalBuildInfo -> Graph ComponentLocalBuildInfo
+ Distribution.Types.LocalBuildInfo: [componentNameMap] :: LocalBuildInfo -> Map ComponentName [ComponentLocalBuildInfo]
+ Distribution.Types.LocalBuildInfo: [configFlags] :: LocalBuildInfo -> ConfigFlags
+ Distribution.Types.LocalBuildInfo: [exeCoverage] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [extraConfigArgs] :: LocalBuildInfo -> [String]
+ Distribution.Types.LocalBuildInfo: [flagAssignment] :: LocalBuildInfo -> FlagAssignment
+ Distribution.Types.LocalBuildInfo: [hostPlatform] :: LocalBuildInfo -> Platform
+ Distribution.Types.LocalBuildInfo: [installDirTemplates] :: LocalBuildInfo -> InstallDirTemplates
+ Distribution.Types.LocalBuildInfo: [installedPkgs] :: LocalBuildInfo -> InstalledPackageIndex
+ Distribution.Types.LocalBuildInfo: [libCoverage] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [localPkgDescr] :: LocalBuildInfo -> PackageDescription
+ Distribution.Types.LocalBuildInfo: [pkgDescrFile] :: LocalBuildInfo -> Maybe FilePath
+ Distribution.Types.LocalBuildInfo: [progPrefix] :: LocalBuildInfo -> PathTemplate
+ Distribution.Types.LocalBuildInfo: [progSuffix] :: LocalBuildInfo -> PathTemplate
+ Distribution.Types.LocalBuildInfo: [relocatable] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [splitObjs] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [stripExes] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [stripLibs] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [withDebugInfo] :: LocalBuildInfo -> DebugInfoLevel
+ Distribution.Types.LocalBuildInfo: [withDynExe] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [withGHCiLib] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [withOptimization] :: LocalBuildInfo -> OptimisationLevel
+ Distribution.Types.LocalBuildInfo: [withPackageDB] :: LocalBuildInfo -> PackageDBStack
+ Distribution.Types.LocalBuildInfo: [withProfExeDetail] :: LocalBuildInfo -> ProfDetailLevel
+ Distribution.Types.LocalBuildInfo: [withProfExe] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [withProfLibDetail] :: LocalBuildInfo -> ProfDetailLevel
+ Distribution.Types.LocalBuildInfo: [withProfLib] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [withPrograms] :: LocalBuildInfo -> ProgramDb
+ Distribution.Types.LocalBuildInfo: [withSharedLib] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: [withVanillaLib] :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: allTargetsInBuildOrder :: LocalBuildInfo -> [TargetInfo]
+ Distribution.Types.LocalBuildInfo: allTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [TargetInfo]
+ Distribution.Types.LocalBuildInfo: componentNameCLBIs :: LocalBuildInfo -> ComponentName -> [ComponentLocalBuildInfo]
+ Distribution.Types.LocalBuildInfo: componentNameTargets :: LocalBuildInfo -> ComponentName -> [TargetInfo]
+ Distribution.Types.LocalBuildInfo: componentNameTargets' :: PackageDescription -> LocalBuildInfo -> ComponentName -> [TargetInfo]
+ Distribution.Types.LocalBuildInfo: componentsConfigs :: LocalBuildInfo -> [(ComponentName, ComponentLocalBuildInfo, [ComponentName])]
+ Distribution.Types.LocalBuildInfo: data LocalBuildInfo
+ Distribution.Types.LocalBuildInfo: externalPackageDeps :: LocalBuildInfo -> [(UnitId, MungedPackageId)]
+ Distribution.Types.LocalBuildInfo: instance Data.Binary.Class.Binary Distribution.Types.LocalBuildInfo.LocalBuildInfo
+ Distribution.Types.LocalBuildInfo: instance GHC.Generics.Generic Distribution.Types.LocalBuildInfo.LocalBuildInfo
+ Distribution.Types.LocalBuildInfo: instance GHC.Read.Read Distribution.Types.LocalBuildInfo.LocalBuildInfo
+ Distribution.Types.LocalBuildInfo: instance GHC.Show.Show Distribution.Types.LocalBuildInfo.LocalBuildInfo
+ Distribution.Types.LocalBuildInfo: localCompatPackageKey :: LocalBuildInfo -> String
+ Distribution.Types.LocalBuildInfo: localComponentId :: LocalBuildInfo -> ComponentId
+ Distribution.Types.LocalBuildInfo: localPackage :: LocalBuildInfo -> PackageId
+ Distribution.Types.LocalBuildInfo: localUnitId :: LocalBuildInfo -> UnitId
+ Distribution.Types.LocalBuildInfo: neededTargetsInBuildOrder :: LocalBuildInfo -> [UnitId] -> [TargetInfo]
+ Distribution.Types.LocalBuildInfo: neededTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [UnitId] -> [TargetInfo]
+ Distribution.Types.LocalBuildInfo: testCoverage :: LocalBuildInfo -> Bool
+ Distribution.Types.LocalBuildInfo: unitIdTarget :: LocalBuildInfo -> UnitId -> Maybe TargetInfo
+ Distribution.Types.LocalBuildInfo: unitIdTarget' :: PackageDescription -> LocalBuildInfo -> UnitId -> Maybe TargetInfo
+ Distribution.Types.LocalBuildInfo: withAllTargetsInBuildOrder :: LocalBuildInfo -> (TargetInfo -> IO ()) -> IO ()
+ Distribution.Types.LocalBuildInfo: withAllTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> (TargetInfo -> IO ()) -> IO ()
+ Distribution.Types.LocalBuildInfo: withNeededTargetsInBuildOrder :: LocalBuildInfo -> [UnitId] -> (TargetInfo -> IO ()) -> IO ()
+ Distribution.Types.LocalBuildInfo: withNeededTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [UnitId] -> (TargetInfo -> IO ()) -> IO ()
+ Distribution.Types.Mixin: Mixin :: PackageName -> IncludeRenaming -> Mixin
+ Distribution.Types.Mixin: [mixinIncludeRenaming] :: Mixin -> IncludeRenaming
+ Distribution.Types.Mixin: [mixinPackageName] :: Mixin -> PackageName
+ Distribution.Types.Mixin: data Mixin
+ Distribution.Types.Mixin: instance Data.Binary.Class.Binary Distribution.Types.Mixin.Mixin
+ Distribution.Types.Mixin: instance Data.Data.Data Distribution.Types.Mixin.Mixin
+ Distribution.Types.Mixin: instance Distribution.Text.Text Distribution.Types.Mixin.Mixin
+ Distribution.Types.Mixin: instance GHC.Classes.Eq Distribution.Types.Mixin.Mixin
+ Distribution.Types.Mixin: instance GHC.Classes.Ord Distribution.Types.Mixin.Mixin
+ Distribution.Types.Mixin: instance GHC.Generics.Generic Distribution.Types.Mixin.Mixin
+ Distribution.Types.Mixin: instance GHC.Read.Read Distribution.Types.Mixin.Mixin
+ Distribution.Types.Mixin: instance GHC.Show.Show Distribution.Types.Mixin.Mixin
+ Distribution.Types.Module: Module :: DefUnitId -> ModuleName -> Module
+ Distribution.Types.Module: data Module
+ Distribution.Types.Module: instance Control.DeepSeq.NFData Distribution.Types.Module.Module
+ Distribution.Types.Module: instance Data.Binary.Class.Binary Distribution.Types.Module.Module
+ Distribution.Types.Module: instance Data.Data.Data Distribution.Types.Module.Module
+ Distribution.Types.Module: instance Distribution.Text.Text Distribution.Types.Module.Module
+ Distribution.Types.Module: instance GHC.Classes.Eq Distribution.Types.Module.Module
+ Distribution.Types.Module: instance GHC.Classes.Ord Distribution.Types.Module.Module
+ Distribution.Types.Module: instance GHC.Generics.Generic Distribution.Types.Module.Module
+ Distribution.Types.Module: instance GHC.Read.Read Distribution.Types.Module.Module
+ Distribution.Types.Module: instance GHC.Show.Show Distribution.Types.Module.Module
+ Distribution.Types.ModuleReexport: ModuleReexport :: Maybe PackageName -> ModuleName -> ModuleName -> ModuleReexport
+ Distribution.Types.ModuleReexport: [moduleReexportName] :: ModuleReexport -> ModuleName
+ Distribution.Types.ModuleReexport: [moduleReexportOriginalName] :: ModuleReexport -> ModuleName
+ Distribution.Types.ModuleReexport: [moduleReexportOriginalPackage] :: ModuleReexport -> Maybe PackageName
+ Distribution.Types.ModuleReexport: data ModuleReexport
+ Distribution.Types.ModuleReexport: instance Data.Binary.Class.Binary Distribution.Types.ModuleReexport.ModuleReexport
+ Distribution.Types.ModuleReexport: instance Data.Data.Data Distribution.Types.ModuleReexport.ModuleReexport
+ Distribution.Types.ModuleReexport: instance Distribution.Text.Text Distribution.Types.ModuleReexport.ModuleReexport
+ Distribution.Types.ModuleReexport: instance GHC.Classes.Eq Distribution.Types.ModuleReexport.ModuleReexport
+ Distribution.Types.ModuleReexport: instance GHC.Generics.Generic Distribution.Types.ModuleReexport.ModuleReexport
+ Distribution.Types.ModuleReexport: instance GHC.Read.Read Distribution.Types.ModuleReexport.ModuleReexport
+ Distribution.Types.ModuleReexport: instance GHC.Show.Show Distribution.Types.ModuleReexport.ModuleReexport
+ Distribution.Types.ModuleRenaming: DefaultRenaming :: ModuleRenaming
+ Distribution.Types.ModuleRenaming: HidingRenaming :: [ModuleName] -> ModuleRenaming
+ Distribution.Types.ModuleRenaming: ModuleRenaming :: [(ModuleName, ModuleName)] -> ModuleRenaming
+ Distribution.Types.ModuleRenaming: data ModuleRenaming
+ Distribution.Types.ModuleRenaming: defaultRenaming :: ModuleRenaming
+ Distribution.Types.ModuleRenaming: instance Data.Binary.Class.Binary Distribution.Types.ModuleRenaming.ModuleRenaming
+ Distribution.Types.ModuleRenaming: instance Data.Data.Data Distribution.Types.ModuleRenaming.ModuleRenaming
+ Distribution.Types.ModuleRenaming: instance Distribution.Text.Text Distribution.Types.ModuleRenaming.ModuleRenaming
+ Distribution.Types.ModuleRenaming: instance GHC.Classes.Eq Distribution.Types.ModuleRenaming.ModuleRenaming
+ Distribution.Types.ModuleRenaming: instance GHC.Classes.Ord Distribution.Types.ModuleRenaming.ModuleRenaming
+ Distribution.Types.ModuleRenaming: instance GHC.Generics.Generic Distribution.Types.ModuleRenaming.ModuleRenaming
+ Distribution.Types.ModuleRenaming: instance GHC.Read.Read Distribution.Types.ModuleRenaming.ModuleRenaming
+ Distribution.Types.ModuleRenaming: instance GHC.Show.Show Distribution.Types.ModuleRenaming.ModuleRenaming
+ Distribution.Types.ModuleRenaming: isDefaultRenaming :: ModuleRenaming -> Bool
+ Distribution.Types.MungedPackageId: MungedPackageId :: MungedPackageName -> Version -> MungedPackageId
+ Distribution.Types.MungedPackageId: [mungedName] :: MungedPackageId -> MungedPackageName
+ Distribution.Types.MungedPackageId: [mungedVersion] :: MungedPackageId -> Version
+ Distribution.Types.MungedPackageId: computeCompatPackageId :: PackageId -> Maybe UnqualComponentName -> MungedPackageId
+ Distribution.Types.MungedPackageId: data MungedPackageId
+ Distribution.Types.MungedPackageId: instance Control.DeepSeq.NFData Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Types.MungedPackageId: instance Data.Binary.Class.Binary Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Types.MungedPackageId: instance Data.Data.Data Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Types.MungedPackageId: instance Distribution.Text.Text Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Types.MungedPackageId: instance GHC.Classes.Eq Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Types.MungedPackageId: instance GHC.Classes.Ord Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Types.MungedPackageId: instance GHC.Generics.Generic Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Types.MungedPackageId: instance GHC.Read.Read Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Types.MungedPackageId: instance GHC.Show.Show Distribution.Types.MungedPackageId.MungedPackageId
+ Distribution.Types.MungedPackageName: computeCompatPackageName :: PackageName -> Maybe UnqualComponentName -> MungedPackageName
+ Distribution.Types.MungedPackageName: data MungedPackageName
+ Distribution.Types.MungedPackageName: decodeCompatPackageName :: MungedPackageName -> (PackageName, Maybe UnqualComponentName)
+ Distribution.Types.MungedPackageName: instance Control.DeepSeq.NFData Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: instance Data.Binary.Class.Binary Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: instance Data.Data.Data Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: instance Data.String.IsString Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: instance Distribution.Text.Text Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: instance GHC.Classes.Eq Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: instance GHC.Classes.Ord Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: instance GHC.Generics.Generic Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: instance GHC.Read.Read Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: instance GHC.Show.Show Distribution.Types.MungedPackageName.MungedPackageName
+ Distribution.Types.MungedPackageName: mkMungedPackageName :: String -> MungedPackageName
+ Distribution.Types.MungedPackageName: unMungedPackageName :: MungedPackageName -> String
+ Distribution.Types.PackageDescription: PackageDescription :: PackageIdentifier -> License -> [FilePath] -> String -> String -> String -> String -> [(CompilerFlavor, VersionRange)] -> String -> String -> String -> [SourceRepo] -> String -> String -> String -> [(String, String)] -> [Dependency] -> Either Version VersionRange -> Maybe BuildType -> Maybe SetupBuildInfo -> Maybe Library -> [Library] -> [Executable] -> [ForeignLib] -> [TestSuite] -> [Benchmark] -> [FilePath] -> FilePath -> [FilePath] -> [FilePath] -> [FilePath] -> PackageDescription
+ Distribution.Types.PackageDescription: [author] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [benchmarks] :: PackageDescription -> [Benchmark]
+ Distribution.Types.PackageDescription: [bugReports] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [buildDepends] :: PackageDescription -> [Dependency]
+ Distribution.Types.PackageDescription: [buildType] :: PackageDescription -> Maybe BuildType
+ Distribution.Types.PackageDescription: [category] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [copyright] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [customFieldsPD] :: PackageDescription -> [(String, String)]
+ Distribution.Types.PackageDescription: [dataDir] :: PackageDescription -> FilePath
+ Distribution.Types.PackageDescription: [dataFiles] :: PackageDescription -> [FilePath]
+ Distribution.Types.PackageDescription: [description] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [executables] :: PackageDescription -> [Executable]
+ Distribution.Types.PackageDescription: [extraDocFiles] :: PackageDescription -> [FilePath]
+ Distribution.Types.PackageDescription: [extraSrcFiles] :: PackageDescription -> [FilePath]
+ Distribution.Types.PackageDescription: [extraTmpFiles] :: PackageDescription -> [FilePath]
+ Distribution.Types.PackageDescription: [foreignLibs] :: PackageDescription -> [ForeignLib]
+ Distribution.Types.PackageDescription: [homepage] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [library] :: PackageDescription -> Maybe Library
+ Distribution.Types.PackageDescription: [licenseFiles] :: PackageDescription -> [FilePath]
+ Distribution.Types.PackageDescription: [license] :: PackageDescription -> License
+ Distribution.Types.PackageDescription: [maintainer] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [package] :: PackageDescription -> PackageIdentifier
+ Distribution.Types.PackageDescription: [pkgUrl] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [setupBuildInfo] :: PackageDescription -> Maybe SetupBuildInfo
+ Distribution.Types.PackageDescription: [sourceRepos] :: PackageDescription -> [SourceRepo]
+ Distribution.Types.PackageDescription: [specVersionRaw] :: PackageDescription -> Either Version VersionRange
+ Distribution.Types.PackageDescription: [stability] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [subLibraries] :: PackageDescription -> [Library]
+ Distribution.Types.PackageDescription: [synopsis] :: PackageDescription -> String
+ Distribution.Types.PackageDescription: [testSuites] :: PackageDescription -> [TestSuite]
+ Distribution.Types.PackageDescription: [testedWith] :: PackageDescription -> [(CompilerFlavor, VersionRange)]
+ Distribution.Types.PackageDescription: allBuildInfo :: PackageDescription -> [BuildInfo]
+ Distribution.Types.PackageDescription: allLibraries :: PackageDescription -> [Library]
+ Distribution.Types.PackageDescription: data PackageDescription
+ Distribution.Types.PackageDescription: descCabalVersion :: PackageDescription -> VersionRange
+ Distribution.Types.PackageDescription: emptyPackageDescription :: PackageDescription
+ Distribution.Types.PackageDescription: enabledBuildInfos :: PackageDescription -> ComponentRequestedSpec -> [BuildInfo]
+ Distribution.Types.PackageDescription: enabledComponents :: PackageDescription -> ComponentRequestedSpec -> [Component]
+ Distribution.Types.PackageDescription: getComponent :: PackageDescription -> ComponentName -> Component
+ Distribution.Types.PackageDescription: hasBenchmarks :: PackageDescription -> Bool
+ Distribution.Types.PackageDescription: hasExes :: PackageDescription -> Bool
+ Distribution.Types.PackageDescription: hasForeignLibs :: PackageDescription -> Bool
+ Distribution.Types.PackageDescription: hasLibs :: PackageDescription -> Bool
+ Distribution.Types.PackageDescription: hasPublicLib :: PackageDescription -> Bool
+ Distribution.Types.PackageDescription: hasTests :: PackageDescription -> Bool
+ Distribution.Types.PackageDescription: instance Data.Binary.Class.Binary Distribution.Types.PackageDescription.PackageDescription
+ Distribution.Types.PackageDescription: instance Data.Data.Data Distribution.Types.PackageDescription.PackageDescription
+ Distribution.Types.PackageDescription: instance Distribution.Package.Package Distribution.Types.PackageDescription.PackageDescription
+ Distribution.Types.PackageDescription: instance GHC.Classes.Eq Distribution.Types.PackageDescription.PackageDescription
+ Distribution.Types.PackageDescription: instance GHC.Generics.Generic Distribution.Types.PackageDescription.PackageDescription
+ Distribution.Types.PackageDescription: instance GHC.Read.Read Distribution.Types.PackageDescription.PackageDescription
+ Distribution.Types.PackageDescription: instance GHC.Show.Show Distribution.Types.PackageDescription.PackageDescription
+ Distribution.Types.PackageDescription: lookupComponent :: PackageDescription -> ComponentName -> Maybe Component
+ Distribution.Types.PackageDescription: pkgBuildableComponents :: PackageDescription -> [Component]
+ Distribution.Types.PackageDescription: pkgComponents :: PackageDescription -> [Component]
+ Distribution.Types.PackageDescription: specVersion :: PackageDescription -> Version
+ Distribution.Types.PackageDescription: updatePackageDescription :: HookedBuildInfo -> PackageDescription -> PackageDescription
+ Distribution.Types.PackageDescription: withBenchmark :: PackageDescription -> (Benchmark -> IO ()) -> IO ()
+ Distribution.Types.PackageDescription: withExe :: PackageDescription -> (Executable -> IO ()) -> IO ()
+ Distribution.Types.PackageDescription: withForeignLib :: PackageDescription -> (ForeignLib -> IO ()) -> IO ()
+ Distribution.Types.PackageDescription: withLib :: PackageDescription -> (Library -> IO ()) -> IO ()
+ Distribution.Types.PackageDescription: withTest :: PackageDescription -> (TestSuite -> IO ()) -> IO ()
+ Distribution.Types.PackageId: PackageIdentifier :: PackageName -> Version -> PackageIdentifier
+ Distribution.Types.PackageId: [pkgName] :: PackageIdentifier -> PackageName
+ Distribution.Types.PackageId: [pkgVersion] :: PackageIdentifier -> Version
+ Distribution.Types.PackageId: data PackageIdentifier
+ Distribution.Types.PackageId: instance Control.DeepSeq.NFData Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Types.PackageId: instance Data.Binary.Class.Binary Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Types.PackageId: instance Data.Data.Data Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Types.PackageId: instance Distribution.Text.Text Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Types.PackageId: instance GHC.Classes.Eq Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Types.PackageId: instance GHC.Classes.Ord Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Types.PackageId: instance GHC.Generics.Generic Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Types.PackageId: instance GHC.Read.Read Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Types.PackageId: instance GHC.Show.Show Distribution.Types.PackageId.PackageIdentifier
+ Distribution.Types.PackageId: type PackageId = PackageIdentifier
+ Distribution.Types.PackageName: data PackageName
+ Distribution.Types.PackageName: instance Control.DeepSeq.NFData Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: instance Data.Binary.Class.Binary Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: instance Data.Data.Data Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: instance Data.String.IsString Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: instance Distribution.Text.Text Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: instance GHC.Classes.Eq Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: instance GHC.Classes.Ord Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: instance GHC.Generics.Generic Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: instance GHC.Read.Read Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: instance GHC.Show.Show Distribution.Types.PackageName.PackageName
+ Distribution.Types.PackageName: mkPackageName :: String -> PackageName
+ Distribution.Types.PackageName: unPackageName :: PackageName -> String
+ Distribution.Types.PkgconfigDependency: PkgconfigDependency :: PkgconfigName -> VersionRange -> PkgconfigDependency
+ Distribution.Types.PkgconfigDependency: data PkgconfigDependency
+ Distribution.Types.PkgconfigDependency: instance Control.DeepSeq.NFData Distribution.Types.PkgconfigDependency.PkgconfigDependency
+ Distribution.Types.PkgconfigDependency: instance Data.Binary.Class.Binary Distribution.Types.PkgconfigDependency.PkgconfigDependency
+ Distribution.Types.PkgconfigDependency: instance Data.Data.Data Distribution.Types.PkgconfigDependency.PkgconfigDependency
+ Distribution.Types.PkgconfigDependency: instance Distribution.Text.Text Distribution.Types.PkgconfigDependency.PkgconfigDependency
+ Distribution.Types.PkgconfigDependency: instance GHC.Classes.Eq Distribution.Types.PkgconfigDependency.PkgconfigDependency
+ Distribution.Types.PkgconfigDependency: instance GHC.Generics.Generic Distribution.Types.PkgconfigDependency.PkgconfigDependency
+ Distribution.Types.PkgconfigDependency: instance GHC.Read.Read Distribution.Types.PkgconfigDependency.PkgconfigDependency
+ Distribution.Types.PkgconfigDependency: instance GHC.Show.Show Distribution.Types.PkgconfigDependency.PkgconfigDependency
+ Distribution.Types.PkgconfigName: data PkgconfigName
+ Distribution.Types.PkgconfigName: instance Control.DeepSeq.NFData Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: instance Data.Binary.Class.Binary Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: instance Data.Data.Data Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: instance Data.String.IsString Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: instance Distribution.Text.Text Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: instance GHC.Classes.Eq Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: instance GHC.Classes.Ord Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: instance GHC.Generics.Generic Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: instance GHC.Read.Read Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: instance GHC.Show.Show Distribution.Types.PkgconfigName.PkgconfigName
+ Distribution.Types.PkgconfigName: mkPkgconfigName :: String -> PkgconfigName
+ Distribution.Types.PkgconfigName: unPkgconfigName :: PkgconfigName -> String
+ Distribution.Types.SetupBuildInfo: SetupBuildInfo :: [Dependency] -> Bool -> SetupBuildInfo
+ Distribution.Types.SetupBuildInfo: [defaultSetupDepends] :: SetupBuildInfo -> Bool
+ Distribution.Types.SetupBuildInfo: [setupDepends] :: SetupBuildInfo -> [Dependency]
+ Distribution.Types.SetupBuildInfo: data SetupBuildInfo
+ Distribution.Types.SetupBuildInfo: instance Data.Binary.Class.Binary Distribution.Types.SetupBuildInfo.SetupBuildInfo
+ Distribution.Types.SetupBuildInfo: instance Data.Data.Data Distribution.Types.SetupBuildInfo.SetupBuildInfo
+ Distribution.Types.SetupBuildInfo: instance Data.Semigroup.Semigroup Distribution.Types.SetupBuildInfo.SetupBuildInfo
+ Distribution.Types.SetupBuildInfo: instance GHC.Base.Monoid Distribution.Types.SetupBuildInfo.SetupBuildInfo
+ Distribution.Types.SetupBuildInfo: instance GHC.Classes.Eq Distribution.Types.SetupBuildInfo.SetupBuildInfo
+ Distribution.Types.SetupBuildInfo: instance GHC.Generics.Generic Distribution.Types.SetupBuildInfo.SetupBuildInfo
+ Distribution.Types.SetupBuildInfo: instance GHC.Read.Read Distribution.Types.SetupBuildInfo.SetupBuildInfo
+ Distribution.Types.SetupBuildInfo: instance GHC.Show.Show Distribution.Types.SetupBuildInfo.SetupBuildInfo
+ Distribution.Types.SourceRepo: Bazaar :: RepoType
+ Distribution.Types.SourceRepo: CVS :: RepoType
+ Distribution.Types.SourceRepo: Darcs :: RepoType
+ Distribution.Types.SourceRepo: Git :: RepoType
+ Distribution.Types.SourceRepo: GnuArch :: RepoType
+ Distribution.Types.SourceRepo: Mercurial :: RepoType
+ Distribution.Types.SourceRepo: Monotone :: RepoType
+ Distribution.Types.SourceRepo: OtherRepoType :: String -> RepoType
+ Distribution.Types.SourceRepo: RepoHead :: RepoKind
+ Distribution.Types.SourceRepo: RepoKindUnknown :: String -> RepoKind
+ Distribution.Types.SourceRepo: RepoThis :: RepoKind
+ Distribution.Types.SourceRepo: SVN :: RepoType
+ Distribution.Types.SourceRepo: SourceRepo :: RepoKind -> Maybe RepoType -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe FilePath -> SourceRepo
+ Distribution.Types.SourceRepo: [repoBranch] :: SourceRepo -> Maybe String
+ Distribution.Types.SourceRepo: [repoKind] :: SourceRepo -> RepoKind
+ Distribution.Types.SourceRepo: [repoLocation] :: SourceRepo -> Maybe String
+ Distribution.Types.SourceRepo: [repoModule] :: SourceRepo -> Maybe String
+ Distribution.Types.SourceRepo: [repoSubdir] :: SourceRepo -> Maybe FilePath
+ Distribution.Types.SourceRepo: [repoTag] :: SourceRepo -> Maybe String
+ Distribution.Types.SourceRepo: [repoType] :: SourceRepo -> Maybe RepoType
+ Distribution.Types.SourceRepo: classifyRepoKind :: String -> RepoKind
+ Distribution.Types.SourceRepo: classifyRepoType :: String -> RepoType
+ Distribution.Types.SourceRepo: data RepoKind
+ Distribution.Types.SourceRepo: data RepoType
+ Distribution.Types.SourceRepo: data SourceRepo
+ Distribution.Types.SourceRepo: emptySourceRepo :: RepoKind -> SourceRepo
+ Distribution.Types.SourceRepo: instance Data.Binary.Class.Binary Distribution.Types.SourceRepo.RepoKind
+ Distribution.Types.SourceRepo: instance Data.Binary.Class.Binary Distribution.Types.SourceRepo.RepoType
+ Distribution.Types.SourceRepo: instance Data.Binary.Class.Binary Distribution.Types.SourceRepo.SourceRepo
+ Distribution.Types.SourceRepo: instance Data.Data.Data Distribution.Types.SourceRepo.RepoKind
+ Distribution.Types.SourceRepo: instance Data.Data.Data Distribution.Types.SourceRepo.RepoType
+ Distribution.Types.SourceRepo: instance Data.Data.Data Distribution.Types.SourceRepo.SourceRepo
+ Distribution.Types.SourceRepo: instance Distribution.Text.Text Distribution.Types.SourceRepo.RepoKind
+ Distribution.Types.SourceRepo: instance Distribution.Text.Text Distribution.Types.SourceRepo.RepoType
+ Distribution.Types.SourceRepo: instance GHC.Classes.Eq Distribution.Types.SourceRepo.RepoKind
+ Distribution.Types.SourceRepo: instance GHC.Classes.Eq Distribution.Types.SourceRepo.RepoType
+ Distribution.Types.SourceRepo: instance GHC.Classes.Eq Distribution.Types.SourceRepo.SourceRepo
+ Distribution.Types.SourceRepo: instance GHC.Classes.Ord Distribution.Types.SourceRepo.RepoKind
+ Distribution.Types.SourceRepo: instance GHC.Classes.Ord Distribution.Types.SourceRepo.RepoType
+ Distribution.Types.SourceRepo: instance GHC.Generics.Generic Distribution.Types.SourceRepo.RepoKind
+ Distribution.Types.SourceRepo: instance GHC.Generics.Generic Distribution.Types.SourceRepo.RepoType
+ Distribution.Types.SourceRepo: instance GHC.Generics.Generic Distribution.Types.SourceRepo.SourceRepo
+ Distribution.Types.SourceRepo: instance GHC.Read.Read Distribution.Types.SourceRepo.RepoKind
+ Distribution.Types.SourceRepo: instance GHC.Read.Read Distribution.Types.SourceRepo.RepoType
+ Distribution.Types.SourceRepo: instance GHC.Read.Read Distribution.Types.SourceRepo.SourceRepo
+ Distribution.Types.SourceRepo: instance GHC.Show.Show Distribution.Types.SourceRepo.RepoKind
+ Distribution.Types.SourceRepo: instance GHC.Show.Show Distribution.Types.SourceRepo.RepoType
+ Distribution.Types.SourceRepo: instance GHC.Show.Show Distribution.Types.SourceRepo.SourceRepo
+ Distribution.Types.SourceRepo: knownRepoTypes :: [RepoType]
+ Distribution.Types.TargetInfo: TargetInfo :: ComponentLocalBuildInfo -> Component -> TargetInfo
+ Distribution.Types.TargetInfo: [targetCLBI] :: TargetInfo -> ComponentLocalBuildInfo
+ Distribution.Types.TargetInfo: [targetComponent] :: TargetInfo -> Component
+ Distribution.Types.TargetInfo: data TargetInfo
+ Distribution.Types.TargetInfo: instance Distribution.Compat.Graph.IsNode Distribution.Types.TargetInfo.TargetInfo
+ Distribution.Types.TestSuite: TestSuite :: UnqualComponentName -> TestSuiteInterface -> BuildInfo -> TestSuite
+ Distribution.Types.TestSuite: [testBuildInfo] :: TestSuite -> BuildInfo
+ Distribution.Types.TestSuite: [testInterface] :: TestSuite -> TestSuiteInterface
+ Distribution.Types.TestSuite: [testName] :: TestSuite -> UnqualComponentName
+ Distribution.Types.TestSuite: data TestSuite
+ Distribution.Types.TestSuite: emptyTestSuite :: TestSuite
+ Distribution.Types.TestSuite: instance Data.Binary.Class.Binary Distribution.Types.TestSuite.TestSuite
+ Distribution.Types.TestSuite: instance Data.Data.Data Distribution.Types.TestSuite.TestSuite
+ Distribution.Types.TestSuite: instance Data.Semigroup.Semigroup Distribution.Types.TestSuite.TestSuite
+ Distribution.Types.TestSuite: instance GHC.Base.Monoid Distribution.Types.TestSuite.TestSuite
+ Distribution.Types.TestSuite: instance GHC.Classes.Eq Distribution.Types.TestSuite.TestSuite
+ Distribution.Types.TestSuite: instance GHC.Generics.Generic Distribution.Types.TestSuite.TestSuite
+ Distribution.Types.TestSuite: instance GHC.Read.Read Distribution.Types.TestSuite.TestSuite
+ Distribution.Types.TestSuite: instance GHC.Show.Show Distribution.Types.TestSuite.TestSuite
+ Distribution.Types.TestSuite: testModules :: TestSuite -> [ModuleName]
+ Distribution.Types.TestSuite: testModulesAutogen :: TestSuite -> [ModuleName]
+ Distribution.Types.TestSuite: testType :: TestSuite -> TestType
+ Distribution.Types.TestSuiteInterface: TestSuiteExeV10 :: Version -> FilePath -> TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: TestSuiteLibV09 :: Version -> ModuleName -> TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: TestSuiteUnsupported :: TestType -> TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: data TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: instance Data.Binary.Class.Binary Distribution.Types.TestSuiteInterface.TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: instance Data.Data.Data Distribution.Types.TestSuiteInterface.TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: instance Data.Semigroup.Semigroup Distribution.Types.TestSuiteInterface.TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: instance GHC.Base.Monoid Distribution.Types.TestSuiteInterface.TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: instance GHC.Classes.Eq Distribution.Types.TestSuiteInterface.TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: instance GHC.Generics.Generic Distribution.Types.TestSuiteInterface.TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: instance GHC.Read.Read Distribution.Types.TestSuiteInterface.TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: instance GHC.Show.Show Distribution.Types.TestSuiteInterface.TestSuiteInterface
+ Distribution.Types.TestType: TestTypeExe :: Version -> TestType
+ Distribution.Types.TestType: TestTypeLib :: Version -> TestType
+ Distribution.Types.TestType: TestTypeUnknown :: String -> Version -> TestType
+ Distribution.Types.TestType: data TestType
+ Distribution.Types.TestType: instance Data.Binary.Class.Binary Distribution.Types.TestType.TestType
+ Distribution.Types.TestType: instance Data.Data.Data Distribution.Types.TestType.TestType
+ Distribution.Types.TestType: instance Distribution.Text.Text Distribution.Types.TestType.TestType
+ Distribution.Types.TestType: instance GHC.Classes.Eq Distribution.Types.TestType.TestType
+ Distribution.Types.TestType: instance GHC.Generics.Generic Distribution.Types.TestType.TestType
+ Distribution.Types.TestType: instance GHC.Read.Read Distribution.Types.TestType.TestType
+ Distribution.Types.TestType: instance GHC.Show.Show Distribution.Types.TestType.TestType
+ Distribution.Types.TestType: knownTestTypes :: [TestType]
+ Distribution.Types.UnitId: data DefUnitId
+ Distribution.Types.UnitId: data UnitId
+ Distribution.Types.UnitId: getHSLibraryName :: UnitId -> String
+ Distribution.Types.UnitId: instance Control.DeepSeq.NFData Distribution.Types.UnitId.DefUnitId
+ Distribution.Types.UnitId: instance Control.DeepSeq.NFData Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: instance Data.Binary.Class.Binary Distribution.Types.UnitId.DefUnitId
+ Distribution.Types.UnitId: instance Data.Binary.Class.Binary Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: instance Data.Data.Data Distribution.Types.UnitId.DefUnitId
+ Distribution.Types.UnitId: instance Data.Data.Data Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: instance Data.String.IsString Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: instance Distribution.Text.Text Distribution.Types.UnitId.DefUnitId
+ Distribution.Types.UnitId: instance Distribution.Text.Text Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: instance GHC.Classes.Eq Distribution.Types.UnitId.DefUnitId
+ Distribution.Types.UnitId: instance GHC.Classes.Eq Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: instance GHC.Classes.Ord Distribution.Types.UnitId.DefUnitId
+ Distribution.Types.UnitId: instance GHC.Classes.Ord Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: instance GHC.Generics.Generic Distribution.Types.UnitId.DefUnitId
+ Distribution.Types.UnitId: instance GHC.Generics.Generic Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: instance GHC.Read.Read Distribution.Types.UnitId.DefUnitId
+ Distribution.Types.UnitId: instance GHC.Read.Read Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: instance GHC.Show.Show Distribution.Types.UnitId.DefUnitId
+ Distribution.Types.UnitId: instance GHC.Show.Show Distribution.Types.UnitId.UnitId
+ Distribution.Types.UnitId: mkLegacyUnitId :: PackageId -> UnitId
+ Distribution.Types.UnitId: mkUnitId :: String -> UnitId
+ Distribution.Types.UnitId: newSimpleUnitId :: ComponentId -> UnitId
+ Distribution.Types.UnitId: type InstalledPackageId = UnitId
+ Distribution.Types.UnitId: unDefUnitId :: DefUnitId -> UnitId
+ Distribution.Types.UnitId: unUnitId :: UnitId -> String
+ Distribution.Types.UnitId: unsafeMkDefUnitId :: UnitId -> DefUnitId
+ Distribution.Types.UnqualComponentName: data UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance Control.DeepSeq.NFData Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance Data.Binary.Class.Binary Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance Data.Data.Data Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance Data.Semigroup.Semigroup Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance Data.String.IsString Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance Distribution.Text.Text Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance GHC.Base.Monoid Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance GHC.Classes.Eq Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance GHC.Classes.Ord Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance GHC.Generics.Generic Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance GHC.Read.Read Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: instance GHC.Show.Show Distribution.Types.UnqualComponentName.UnqualComponentName
+ Distribution.Types.UnqualComponentName: mkUnqualComponentName :: String -> UnqualComponentName
+ Distribution.Types.UnqualComponentName: packageNameToUnqualComponentName :: PackageName -> UnqualComponentName
+ Distribution.Types.UnqualComponentName: unUnqualComponentName :: UnqualComponentName -> String
+ Distribution.Types.UnqualComponentName: unqualComponentNameToPackageName :: UnqualComponentName -> PackageName
+ Distribution.Utils.Generic: comparing :: Ord a => (b -> a) -> b -> b -> Ordering
+ Distribution.Utils.Generic: dropWhileEndLE :: (a -> Bool) -> [a] -> [a]
+ Distribution.Utils.Generic: equating :: Eq a => (b -> a) -> b -> b -> Bool
+ Distribution.Utils.Generic: fileHasBOM :: FilePath -> NoCallStackIO Bool
+ Distribution.Utils.Generic: fromUTF8 :: String -> String
+ Distribution.Utils.Generic: fromUTF8BS :: ByteString -> String
+ Distribution.Utils.Generic: fromUTF8LBS :: ByteString -> String
+ Distribution.Utils.Generic: ignoreBOM :: String -> String
+ Distribution.Utils.Generic: intercalate :: () => [a] -> [[a]] -> [a]
+ Distribution.Utils.Generic: isAbsoluteOnAnyPlatform :: FilePath -> Bool
+ Distribution.Utils.Generic: isInfixOf :: Eq a => [a] -> [a] -> Bool
+ Distribution.Utils.Generic: isRelativeOnAnyPlatform :: FilePath -> Bool
+ Distribution.Utils.Generic: listUnion :: (Ord a) => [a] -> [a] -> [a]
+ Distribution.Utils.Generic: listUnionRight :: (Ord a) => [a] -> [a] -> [a]
+ Distribution.Utils.Generic: lowercase :: String -> String
+ Distribution.Utils.Generic: normaliseLineEndings :: String -> String
+ Distribution.Utils.Generic: ordNub :: Ord a => [a] -> [a]
+ Distribution.Utils.Generic: ordNubBy :: Ord b => (a -> b) -> [a] -> [a]
+ Distribution.Utils.Generic: ordNubRight :: (Ord a) => [a] -> [a]
+ Distribution.Utils.Generic: readUTF8File :: FilePath -> NoCallStackIO String
+ Distribution.Utils.Generic: safeTail :: [a] -> [a]
+ Distribution.Utils.Generic: startsWithBOM :: String -> Bool
+ Distribution.Utils.Generic: takeWhileEndLE :: (a -> Bool) -> [a] -> [a]
+ Distribution.Utils.Generic: toUTF8 :: String -> String
+ Distribution.Utils.Generic: unintersperse :: Char -> String -> [String]
+ Distribution.Utils.Generic: withFileContents :: FilePath -> (String -> NoCallStackIO a) -> NoCallStackIO a
+ Distribution.Utils.Generic: withUTF8FileContents :: FilePath -> (String -> IO a) -> IO a
+ Distribution.Utils.Generic: wrapLine :: Int -> [String] -> [[String]]
+ Distribution.Utils.Generic: wrapText :: String -> String
+ Distribution.Utils.Generic: writeFileAtomic :: FilePath -> ByteString -> NoCallStackIO ()
+ Distribution.Utils.Generic: writeUTF8File :: FilePath -> String -> NoCallStackIO ()
+ Distribution.Utils.LogProgress: addProgressCtx :: CtxMsg -> LogProgress a -> LogProgress a
+ Distribution.Utils.LogProgress: data LogProgress a
+ Distribution.Utils.LogProgress: dieProgress :: Doc -> LogProgress a
+ Distribution.Utils.LogProgress: infoProgress :: Doc -> LogProgress ()
+ Distribution.Utils.LogProgress: instance GHC.Base.Applicative Distribution.Utils.LogProgress.LogProgress
+ Distribution.Utils.LogProgress: instance GHC.Base.Functor Distribution.Utils.LogProgress.LogProgress
+ Distribution.Utils.LogProgress: instance GHC.Base.Monad Distribution.Utils.LogProgress.LogProgress
+ Distribution.Utils.LogProgress: runLogProgress :: Verbosity -> LogProgress a -> NoCallStackIO a
+ Distribution.Utils.LogProgress: warnProgress :: Doc -> LogProgress ()
+ Distribution.Utils.MapAccum: instance GHC.Base.Functor m => GHC.Base.Functor (Distribution.Utils.MapAccum.StateM s m)
+ Distribution.Utils.MapAccum: instance GHC.Base.Monad m => GHC.Base.Applicative (Distribution.Utils.MapAccum.StateM s m)
+ Distribution.Utils.MapAccum: mapAccumM :: (Monad m, Traversable t) => (a -> b -> m (a, c)) -> a -> t b -> m (a, t c)
+ Distribution.Utils.Progress: data Progress step fail done
+ Distribution.Utils.Progress: failProgress :: fail -> Progress step fail done
+ Distribution.Utils.Progress: foldProgress :: (step -> a -> a) -> (fail -> a) -> (done -> a) -> Progress step fail done -> a
+ Distribution.Utils.Progress: instance GHC.Base.Applicative (Distribution.Utils.Progress.Progress step fail)
+ Distribution.Utils.Progress: instance GHC.Base.Functor (Distribution.Utils.Progress.Progress step fail)
+ Distribution.Utils.Progress: instance GHC.Base.Monad (Distribution.Utils.Progress.Progress step fail)
+ Distribution.Utils.Progress: instance GHC.Base.Monoid fail => GHC.Base.Alternative (Distribution.Utils.Progress.Progress step fail)
+ Distribution.Utils.Progress: stepProgress :: step -> Progress step fail ()
+ Distribution.Utils.ShortText: data ShortText
+ Distribution.Utils.ShortText: decodeStringUtf8 :: [Word8] -> String
+ Distribution.Utils.ShortText: encodeStringUtf8 :: String -> [Word8]
+ Distribution.Utils.ShortText: fromShortText :: ShortText -> String
+ Distribution.Utils.ShortText: instance Control.DeepSeq.NFData Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance Data.Binary.Class.Binary Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance Data.Data.Data Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance Data.Semigroup.Semigroup Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance Data.String.IsString Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance GHC.Base.Monoid Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance GHC.Classes.Eq Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance GHC.Classes.Ord Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance GHC.Generics.Generic Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance GHC.Read.Read Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: instance GHC.Show.Show Distribution.Utils.ShortText.ShortText
+ Distribution.Utils.ShortText: toShortText :: String -> ShortText
+ Distribution.Verbosity: instance Data.Binary.Class.Binary Distribution.Verbosity.VerbosityFlag
+ Distribution.Verbosity: instance Data.Binary.Class.Binary Distribution.Verbosity.VerbosityLevel
+ Distribution.Verbosity: instance GHC.Classes.Eq Distribution.Verbosity.VerbosityFlag
+ Distribution.Verbosity: instance GHC.Classes.Eq Distribution.Verbosity.VerbosityLevel
+ Distribution.Verbosity: instance GHC.Classes.Ord Distribution.Verbosity.VerbosityFlag
+ Distribution.Verbosity: instance GHC.Classes.Ord Distribution.Verbosity.VerbosityLevel
+ Distribution.Verbosity: instance GHC.Enum.Bounded Distribution.Verbosity.VerbosityFlag
+ Distribution.Verbosity: instance GHC.Enum.Bounded Distribution.Verbosity.VerbosityLevel
+ Distribution.Verbosity: instance GHC.Enum.Enum Distribution.Verbosity.VerbosityFlag
+ Distribution.Verbosity: instance GHC.Enum.Enum Distribution.Verbosity.VerbosityLevel
+ Distribution.Verbosity: instance GHC.Generics.Generic Distribution.Verbosity.VerbosityFlag
+ Distribution.Verbosity: instance GHC.Generics.Generic Distribution.Verbosity.VerbosityLevel
+ Distribution.Verbosity: instance GHC.Read.Read Distribution.Verbosity.VerbosityFlag
+ Distribution.Verbosity: instance GHC.Read.Read Distribution.Verbosity.VerbosityLevel
+ Distribution.Verbosity: instance GHC.Show.Show Distribution.Verbosity.VerbosityFlag
+ Distribution.Verbosity: instance GHC.Show.Show Distribution.Verbosity.VerbosityLevel
+ Distribution.Verbosity: isVerboseCallSite :: Verbosity -> Bool
+ Distribution.Verbosity: isVerboseCallStack :: Verbosity -> Bool
+ Distribution.Verbosity: isVerboseMarkOutput :: Verbosity -> Bool
+ Distribution.Verbosity: isVerboseNoWrap :: Verbosity -> Bool
+ Distribution.Verbosity: isVerboseQuiet :: Verbosity -> Bool
+ Distribution.Verbosity: verboseCallSite :: Verbosity -> Verbosity
+ Distribution.Verbosity: verboseCallStack :: Verbosity -> Verbosity
+ Distribution.Verbosity: verboseHasFlags :: Verbosity -> Bool
+ Distribution.Verbosity: verboseMarkOutput :: Verbosity -> Verbosity
+ Distribution.Verbosity: verboseNoFlags :: Verbosity -> Verbosity
+ Distribution.Verbosity: verboseNoWrap :: Verbosity -> Verbosity
+ Distribution.Verbosity: verboseUnmarkOutput :: Verbosity -> Verbosity
+ Distribution.Version: MajorBoundVersion :: Version -> VersionRange
+ Distribution.Version: alterVersion :: ([Int] -> [Int]) -> Version -> Version
+ Distribution.Version: instance Control.DeepSeq.NFData Distribution.Version.Version
+ Distribution.Version: instance Control.DeepSeq.NFData Distribution.Version.VersionRange
+ Distribution.Version: instance Data.Binary.Class.Binary Distribution.Version.Version
+ Distribution.Version: instance Data.Data.Data Distribution.Version.Version
+ Distribution.Version: instance Distribution.Text.Text Distribution.Version.Version
+ Distribution.Version: instance GHC.Classes.Eq Distribution.Version.Version
+ Distribution.Version: instance GHC.Classes.Ord Distribution.Version.Version
+ Distribution.Version: instance GHC.Generics.Generic Distribution.Version.Version
+ Distribution.Version: instance GHC.Read.Read Distribution.Version.Version
+ Distribution.Version: instance GHC.Show.Show Distribution.Version.Version
+ Distribution.Version: majorBoundVersion :: Version -> VersionRange
+ Distribution.Version: mkVersion :: [Int] -> Version
+ Distribution.Version: mkVersion' :: Version -> Version
+ Distribution.Version: nullVersion :: Version
+ Distribution.Version: removeLowerBound :: VersionRange -> VersionRange
+ Distribution.Version: showVersion :: Version -> String
+ Distribution.Version: versionNumbers :: Version -> [Int]
+ Language.Haskell.Extension: TypeFamilyDependencies :: KnownExtension
+ Language.Haskell.Extension: classifyExtension :: String -> Extension
+ Language.Haskell.Extension: classifyLanguage :: String -> Language
- Distribution.Compat.Semigroup: newtype All :: *
+ Distribution.Compat.Semigroup: newtype All
- Distribution.Compat.Semigroup: newtype Any :: *
+ Distribution.Compat.Semigroup: newtype Any
- Distribution.InstalledPackageInfo: ExposedModule :: ModuleName -> Maybe OriginalModule -> ExposedModule
+ Distribution.InstalledPackageInfo: ExposedModule :: ModuleName -> Maybe OpenModule -> ExposedModule
- Distribution.InstalledPackageInfo: InstalledPackageInfo :: PackageId -> UnitId -> String -> License -> String -> String -> String -> String -> String -> String -> String -> String -> String -> AbiHash -> Bool -> [ExposedModule] -> [ModuleName] -> Bool -> [FilePath] -> [FilePath] -> [FilePath] -> FilePath -> [String] -> [String] -> [String] -> [FilePath] -> [String] -> [UnitId] -> [String] -> [String] -> [FilePath] -> [String] -> [FilePath] -> [FilePath] -> Maybe FilePath -> InstalledPackageInfo
+ Distribution.InstalledPackageInfo: InstalledPackageInfo :: PackageId -> UnitId -> ComponentId -> [(ModuleName, OpenModule)] -> Maybe UnqualComponentName -> String -> License -> String -> String -> String -> String -> String -> String -> String -> String -> String -> AbiHash -> Bool -> Bool -> [ExposedModule] -> [ModuleName] -> Bool -> [FilePath] -> [FilePath] -> [FilePath] -> FilePath -> [String] -> [String] -> [String] -> [FilePath] -> [String] -> [UnitId] -> [AbiDependency] -> [String] -> [String] -> [FilePath] -> [String] -> [FilePath] -> [FilePath] -> Maybe FilePath -> InstalledPackageInfo
- Distribution.InstalledPackageInfo: [exposedReexport] :: ExposedModule -> Maybe OriginalModule
+ Distribution.InstalledPackageInfo: [exposedReexport] :: ExposedModule -> Maybe OpenModule
- Distribution.Make: data Version :: *
+ Distribution.Make: data Version
- Distribution.ModuleName: fromString :: String -> ModuleName
+ Distribution.ModuleName: fromString :: IsString a => String -> a
- Distribution.PackageDescription: Benchmark :: String -> BenchmarkInterface -> BuildInfo -> Bool -> Benchmark
+ Distribution.PackageDescription: Benchmark :: UnqualComponentName -> BenchmarkInterface -> BuildInfo -> Benchmark
- Distribution.PackageDescription: BuildInfo :: Bool -> [Dependency] -> [String] -> [String] -> [String] -> [Dependency] -> [String] -> [String] -> [FilePath] -> [FilePath] -> [FilePath] -> [ModuleName] -> Maybe Language -> [Language] -> [Extension] -> [Extension] -> [Extension] -> [String] -> [String] -> [String] -> [FilePath] -> [FilePath] -> [FilePath] -> [(CompilerFlavor, [String])] -> [(CompilerFlavor, [String])] -> [(CompilerFlavor, [String])] -> [(String, String)] -> [Dependency] -> Map PackageName ModuleRenaming -> BuildInfo
+ Distribution.PackageDescription: BuildInfo :: Bool -> [LegacyExeDependency] -> [ExeDependency] -> [String] -> [String] -> [String] -> [PkgconfigDependency] -> [String] -> [String] -> [FilePath] -> [FilePath] -> [FilePath] -> [ModuleName] -> [ModuleName] -> Maybe Language -> [Language] -> [Extension] -> [Extension] -> [Extension] -> [String] -> [String] -> [String] -> [FilePath] -> [FilePath] -> [FilePath] -> [(CompilerFlavor, [String])] -> [(CompilerFlavor, [String])] -> [(CompilerFlavor, [String])] -> [(String, String)] -> [Dependency] -> [Mixin] -> BuildInfo
- Distribution.PackageDescription: CondNode :: a -> c -> [(Condition v, CondTree v c a, Maybe (CondTree v c a))] -> CondTree v c a
+ Distribution.PackageDescription: CondNode :: a -> c -> [CondBranch v c a] -> CondTree v c a
- Distribution.PackageDescription: Executable :: String -> FilePath -> BuildInfo -> Executable
+ Distribution.PackageDescription: Executable :: UnqualComponentName -> FilePath -> ExecutableScope -> BuildInfo -> Executable
- Distribution.PackageDescription: GenericPackageDescription :: PackageDescription -> [Flag] -> Maybe (CondTree ConfVar [Dependency] Library) -> [(String, CondTree ConfVar [Dependency] Executable)] -> [(String, CondTree ConfVar [Dependency] TestSuite)] -> [(String, CondTree ConfVar [Dependency] Benchmark)] -> GenericPackageDescription
+ Distribution.PackageDescription: GenericPackageDescription :: PackageDescription -> [Flag] -> Maybe (CondTree ConfVar [Dependency] Library) -> [(UnqualComponentName, CondTree ConfVar [Dependency] Library)] -> [(UnqualComponentName, CondTree ConfVar [Dependency] ForeignLib)] -> [(UnqualComponentName, CondTree ConfVar [Dependency] Executable)] -> [(UnqualComponentName, CondTree ConfVar [Dependency] TestSuite)] -> [(UnqualComponentName, CondTree ConfVar [Dependency] Benchmark)] -> GenericPackageDescription
- Distribution.PackageDescription: Library :: [ModuleName] -> [ModuleReexport] -> [ModuleName] -> [ModuleName] -> Bool -> BuildInfo -> Library
+ Distribution.PackageDescription: Library :: Maybe UnqualComponentName -> [ModuleName] -> [ModuleReexport] -> [ModuleName] -> Bool -> BuildInfo -> Library
- Distribution.PackageDescription: ModuleRenaming :: Bool -> [(ModuleName, ModuleName)] -> ModuleRenaming
+ Distribution.PackageDescription: ModuleRenaming :: [(ModuleName, ModuleName)] -> ModuleRenaming
- Distribution.PackageDescription: PackageDescription :: PackageIdentifier -> License -> [FilePath] -> String -> String -> String -> String -> [(CompilerFlavor, VersionRange)] -> String -> String -> String -> [SourceRepo] -> String -> String -> String -> [(String, String)] -> [Dependency] -> Either Version VersionRange -> Maybe BuildType -> Maybe SetupBuildInfo -> Maybe Library -> [Executable] -> [TestSuite] -> [Benchmark] -> [FilePath] -> FilePath -> [FilePath] -> [FilePath] -> [FilePath] -> PackageDescription
+ Distribution.PackageDescription: PackageDescription :: PackageIdentifier -> License -> [FilePath] -> String -> String -> String -> String -> [(CompilerFlavor, VersionRange)] -> String -> String -> String -> [SourceRepo] -> String -> String -> String -> [(String, String)] -> [Dependency] -> Either Version VersionRange -> Maybe BuildType -> Maybe SetupBuildInfo -> Maybe Library -> [Library] -> [Executable] -> [ForeignLib] -> [TestSuite] -> [Benchmark] -> [FilePath] -> FilePath -> [FilePath] -> [FilePath] -> [FilePath] -> PackageDescription
- Distribution.PackageDescription: TestSuite :: String -> TestSuiteInterface -> BuildInfo -> Bool -> TestSuite
+ Distribution.PackageDescription: TestSuite :: UnqualComponentName -> TestSuiteInterface -> BuildInfo -> TestSuite
- Distribution.PackageDescription: [benchmarkName] :: Benchmark -> String
+ Distribution.PackageDescription: [benchmarkName] :: Benchmark -> UnqualComponentName
- Distribution.PackageDescription: [buildTools] :: BuildInfo -> [Dependency]
+ Distribution.PackageDescription: [buildTools] :: BuildInfo -> [LegacyExeDependency]
- Distribution.PackageDescription: [condBenchmarks] :: GenericPackageDescription -> [(String, CondTree ConfVar [Dependency] Benchmark)]
+ Distribution.PackageDescription: [condBenchmarks] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] Benchmark)]
- Distribution.PackageDescription: [condExecutables] :: GenericPackageDescription -> [(String, CondTree ConfVar [Dependency] Executable)]
+ Distribution.PackageDescription: [condExecutables] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] Executable)]
- Distribution.PackageDescription: [condTestSuites] :: GenericPackageDescription -> [(String, CondTree ConfVar [Dependency] TestSuite)]
+ Distribution.PackageDescription: [condTestSuites] :: GenericPackageDescription -> [(UnqualComponentName, CondTree ConfVar [Dependency] TestSuite)]
- Distribution.PackageDescription: [condTreeComponents] :: CondTree v c a -> [(Condition v, CondTree v c a, Maybe (CondTree v c a))]
+ Distribution.PackageDescription: [condTreeComponents] :: CondTree v c a -> [CondBranch v c a]
- Distribution.PackageDescription: [exeName] :: Executable -> String
+ Distribution.PackageDescription: [exeName] :: Executable -> UnqualComponentName
- Distribution.PackageDescription: [pkgconfigDepends] :: BuildInfo -> [Dependency]
+ Distribution.PackageDescription: [pkgconfigDepends] :: BuildInfo -> [PkgconfigDependency]
- Distribution.PackageDescription: [testName] :: TestSuite -> String
+ Distribution.PackageDescription: [testName] :: TestSuite -> UnqualComponentName
- Distribution.PackageDescription: type HookedBuildInfo = (Maybe BuildInfo, [(String, BuildInfo)])
+ Distribution.PackageDescription: type HookedBuildInfo = (Maybe BuildInfo, [(UnqualComponentName, BuildInfo)])
- Distribution.PackageDescription.Check: checkPackageFiles :: PackageDescription -> FilePath -> IO [PackageCheck]
+ Distribution.PackageDescription.Check: checkPackageFiles :: PackageDescription -> FilePath -> NoCallStackIO [PackageCheck]
- Distribution.PackageDescription.PrettyPrint: writeGenericPackageDescription :: FilePath -> GenericPackageDescription -> IO ()
+ Distribution.PackageDescription.PrettyPrint: writeGenericPackageDescription :: FilePath -> GenericPackageDescription -> NoCallStackIO ()
- Distribution.Simple: UserHooks :: (Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO ()) -> IO (Maybe GenericPackageDescription) -> [PPSuffixHandler] -> [Program] -> (Args -> ConfigFlags -> IO HookedBuildInfo) -> ((GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo) -> (Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> BuildFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()) -> (Args -> BuildFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> ReplFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> ReplFlags -> [String] -> IO ()) -> (Args -> ReplFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> CleanFlags -> IO HookedBuildInfo) -> (PackageDescription -> () -> UserHooks -> CleanFlags -> IO ()) -> (Args -> CleanFlags -> PackageDescription -> () -> IO ()) -> (Args -> CopyFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags -> IO ()) -> (Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> InstallFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> InstallFlags -> IO ()) -> (Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> SDistFlags -> IO HookedBuildInfo) -> (PackageDescription -> Maybe LocalBuildInfo -> UserHooks -> SDistFlags -> IO ()) -> (Args -> SDistFlags -> PackageDescription -> Maybe LocalBuildInfo -> IO ()) -> (Args -> RegisterFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()) -> (Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> RegisterFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()) -> (Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> HscolourFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> HscolourFlags -> IO ()) -> (Args -> HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> HaddockFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> HaddockFlags -> IO ()) -> (Args -> HaddockFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> TestFlags -> IO HookedBuildInfo) -> (Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> TestFlags -> IO ()) -> (Args -> TestFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> BenchmarkFlags -> IO HookedBuildInfo) -> (Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> BenchmarkFlags -> IO ()) -> (Args -> BenchmarkFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> UserHooks
+ Distribution.Simple: UserHooks :: (Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO ()) -> IO (Maybe GenericPackageDescription) -> [PPSuffixHandler] -> [Program] -> (Args -> ConfigFlags -> IO HookedBuildInfo) -> ((GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo) -> (Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> BuildFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()) -> (Args -> BuildFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> ReplFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> ReplFlags -> [String] -> IO ()) -> (Args -> ReplFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> CleanFlags -> IO HookedBuildInfo) -> (PackageDescription -> () -> UserHooks -> CleanFlags -> IO ()) -> (Args -> CleanFlags -> PackageDescription -> () -> IO ()) -> (Args -> CopyFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags -> IO ()) -> (Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> InstallFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> InstallFlags -> IO ()) -> (Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> SDistFlags -> IO HookedBuildInfo) -> (PackageDescription -> Maybe LocalBuildInfo -> UserHooks -> SDistFlags -> IO ()) -> (Args -> SDistFlags -> PackageDescription -> Maybe LocalBuildInfo -> IO ()) -> (Args -> RegisterFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()) -> (Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> RegisterFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()) -> (Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> HscolourFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> HscolourFlags -> IO ()) -> (Args -> HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> DoctestFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> DoctestFlags -> IO ()) -> (Args -> DoctestFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> HaddockFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> HaddockFlags -> IO ()) -> (Args -> HaddockFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> TestFlags -> IO HookedBuildInfo) -> (Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> TestFlags -> IO ()) -> (Args -> TestFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> BenchmarkFlags -> IO HookedBuildInfo) -> (Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> BenchmarkFlags -> IO ()) -> (Args -> BenchmarkFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> UserHooks
- Distribution.Simple.Build: writeAutogenFiles :: Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
+ Distribution.Simple.Build: writeAutogenFiles :: Verbosity -> PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> IO ()
- Distribution.Simple.Build.Macros: generate :: PackageDescription -> LocalBuildInfo -> String
+ Distribution.Simple.Build.Macros: generate :: PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> String
- Distribution.Simple.Build.Macros: generatePackageVersionMacros :: [PackageIdentifier] -> String
+ Distribution.Simple.Build.Macros: generatePackageVersionMacros :: [PackageId] -> String
- Distribution.Simple.Build.PathsModule: generate :: PackageDescription -> LocalBuildInfo -> String
+ Distribution.Simple.Build.PathsModule: generate :: PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> String
- Distribution.Simple.BuildPaths: haddockPref :: FilePath -> PackageDescription -> FilePath
+ Distribution.Simple.BuildPaths: haddockPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
- Distribution.Simple.BuildPaths: hscolourPref :: FilePath -> PackageDescription -> FilePath
+ Distribution.Simple.BuildPaths: hscolourPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
- Distribution.Simple.BuildTarget: readBuildTargets :: PackageDescription -> [String] -> IO [BuildTarget]
+ Distribution.Simple.BuildTarget: readBuildTargets :: Verbosity -> PackageDescription -> [String] -> IO [BuildTarget]
- Distribution.Simple.BuildTarget: reportBuildTargetProblems :: [BuildTargetProblem] -> IO ()
+ Distribution.Simple.BuildTarget: reportBuildTargetProblems :: Verbosity -> [BuildTargetProblem] -> IO ()
- Distribution.Simple.BuildTarget: reportUserBuildTargetProblems :: [UserBuildTargetProblem] -> IO ()
+ Distribution.Simple.BuildTarget: reportUserBuildTargetProblems :: Verbosity -> [UserBuildTargetProblem] -> IO ()
- Distribution.Simple.BuildTarget: showBuildTarget :: QualLevel -> PackageId -> BuildTarget -> String
+ Distribution.Simple.BuildTarget: showBuildTarget :: PackageId -> BuildTarget -> String
- Distribution.Simple.Compiler: absolutePackageDBPath :: PackageDB -> IO PackageDB
+ Distribution.Simple.Compiler: absolutePackageDBPath :: PackageDB -> NoCallStackIO PackageDB
- Distribution.Simple.Compiler: absolutePackageDBPaths :: PackageDBStack -> IO PackageDBStack
+ Distribution.Simple.Compiler: absolutePackageDBPaths :: PackageDBStack -> NoCallStackIO PackageDBStack
- Distribution.Simple.Configure: checkPersistBuildConfigOutdated :: FilePath -> FilePath -> IO Bool
+ Distribution.Simple.Configure: checkPersistBuildConfigOutdated :: FilePath -> FilePath -> NoCallStackIO Bool
- Distribution.Simple.Configure: computeCompatPackageKey :: Compiler -> PackageIdentifier -> ComponentName -> UnitId -> (PackageName, String)
+ Distribution.Simple.Configure: computeCompatPackageKey :: Compiler -> MungedPackageName -> Version -> UnitId -> String
- Distribution.Simple.Configure: computeComponentId :: PackageIdentifier -> ComponentName -> [ComponentId] -> FlagAssignment -> ComponentId
+ Distribution.Simple.Configure: computeComponentId :: Bool -> Flag String -> Flag ComponentId -> PackageIdentifier -> ComponentName -> Maybe ([ComponentId], FlagAssignment) -> ComponentId
- Distribution.Simple.Configure: configCompiler :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> Verbosity -> IO (Compiler, ProgramConfiguration)
+ Distribution.Simple.Configure: configCompiler :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath -> ProgramDb -> Verbosity -> IO (Compiler, ProgramDb)
- Distribution.Simple.Configure: configCompilerAux :: ConfigFlags -> IO (Compiler, ProgramConfiguration)
+ Distribution.Simple.Configure: configCompilerAux :: ConfigFlags -> IO (Compiler, ProgramDb)
- Distribution.Simple.Configure: configCompilerAuxEx :: ConfigFlags -> IO (Compiler, Platform, ProgramConfiguration)
+ Distribution.Simple.Configure: configCompilerAuxEx :: ConfigFlags -> IO (Compiler, Platform, ProgramDb)
- Distribution.Simple.Configure: configCompilerEx :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> Verbosity -> IO (Compiler, Platform, ProgramConfiguration)
+ Distribution.Simple.Configure: configCompilerEx :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath -> ProgramDb -> Verbosity -> IO (Compiler, Platform, ProgramDb)
- Distribution.Simple.Configure: findDistPref :: FilePath -> Flag FilePath -> IO FilePath
+ Distribution.Simple.Configure: findDistPref :: FilePath -> Flag FilePath -> NoCallStackIO FilePath
- Distribution.Simple.Configure: findDistPrefOrDefault :: Flag FilePath -> IO FilePath
+ Distribution.Simple.Configure: findDistPrefOrDefault :: Flag FilePath -> NoCallStackIO FilePath
- Distribution.Simple.Configure: getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.Configure: getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.Configure: getInstalledPackagesMonitorFiles :: Verbosity -> Compiler -> PackageDBStack -> ProgramConfiguration -> Platform -> IO [FilePath]
+ Distribution.Simple.Configure: getInstalledPackagesMonitorFiles :: Verbosity -> Compiler -> PackageDBStack -> ProgramDb -> Platform -> IO [FilePath]
- Distribution.Simple.Configure: getPackageDBContents :: Verbosity -> Compiler -> PackageDB -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.Configure: getPackageDBContents :: Verbosity -> Compiler -> PackageDB -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.Configure: relaxPackageDeps :: AllowNewer -> GenericPackageDescription -> GenericPackageDescription
+ Distribution.Simple.Configure: relaxPackageDeps :: (VersionRange -> VersionRange) -> RelaxDeps -> GenericPackageDescription -> GenericPackageDescription
- Distribution.Simple.Configure: writePersistBuildConfig :: FilePath -> LocalBuildInfo -> IO ()
+ Distribution.Simple.Configure: writePersistBuildConfig :: FilePath -> LocalBuildInfo -> NoCallStackIO ()
- Distribution.Simple.GHC: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)
+ Distribution.Simple.GHC: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)
- Distribution.Simple.GHC: getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.GHC: getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.GHC: getInstalledPackagesMonitorFiles :: Verbosity -> Platform -> ProgramConfiguration -> [PackageDB] -> IO [FilePath]
+ Distribution.Simple.GHC: getInstalledPackagesMonitorFiles :: Verbosity -> Platform -> ProgramDb -> [PackageDB] -> IO [FilePath]
- Distribution.Simple.GHC: getPackageDBContents :: Verbosity -> PackageDB -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.GHC: getPackageDBContents :: Verbosity -> PackageDB -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.GHC: hcPkgInfo :: ProgramConfiguration -> HcPkgInfo
+ Distribution.Simple.GHC: hcPkgInfo :: ProgramDb -> HcPkgInfo
- Distribution.Simple.GHC: installExe :: Verbosity -> LocalBuildInfo -> InstallDirs FilePath -> FilePath -> (FilePath, FilePath) -> PackageDescription -> Executable -> IO ()
+ Distribution.Simple.GHC: installExe :: Verbosity -> LocalBuildInfo -> FilePath -> FilePath -> (FilePath, FilePath) -> PackageDescription -> Executable -> IO ()
- Distribution.Simple.GHC: registerPackage :: Verbosity -> ProgramConfiguration -> Bool -> PackageDBStack -> InstalledPackageInfo -> IO ()
+ Distribution.Simple.GHC: registerPackage :: Verbosity -> ProgramDb -> PackageDBStack -> InstalledPackageInfo -> RegisterOptions -> IO ()
- Distribution.Simple.GHC: startInterpreter :: Verbosity -> ProgramConfiguration -> Compiler -> Platform -> PackageDBStack -> IO ()
+ Distribution.Simple.GHC: startInterpreter :: Verbosity -> ProgramDb -> Compiler -> Platform -> PackageDBStack -> IO ()
- Distribution.Simple.GHCJS: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)
+ Distribution.Simple.GHCJS: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)
- Distribution.Simple.GHCJS: getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.GHCJS: getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.GHCJS: getPackageDBContents :: Verbosity -> PackageDB -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.GHCJS: getPackageDBContents :: Verbosity -> PackageDB -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.GHCJS: hcPkgInfo :: ProgramConfiguration -> HcPkgInfo
+ Distribution.Simple.GHCJS: hcPkgInfo :: ProgramDb -> HcPkgInfo
- Distribution.Simple.GHCJS: installExe :: Verbosity -> LocalBuildInfo -> InstallDirs FilePath -> FilePath -> (FilePath, FilePath) -> PackageDescription -> Executable -> IO ()
+ Distribution.Simple.GHCJS: installExe :: Verbosity -> LocalBuildInfo -> FilePath -> FilePath -> (FilePath, FilePath) -> PackageDescription -> Executable -> IO ()
- Distribution.Simple.GHCJS: registerPackage :: Verbosity -> ProgramConfiguration -> Bool -> PackageDBStack -> InstalledPackageInfo -> IO ()
+ Distribution.Simple.GHCJS: registerPackage :: Verbosity -> ProgramDb -> PackageDBStack -> InstalledPackageInfo -> RegisterOptions -> IO ()
- Distribution.Simple.GHCJS: runCmd :: ProgramConfiguration -> FilePath -> (FilePath, FilePath, [String])
+ Distribution.Simple.GHCJS: runCmd :: ProgramDb -> FilePath -> (FilePath, FilePath, [String])
- Distribution.Simple.GHCJS: startInterpreter :: Verbosity -> ProgramConfiguration -> Compiler -> Platform -> PackageDBStack -> IO ()
+ Distribution.Simple.GHCJS: startInterpreter :: Verbosity -> ProgramDb -> Compiler -> Platform -> PackageDBStack -> IO ()
- Distribution.Simple.Haddock: haddockPackagePaths :: [InstalledPackageInfo] -> Maybe (InstalledPackageInfo -> FilePath) -> IO ([(FilePath, Maybe FilePath)], Maybe String)
+ Distribution.Simple.Haddock: haddockPackagePaths :: [InstalledPackageInfo] -> Maybe (InstalledPackageInfo -> FilePath) -> NoCallStackIO ([(FilePath, Maybe FilePath)], Maybe String)
- Distribution.Simple.HaskellSuite: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)
+ Distribution.Simple.HaskellSuite: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)
- Distribution.Simple.HaskellSuite: getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.HaskellSuite: getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.HaskellSuite: initPackageDB :: Verbosity -> ProgramConfiguration -> FilePath -> IO ()
+ Distribution.Simple.HaskellSuite: initPackageDB :: Verbosity -> ProgramDb -> FilePath -> IO ()
- Distribution.Simple.HaskellSuite: registerPackage :: Verbosity -> ProgramConfiguration -> PackageDBStack -> InstalledPackageInfo -> IO ()
+ Distribution.Simple.HaskellSuite: registerPackage :: Verbosity -> ProgramDb -> PackageDBStack -> InstalledPackageInfo -> IO ()
- Distribution.Simple.InstallDirs: InstallDirs :: dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> InstallDirs dir
+ Distribution.Simple.InstallDirs: InstallDirs :: dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> InstallDirs dir
- Distribution.Simple.JHC: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)
+ Distribution.Simple.JHC: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)
- Distribution.Simple.JHC: getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.JHC: getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.LHC: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)
+ Distribution.Simple.LHC: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)
- Distribution.Simple.LHC: getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.LHC: getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.LHC: hcPkgInfo :: ProgramConfiguration -> HcPkgInfo
+ Distribution.Simple.LHC: hcPkgInfo :: ProgramDb -> HcPkgInfo
- Distribution.Simple.LHC: installExe :: Verbosity -> LocalBuildInfo -> InstallDirs FilePath -> FilePath -> (FilePath, FilePath) -> PackageDescription -> Executable -> IO ()
+ Distribution.Simple.LHC: installExe :: Verbosity -> LocalBuildInfo -> FilePath -> FilePath -> (FilePath, FilePath) -> PackageDescription -> Executable -> IO ()
- Distribution.Simple.LHC: registerPackage :: Verbosity -> ProgramConfiguration -> PackageDBStack -> InstalledPackageInfo -> IO ()
+ Distribution.Simple.LHC: registerPackage :: Verbosity -> ProgramDb -> PackageDBStack -> InstalledPackageInfo -> RegisterOptions -> IO ()
- Distribution.Simple.LocalBuildInfo: BenchComponentLocalBuildInfo :: [(UnitId, PackageId)] -> Map PackageName ModuleRenaming -> ComponentLocalBuildInfo
+ Distribution.Simple.LocalBuildInfo: BenchComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> ComponentLocalBuildInfo
- Distribution.Simple.LocalBuildInfo: CBenchName :: String -> ComponentName
+ Distribution.Simple.LocalBuildInfo: CBenchName :: UnqualComponentName -> ComponentName
- Distribution.Simple.LocalBuildInfo: CExeName :: String -> ComponentName
+ Distribution.Simple.LocalBuildInfo: CExeName :: UnqualComponentName -> ComponentName
- Distribution.Simple.LocalBuildInfo: CTestName :: String -> ComponentName
+ Distribution.Simple.LocalBuildInfo: CTestName :: UnqualComponentName -> ComponentName
- Distribution.Simple.LocalBuildInfo: ExeComponentLocalBuildInfo :: [(UnitId, PackageId)] -> Map PackageName ModuleRenaming -> ComponentLocalBuildInfo
+ Distribution.Simple.LocalBuildInfo: ExeComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> ComponentLocalBuildInfo
- Distribution.Simple.LocalBuildInfo: LibComponentLocalBuildInfo :: [(UnitId, PackageId)] -> UnitId -> String -> [ExposedModule] -> Map PackageName ModuleRenaming -> ComponentLocalBuildInfo
+ Distribution.Simple.LocalBuildInfo: LibComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> Bool -> [(ModuleName, OpenModule)] -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> String -> MungedPackageName -> [ExposedModule] -> Bool -> ComponentLocalBuildInfo
- Distribution.Simple.LocalBuildInfo: LocalBuildInfo :: ConfigFlags -> FlagAssignment -> [String] -> InstallDirTemplates -> Compiler -> Platform -> FilePath -> [(ComponentName, ComponentLocalBuildInfo, [ComponentName])] -> InstalledPackageIndex -> Maybe FilePath -> PackageDescription -> ProgramConfiguration -> PackageDBStack -> Bool -> Bool -> Bool -> Bool -> Bool -> ProfDetailLevel -> ProfDetailLevel -> OptimisationLevel -> DebugInfoLevel -> Bool -> Bool -> Bool -> Bool -> PathTemplate -> PathTemplate -> Bool -> LocalBuildInfo
+ Distribution.Simple.LocalBuildInfo: LocalBuildInfo :: ConfigFlags -> FlagAssignment -> ComponentRequestedSpec -> [String] -> InstallDirTemplates -> Compiler -> Platform -> FilePath -> Graph ComponentLocalBuildInfo -> Map ComponentName [ComponentLocalBuildInfo] -> InstalledPackageIndex -> Maybe FilePath -> PackageDescription -> ProgramDb -> PackageDBStack -> Bool -> Bool -> Bool -> Bool -> Bool -> ProfDetailLevel -> ProfDetailLevel -> OptimisationLevel -> DebugInfoLevel -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> PathTemplate -> PathTemplate -> Bool -> LocalBuildInfo
- Distribution.Simple.LocalBuildInfo: TestComponentLocalBuildInfo :: [(UnitId, PackageId)] -> Map PackageName ModuleRenaming -> ComponentLocalBuildInfo
+ Distribution.Simple.LocalBuildInfo: TestComponentLocalBuildInfo :: ComponentName -> ComponentId -> UnitId -> [(UnitId, MungedPackageId)] -> [(OpenUnitId, ModuleRenaming)] -> [UnitId] -> [UnitId] -> ComponentLocalBuildInfo
- Distribution.Simple.LocalBuildInfo: [componentPackageDeps] :: ComponentLocalBuildInfo -> [(UnitId, PackageId)]
+ Distribution.Simple.LocalBuildInfo: [componentPackageDeps] :: ComponentLocalBuildInfo -> [(UnitId, MungedPackageId)]
- Distribution.Simple.LocalBuildInfo: [withPrograms] :: LocalBuildInfo -> ProgramConfiguration
+ Distribution.Simple.LocalBuildInfo: [withPrograms] :: LocalBuildInfo -> ProgramDb
- Distribution.Simple.LocalBuildInfo: allComponentsInBuildOrder :: LocalBuildInfo -> [(ComponentName, ComponentLocalBuildInfo)]
+ Distribution.Simple.LocalBuildInfo: allComponentsInBuildOrder :: LocalBuildInfo -> [ComponentLocalBuildInfo]
- Distribution.Simple.LocalBuildInfo: componentsInBuildOrder :: LocalBuildInfo -> [ComponentName] -> [(ComponentName, ComponentLocalBuildInfo)]
+ Distribution.Simple.LocalBuildInfo: componentsInBuildOrder :: LocalBuildInfo -> [ComponentName] -> [ComponentLocalBuildInfo]
- Distribution.Simple.LocalBuildInfo: depLibraryPaths :: Bool -> Bool -> LocalBuildInfo -> ComponentLocalBuildInfo -> IO [FilePath]
+ Distribution.Simple.LocalBuildInfo: depLibraryPaths :: Bool -> Bool -> LocalBuildInfo -> ComponentLocalBuildInfo -> NoCallStackIO [FilePath]
- Distribution.Simple.LocalBuildInfo: externalPackageDeps :: LocalBuildInfo -> [(UnitId, PackageId)]
+ Distribution.Simple.LocalBuildInfo: externalPackageDeps :: LocalBuildInfo -> [(UnitId, MungedPackageId)]
- Distribution.Simple.LocalBuildInfo: foldComponent :: (Library -> a) -> (Executable -> a) -> (TestSuite -> a) -> (Benchmark -> a) -> Component -> a
+ Distribution.Simple.LocalBuildInfo: foldComponent :: (Library -> a) -> (ForeignLib -> a) -> (Executable -> a) -> (TestSuite -> a) -> (Benchmark -> a) -> Component -> a
- Distribution.Simple.LocalBuildInfo: substPathTemplate :: PackageId -> LocalBuildInfo -> PathTemplate -> FilePath
+ Distribution.Simple.LocalBuildInfo: substPathTemplate :: PackageId -> LocalBuildInfo -> UnitId -> PathTemplate -> FilePath
- Distribution.Simple.PackageIndex: deleteInstalledPackageId :: HasUnitId a => UnitId -> PackageIndex a -> PackageIndex a
+ Distribution.Simple.PackageIndex: deleteInstalledPackageId :: UnitId -> InstalledPackageIndex -> InstalledPackageIndex
- Distribution.Simple.PackageIndex: deletePackageName :: HasUnitId a => PackageName -> PackageIndex a -> PackageIndex a
+ Distribution.Simple.PackageIndex: deletePackageName :: PackageName -> InstalledPackageIndex -> InstalledPackageIndex
- Distribution.Simple.PackageIndex: deleteSourcePackageId :: HasUnitId a => PackageId -> PackageIndex a -> PackageIndex a
+ Distribution.Simple.PackageIndex: deleteSourcePackageId :: PackageId -> InstalledPackageIndex -> InstalledPackageIndex
- Distribution.Simple.PackageIndex: deleteUnitId :: HasUnitId a => UnitId -> PackageIndex a -> PackageIndex a
+ Distribution.Simple.PackageIndex: deleteUnitId :: UnitId -> InstalledPackageIndex -> InstalledPackageIndex
- Distribution.Simple.PackageIndex: dependencyClosure :: PackageInstalled a => PackageIndex a -> [UnitId] -> Either (PackageIndex a) [(a, [UnitId])]
+ Distribution.Simple.PackageIndex: dependencyClosure :: InstalledPackageIndex -> [UnitId] -> Either (InstalledPackageIndex) [(InstalledPackageInfo, [UnitId])]
- Distribution.Simple.PackageIndex: dependencyInconsistencies :: PackageInstalled a => PackageIndex a -> [(PackageName, [(PackageId, Version)])]
+ Distribution.Simple.PackageIndex: dependencyInconsistencies :: InstalledPackageIndex -> [(DepUniqueKey, [(UnitId, [InstalledPackageInfo])])]
- Distribution.Simple.PackageIndex: fromList :: HasUnitId a => [a] -> PackageIndex a
+ Distribution.Simple.PackageIndex: fromList :: [InstalledPackageInfo] -> InstalledPackageIndex
- Distribution.Simple.PackageIndex: insert :: HasUnitId a => a -> PackageIndex a -> PackageIndex a
+ Distribution.Simple.PackageIndex: insert :: InstalledPackageInfo -> InstalledPackageIndex -> InstalledPackageIndex
- Distribution.Simple.PackageIndex: lookupDependency :: PackageIndex a -> Dependency -> [(Version, [a])]
+ Distribution.Simple.PackageIndex: lookupDependency :: InstalledPackageIndex -> Dependency -> [(Version, [InstalledPackageInfo])]
- Distribution.Simple.PackageIndex: merge :: HasUnitId a => PackageIndex a -> PackageIndex a -> PackageIndex a
+ Distribution.Simple.PackageIndex: merge :: InstalledPackageIndex -> InstalledPackageIndex -> InstalledPackageIndex
- Distribution.Simple.PreProcess: ppAlex :: BuildInfo -> LocalBuildInfo -> PreProcessor
+ Distribution.Simple.PreProcess: ppAlex :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor
- Distribution.Simple.PreProcess: ppC2hs :: BuildInfo -> LocalBuildInfo -> PreProcessor
+ Distribution.Simple.PreProcess: ppC2hs :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor
- Distribution.Simple.PreProcess: ppCpp :: BuildInfo -> LocalBuildInfo -> PreProcessor
+ Distribution.Simple.PreProcess: ppCpp :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor
- Distribution.Simple.PreProcess: ppCpp' :: [String] -> BuildInfo -> LocalBuildInfo -> PreProcessor
+ Distribution.Simple.PreProcess: ppCpp' :: [String] -> BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor
- Distribution.Simple.PreProcess: ppGreenCard :: BuildInfo -> LocalBuildInfo -> PreProcessor
+ Distribution.Simple.PreProcess: ppGreenCard :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor
- Distribution.Simple.PreProcess: ppHappy :: BuildInfo -> LocalBuildInfo -> PreProcessor
+ Distribution.Simple.PreProcess: ppHappy :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor
- Distribution.Simple.PreProcess: ppHsc2hs :: BuildInfo -> LocalBuildInfo -> PreProcessor
+ Distribution.Simple.PreProcess: ppHsc2hs :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor
- Distribution.Simple.PreProcess: preprocessComponent :: PackageDescription -> Component -> LocalBuildInfo -> Bool -> Verbosity -> [PPSuffixHandler] -> IO ()
+ Distribution.Simple.PreProcess: preprocessComponent :: PackageDescription -> Component -> LocalBuildInfo -> ComponentLocalBuildInfo -> Bool -> Verbosity -> [PPSuffixHandler] -> IO ()
- Distribution.Simple.PreProcess: preprocessExtras :: Component -> LocalBuildInfo -> IO [FilePath]
+ Distribution.Simple.PreProcess: preprocessExtras :: Verbosity -> Component -> LocalBuildInfo -> IO [FilePath]
- Distribution.Simple.PreProcess: type PPSuffixHandler = (String, BuildInfo -> LocalBuildInfo -> PreProcessor)
+ Distribution.Simple.PreProcess: type PPSuffixHandler = (String, BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor)
- Distribution.Simple.Program: ProgramInvocation :: FilePath -> [String] -> [(String, Maybe String)] -> Maybe FilePath -> Maybe String -> IOEncoding -> IOEncoding -> ProgramInvocation
+ Distribution.Simple.Program: ProgramInvocation :: FilePath -> [String] -> [(String, Maybe String)] -> [FilePath] -> Maybe FilePath -> Maybe String -> IOEncoding -> IOEncoding -> ProgramInvocation
- Distribution.Simple.Program.Find: getSystemSearchPath :: IO [FilePath]
+ Distribution.Simple.Program.Find: getSystemSearchPath :: NoCallStackIO [FilePath]
- Distribution.Simple.Program.Find: programSearchPathAsPATHVar :: ProgramSearchPath -> IO String
+ Distribution.Simple.Program.Find: programSearchPathAsPATHVar :: ProgramSearchPath -> NoCallStackIO String
- Distribution.Simple.Program.GHC: GhcOptions :: Flag GhcMode -> NubListR String -> NubListR String -> NubListR FilePath -> NubListR ModuleName -> Flag FilePath -> Flag FilePath -> Flag Bool -> NubListR FilePath -> Flag String -> PackageDBStack -> NubListR (UnitId, PackageId, ModuleRenaming) -> Flag Bool -> Flag Bool -> NubListR FilePath -> NubListR FilePath -> NubListR String -> NubListR String -> NubListR String -> Flag Bool -> Flag Bool -> NubListR String -> NubListR String -> NubListR FilePath -> NubListR FilePath -> NubListR FilePath -> Flag Language -> NubListR Extension -> Map Extension String -> Flag GhcOptimisation -> Flag Bool -> Flag Bool -> Flag GhcProfAuto -> Flag Bool -> Flag (Maybe Int) -> Flag FilePath -> NubListR FilePath -> Flag String -> Flag String -> Flag String -> Flag String -> Flag FilePath -> Flag FilePath -> Flag FilePath -> Flag FilePath -> Flag GhcDynLinkMode -> Flag Bool -> Flag Bool -> Flag String -> NubListR FilePath -> Flag Verbosity -> Flag Bool -> GhcOptions
+ Distribution.Simple.Program.GHC: GhcOptions :: Flag GhcMode -> NubListR String -> NubListR String -> NubListR FilePath -> NubListR ModuleName -> Flag FilePath -> Flag FilePath -> Flag Bool -> NubListR FilePath -> Flag String -> Flag ComponentId -> [(ModuleName, OpenModule)] -> Flag Bool -> PackageDBStack -> NubListR (OpenUnitId, ModuleRenaming) -> Flag Bool -> Flag Bool -> Flag Bool -> NubListR FilePath -> NubListR FilePath -> NubListR String -> NubListR String -> NubListR String -> Flag Bool -> Flag Bool -> NubListR FilePath -> NubListR String -> NubListR String -> NubListR FilePath -> NubListR FilePath -> NubListR FilePath -> Flag Language -> NubListR Extension -> Map Extension String -> Flag GhcOptimisation -> Flag Bool -> Flag Bool -> Flag GhcProfAuto -> Flag Bool -> Flag (Maybe Int) -> Flag FilePath -> NubListR FilePath -> Flag String -> Flag String -> Flag String -> Flag String -> Flag FilePath -> Flag FilePath -> Flag FilePath -> Flag FilePath -> Flag GhcDynLinkMode -> Flag Bool -> Flag Bool -> Flag Bool -> Flag String -> NubListR FilePath -> Flag Verbosity -> NubListR FilePath -> Flag Bool -> GhcOptions
- Distribution.Simple.Program.GHC: [ghcOptPackages] :: GhcOptions -> NubListR (UnitId, PackageId, ModuleRenaming)
+ Distribution.Simple.Program.GHC: [ghcOptPackages] :: GhcOptions -> NubListR (OpenUnitId, ModuleRenaming)
- Distribution.Simple.Program.HcPkg: HcPkgInfo :: ConfiguredProgram -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> HcPkgInfo
+ Distribution.Simple.Program.HcPkg: HcPkgInfo :: ConfiguredProgram -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> HcPkgInfo
- Distribution.Simple.Program.HcPkg: register :: HcPkgInfo -> Verbosity -> PackageDBStack -> Either FilePath InstalledPackageInfo -> IO ()
+ Distribution.Simple.Program.HcPkg: register :: HcPkgInfo -> Verbosity -> PackageDBStack -> InstalledPackageInfo -> RegisterOptions -> IO ()
- Distribution.Simple.Program.HcPkg: registerInvocation :: HcPkgInfo -> Verbosity -> PackageDBStack -> Either FilePath InstalledPackageInfo -> ProgramInvocation
+ Distribution.Simple.Program.HcPkg: registerInvocation :: HcPkgInfo -> Verbosity -> PackageDBStack -> InstalledPackageInfo -> RegisterOptions -> ProgramInvocation
- Distribution.Simple.Program.Run: ProgramInvocation :: FilePath -> [String] -> [(String, Maybe String)] -> Maybe FilePath -> Maybe String -> IOEncoding -> IOEncoding -> ProgramInvocation
+ Distribution.Simple.Program.Run: ProgramInvocation :: FilePath -> [String] -> [(String, Maybe String)] -> [FilePath] -> Maybe FilePath -> Maybe String -> IOEncoding -> IOEncoding -> ProgramInvocation
- Distribution.Simple.Program.Run: getEffectiveEnvironment :: [(String, Maybe String)] -> IO (Maybe [(String, String)])
+ Distribution.Simple.Program.Run: getEffectiveEnvironment :: [(String, Maybe String)] -> NoCallStackIO (Maybe [(String, String)])
- Distribution.Simple.Program.Strip: stripExe :: Verbosity -> Platform -> ProgramConfiguration -> FilePath -> IO ()
+ Distribution.Simple.Program.Strip: stripExe :: Verbosity -> Platform -> ProgramDb -> FilePath -> IO ()
- Distribution.Simple.Program.Strip: stripLib :: Verbosity -> Platform -> ProgramConfiguration -> FilePath -> IO ()
+ Distribution.Simple.Program.Strip: stripLib :: Verbosity -> Platform -> ProgramDb -> FilePath -> IO ()
- Distribution.Simple.Register: createPackageDB :: Verbosity -> Compiler -> ProgramConfiguration -> Bool -> FilePath -> IO ()
+ Distribution.Simple.Register: createPackageDB :: Verbosity -> Compiler -> ProgramDb -> Bool -> FilePath -> IO ()
- Distribution.Simple.Register: deletePackageDB :: FilePath -> IO ()
+ Distribution.Simple.Register: deletePackageDB :: FilePath -> NoCallStackIO ()
- Distribution.Simple.Register: doesPackageDBExist :: FilePath -> IO Bool
+ Distribution.Simple.Register: doesPackageDBExist :: FilePath -> NoCallStackIO Bool
- Distribution.Simple.Register: initPackageDB :: Verbosity -> Compiler -> ProgramConfiguration -> FilePath -> IO ()
+ Distribution.Simple.Register: initPackageDB :: Verbosity -> Compiler -> ProgramDb -> FilePath -> IO ()
- Distribution.Simple.Register: invokeHcPkg :: Verbosity -> Compiler -> ProgramConfiguration -> PackageDBStack -> [String] -> IO ()
+ Distribution.Simple.Register: invokeHcPkg :: Verbosity -> Compiler -> ProgramDb -> PackageDBStack -> [String] -> IO ()
- Distribution.Simple.Register: registerPackage :: Verbosity -> Compiler -> ProgramConfiguration -> Bool -> PackageDBStack -> InstalledPackageInfo -> IO ()
+ Distribution.Simple.Register: registerPackage :: Verbosity -> Compiler -> ProgramDb -> PackageDBStack -> InstalledPackageInfo -> RegisterOptions -> IO ()
- Distribution.Simple.Setup: ConfigFlags :: Last' ProgramConfiguration -> [(String, FilePath)] -> [(String, [String])] -> NubList FilePath -> Flag CompilerFlavor -> Flag FilePath -> Flag FilePath -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag ProfDetailLevel -> Flag ProfDetailLevel -> [String] -> Flag OptimisationLevel -> Flag PathTemplate -> Flag PathTemplate -> InstallDirs (Flag PathTemplate) -> Flag FilePath -> [FilePath] -> [FilePath] -> [FilePath] -> Flag String -> Flag FilePath -> Flag Verbosity -> Flag Bool -> [Maybe PackageDB] -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> [Dependency] -> [(PackageName, UnitId)] -> FlagAssignment -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag String -> Flag Bool -> Flag DebugInfoLevel -> Maybe AllowNewer -> ConfigFlags
+ Distribution.Simple.Setup: ConfigFlags :: [String] -> Last' ProgramDb -> [(String, FilePath)] -> [(String, [String])] -> NubList FilePath -> Flag CompilerFlavor -> Flag FilePath -> Flag FilePath -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag ProfDetailLevel -> Flag ProfDetailLevel -> [String] -> Flag OptimisationLevel -> Flag PathTemplate -> Flag PathTemplate -> InstallDirs (Flag PathTemplate) -> Flag FilePath -> [FilePath] -> [FilePath] -> [FilePath] -> Flag String -> Flag ComponentId -> Flag Bool -> Flag FilePath -> Flag FilePath -> Flag Verbosity -> Flag Bool -> [Maybe PackageDB] -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> [Dependency] -> [(PackageName, ComponentId)] -> [(ModuleName, Module)] -> FlagAssignment -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag String -> Flag Bool -> Flag DebugInfoLevel -> Maybe AllowOlder -> Maybe AllowNewer -> ConfigFlags
- Distribution.Simple.Setup: CopyFlags :: Flag CopyDest -> Flag FilePath -> Flag Verbosity -> CopyFlags
+ Distribution.Simple.Setup: CopyFlags :: Flag CopyDest -> Flag FilePath -> Flag Verbosity -> [String] -> CopyFlags
- Distribution.Simple.Setup: HaddockFlags :: [(String, FilePath)] -> [(String, [String])] -> Flag Bool -> Flag Bool -> Flag String -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag FilePath -> Flag Bool -> Flag FilePath -> Flag PathTemplate -> Flag FilePath -> Flag Bool -> Flag Verbosity -> HaddockFlags
+ Distribution.Simple.Setup: HaddockFlags :: [(String, FilePath)] -> [(String, [String])] -> Flag Bool -> Flag Bool -> Flag String -> Flag HaddockTarget -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag FilePath -> Flag Bool -> Flag FilePath -> Flag PathTemplate -> Flag FilePath -> Flag Bool -> Flag Verbosity -> HaddockFlags
- Distribution.Simple.Setup: HscolourFlags :: Flag FilePath -> Flag Bool -> Flag Bool -> Flag Bool -> Flag FilePath -> Flag Verbosity -> HscolourFlags
+ Distribution.Simple.Setup: HscolourFlags :: Flag FilePath -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag FilePath -> Flag Verbosity -> HscolourFlags
- Distribution.Simple.Setup: RegisterFlags :: Flag PackageDB -> Flag Bool -> Flag (Maybe FilePath) -> Flag Bool -> Flag FilePath -> Flag Bool -> Flag Verbosity -> RegisterFlags
+ Distribution.Simple.Setup: RegisterFlags :: Flag PackageDB -> Flag Bool -> Flag (Maybe FilePath) -> Flag Bool -> Flag FilePath -> Flag Bool -> Flag Verbosity -> [String] -> RegisterFlags
- Distribution.Simple.Setup: [configDependencies] :: ConfigFlags -> [(PackageName, UnitId)]
+ Distribution.Simple.Setup: [configDependencies] :: ConfigFlags -> [(PackageName, ComponentId)]
- Distribution.Simple.Setup: [configPrograms_] :: ConfigFlags -> Last' ProgramConfiguration
+ Distribution.Simple.Setup: [configPrograms_] :: ConfigFlags -> Last' ProgramDb
- Distribution.Simple.Setup: [haddockForHackage] :: HaddockFlags -> Flag Bool
+ Distribution.Simple.Setup: [haddockForHackage] :: HaddockFlags -> Flag HaddockTarget
- Distribution.Simple.Setup: buildCommand :: ProgramConfiguration -> CommandUI BuildFlags
+ Distribution.Simple.Setup: buildCommand :: ProgramDb -> CommandUI BuildFlags
- Distribution.Simple.Setup: buildOptions :: ProgramConfiguration -> ShowOrParseArgs -> [OptionField BuildFlags]
+ Distribution.Simple.Setup: buildOptions :: ProgramDb -> ShowOrParseArgs -> [OptionField BuildFlags]
- Distribution.Simple.Setup: configAbsolutePaths :: ConfigFlags -> IO ConfigFlags
+ Distribution.Simple.Setup: configAbsolutePaths :: ConfigFlags -> NoCallStackIO ConfigFlags
- Distribution.Simple.Setup: configPrograms :: ConfigFlags -> ProgramConfiguration
+ Distribution.Simple.Setup: configPrograms :: WithCallStack (ConfigFlags -> ProgramDb)
- Distribution.Simple.Setup: configureCCompiler :: Verbosity -> ProgramConfiguration -> IO (FilePath, [String])
+ Distribution.Simple.Setup: configureCCompiler :: Verbosity -> ProgramDb -> IO (FilePath, [String])
- Distribution.Simple.Setup: configureCommand :: ProgramConfiguration -> CommandUI ConfigFlags
+ Distribution.Simple.Setup: configureCommand :: ProgramDb -> CommandUI ConfigFlags
- Distribution.Simple.Setup: configureLinker :: Verbosity -> ProgramConfiguration -> IO (FilePath, [String])
+ Distribution.Simple.Setup: configureLinker :: Verbosity -> ProgramDb -> IO (FilePath, [String])
- Distribution.Simple.Setup: defaultConfigFlags :: ProgramConfiguration -> ConfigFlags
+ Distribution.Simple.Setup: defaultConfigFlags :: ProgramDb -> ConfigFlags
- Distribution.Simple.Setup: fromFlag :: Flag a -> a
+ Distribution.Simple.Setup: fromFlag :: WithCallStack (Flag a -> a)
- Distribution.Simple.Setup: programConfigurationOptions :: ProgramConfiguration -> ShowOrParseArgs -> (flags -> [(String, [String])]) -> ([(String, [String])] -> (flags -> flags)) -> [OptionField flags]
+ Distribution.Simple.Setup: programConfigurationOptions :: ProgramDb -> ShowOrParseArgs -> (flags -> [(String, [String])]) -> ([(String, [String])] -> (flags -> flags)) -> [OptionField flags]
- Distribution.Simple.Setup: programConfigurationPaths' :: (String -> String) -> ProgramConfiguration -> ShowOrParseArgs -> (flags -> [(String, FilePath)]) -> ([(String, FilePath)] -> (flags -> flags)) -> [OptionField flags]
+ Distribution.Simple.Setup: programConfigurationPaths' :: (String -> String) -> ProgramDb -> ShowOrParseArgs -> (flags -> [(String, FilePath)]) -> ([(String, FilePath)] -> (flags -> flags)) -> [OptionField flags]
- Distribution.Simple.Setup: replCommand :: ProgramConfiguration -> CommandUI ReplFlags
+ Distribution.Simple.Setup: replCommand :: ProgramDb -> CommandUI ReplFlags
- Distribution.Simple.Test.ExeV10: runTest :: PackageDescription -> LocalBuildInfo -> TestFlags -> TestSuite -> IO TestSuiteLog
+ Distribution.Simple.Test.ExeV10: runTest :: PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> TestFlags -> TestSuite -> IO TestSuiteLog
- Distribution.Simple.Test.LibV09: runTest :: PackageDescription -> LocalBuildInfo -> TestFlags -> TestSuite -> IO TestSuiteLog
+ Distribution.Simple.Test.LibV09: runTest :: PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> TestFlags -> TestSuite -> IO TestSuiteLog
- Distribution.Simple.Test.LibV09: stubWriteLog :: FilePath -> String -> TestLogs -> IO ()
+ Distribution.Simple.Test.LibV09: stubWriteLog :: FilePath -> UnqualComponentName -> TestLogs -> NoCallStackIO ()
- Distribution.Simple.Test.LibV09: writeSimpleTestStub :: TestSuite -> FilePath -> IO ()
+ Distribution.Simple.Test.LibV09: writeSimpleTestStub :: TestSuite -> FilePath -> NoCallStackIO ()
- Distribution.Simple.Test.Log: TestSuiteLog :: String -> TestLogs -> FilePath -> TestSuiteLog
+ Distribution.Simple.Test.Log: TestSuiteLog :: UnqualComponentName -> TestLogs -> FilePath -> TestSuiteLog
- Distribution.Simple.Test.Log: [testSuiteName] :: TestSuiteLog -> String
+ Distribution.Simple.Test.Log: [testSuiteName] :: TestSuiteLog -> UnqualComponentName
- Distribution.Simple.UHC: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)
+ Distribution.Simple.UHC: configure :: Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)
- Distribution.Simple.UHC: getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack -> ProgramConfiguration -> IO InstalledPackageIndex
+ Distribution.Simple.UHC: getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex
- Distribution.Simple.UHC: registerPackage :: Verbosity -> Compiler -> ProgramConfiguration -> PackageDBStack -> InstalledPackageInfo -> IO ()
+ Distribution.Simple.UHC: registerPackage :: Verbosity -> Compiler -> ProgramDb -> PackageDBStack -> InstalledPackageInfo -> IO ()
- Distribution.Simple.UserHooks: UserHooks :: (Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO ()) -> IO (Maybe GenericPackageDescription) -> [PPSuffixHandler] -> [Program] -> (Args -> ConfigFlags -> IO HookedBuildInfo) -> ((GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo) -> (Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> BuildFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()) -> (Args -> BuildFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> ReplFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> ReplFlags -> [String] -> IO ()) -> (Args -> ReplFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> CleanFlags -> IO HookedBuildInfo) -> (PackageDescription -> () -> UserHooks -> CleanFlags -> IO ()) -> (Args -> CleanFlags -> PackageDescription -> () -> IO ()) -> (Args -> CopyFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags -> IO ()) -> (Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> InstallFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> InstallFlags -> IO ()) -> (Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> SDistFlags -> IO HookedBuildInfo) -> (PackageDescription -> Maybe LocalBuildInfo -> UserHooks -> SDistFlags -> IO ()) -> (Args -> SDistFlags -> PackageDescription -> Maybe LocalBuildInfo -> IO ()) -> (Args -> RegisterFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()) -> (Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> RegisterFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()) -> (Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> HscolourFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> HscolourFlags -> IO ()) -> (Args -> HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> HaddockFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> HaddockFlags -> IO ()) -> (Args -> HaddockFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> TestFlags -> IO HookedBuildInfo) -> (Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> TestFlags -> IO ()) -> (Args -> TestFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> BenchmarkFlags -> IO HookedBuildInfo) -> (Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> BenchmarkFlags -> IO ()) -> (Args -> BenchmarkFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> UserHooks
+ Distribution.Simple.UserHooks: UserHooks :: (Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO ()) -> IO (Maybe GenericPackageDescription) -> [PPSuffixHandler] -> [Program] -> (Args -> ConfigFlags -> IO HookedBuildInfo) -> ((GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo) -> (Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> BuildFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()) -> (Args -> BuildFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> ReplFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> ReplFlags -> [String] -> IO ()) -> (Args -> ReplFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> CleanFlags -> IO HookedBuildInfo) -> (PackageDescription -> () -> UserHooks -> CleanFlags -> IO ()) -> (Args -> CleanFlags -> PackageDescription -> () -> IO ()) -> (Args -> CopyFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags -> IO ()) -> (Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> InstallFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> InstallFlags -> IO ()) -> (Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> SDistFlags -> IO HookedBuildInfo) -> (PackageDescription -> Maybe LocalBuildInfo -> UserHooks -> SDistFlags -> IO ()) -> (Args -> SDistFlags -> PackageDescription -> Maybe LocalBuildInfo -> IO ()) -> (Args -> RegisterFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()) -> (Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> RegisterFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()) -> (Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> HscolourFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> HscolourFlags -> IO ()) -> (Args -> HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> DoctestFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> DoctestFlags -> IO ()) -> (Args -> DoctestFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> HaddockFlags -> IO HookedBuildInfo) -> (PackageDescription -> LocalBuildInfo -> UserHooks -> HaddockFlags -> IO ()) -> (Args -> HaddockFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> TestFlags -> IO HookedBuildInfo) -> (Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> TestFlags -> IO ()) -> (Args -> TestFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> (Args -> BenchmarkFlags -> IO HookedBuildInfo) -> (Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> BenchmarkFlags -> IO ()) -> (Args -> BenchmarkFlags -> PackageDescription -> LocalBuildInfo -> IO ()) -> UserHooks
- Distribution.Simple.Utils: doesExecutableExist :: FilePath -> IO Bool
+ Distribution.Simple.Utils: doesExecutableExist :: FilePath -> NoCallStackIO Bool
- Distribution.Simple.Utils: existsAndIsMoreRecentThan :: FilePath -> FilePath -> IO Bool
+ Distribution.Simple.Utils: existsAndIsMoreRecentThan :: FilePath -> FilePath -> NoCallStackIO Bool
- Distribution.Simple.Utils: fileHasBOM :: FilePath -> IO Bool
+ Distribution.Simple.Utils: fileHasBOM :: FilePath -> NoCallStackIO Bool
- Distribution.Simple.Utils: findAllFilesWithExtension :: [String] -> [FilePath] -> FilePath -> IO [FilePath]
+ Distribution.Simple.Utils: findAllFilesWithExtension :: [String] -> [FilePath] -> FilePath -> NoCallStackIO [FilePath]
- Distribution.Simple.Utils: findFileWithExtension :: [String] -> [FilePath] -> FilePath -> IO (Maybe FilePath)
+ Distribution.Simple.Utils: findFileWithExtension :: [String] -> [FilePath] -> FilePath -> NoCallStackIO (Maybe FilePath)
- Distribution.Simple.Utils: findFileWithExtension' :: [String] -> [FilePath] -> FilePath -> IO (Maybe (FilePath, FilePath))
+ Distribution.Simple.Utils: findFileWithExtension' :: [String] -> [FilePath] -> FilePath -> NoCallStackIO (Maybe (FilePath, FilePath))
- Distribution.Simple.Utils: findFirstFile :: (a -> FilePath) -> [a] -> IO (Maybe a)
+ Distribution.Simple.Utils: findFirstFile :: (a -> FilePath) -> [a] -> NoCallStackIO (Maybe a)
- Distribution.Simple.Utils: findPackageDesc :: FilePath -> IO (Either String FilePath)
+ Distribution.Simple.Utils: findPackageDesc :: FilePath -> NoCallStackIO (Either String FilePath)
- Distribution.Simple.Utils: handleDoesNotExist :: a -> IO a -> IO a
+ Distribution.Simple.Utils: handleDoesNotExist :: a -> NoCallStackIO a -> NoCallStackIO a
- Distribution.Simple.Utils: intercalate :: [a] -> [[a]] -> [a]
+ Distribution.Simple.Utils: intercalate :: () => [a] -> [[a]] -> [a]
- Distribution.Simple.Utils: isInSearchPath :: FilePath -> IO Bool
+ Distribution.Simple.Utils: isInSearchPath :: FilePath -> NoCallStackIO Bool
- Distribution.Simple.Utils: moreRecentFile :: FilePath -> FilePath -> IO Bool
+ Distribution.Simple.Utils: moreRecentFile :: FilePath -> FilePath -> NoCallStackIO Bool
- Distribution.Simple.Utils: ordNub :: (Ord a) => [a] -> [a]
+ Distribution.Simple.Utils: ordNub :: Ord a => [a] -> [a]
- Distribution.Simple.Utils: readUTF8File :: FilePath -> IO String
+ Distribution.Simple.Utils: readUTF8File :: FilePath -> NoCallStackIO String
- Distribution.Simple.Utils: setFileExecutable :: FilePath -> IO ()
+ Distribution.Simple.Utils: setFileExecutable :: FilePath -> NoCallStackIO ()
- Distribution.Simple.Utils: setFileOrdinary :: FilePath -> IO ()
+ Distribution.Simple.Utils: setFileOrdinary :: FilePath -> NoCallStackIO ()
- Distribution.Simple.Utils: withFileContents :: FilePath -> (String -> IO a) -> IO a
+ Distribution.Simple.Utils: withFileContents :: FilePath -> (String -> NoCallStackIO a) -> NoCallStackIO a
- Distribution.Simple.Utils: writeFileAtomic :: FilePath -> ByteString -> IO ()
+ Distribution.Simple.Utils: writeFileAtomic :: FilePath -> ByteString -> NoCallStackIO ()
- Distribution.Simple.Utils: writeUTF8File :: FilePath -> String -> IO ()
+ Distribution.Simple.Utils: writeUTF8File :: FilePath -> String -> NoCallStackIO ()
- Distribution.Version: data Version :: *
+ Distribution.Version: data Version
- Distribution.Version: foldVersionRange' :: a -> (Version -> a) -> (Version -> a) -> (Version -> a) -> (Version -> a) -> (Version -> a) -> (Version -> Version -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a) -> VersionRange -> a
+ Distribution.Version: foldVersionRange' :: a -> (Version -> a) -> (Version -> a) -> (Version -> a) -> (Version -> a) -> (Version -> a) -> (Version -> Version -> a) -> (Version -> Version -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a) -> VersionRange -> a
Files
- Cabal.cabal +237/−181
- Distribution/Backpack.hs +246/−0
- Distribution/Backpack/ComponentsGraph.hs +97/−0
- Distribution/Backpack/Configure.hs +357/−0
- Distribution/Backpack/ConfiguredComponent.hs +292/−0
- Distribution/Backpack/DescribeUnitId.hs +61/−0
- Distribution/Backpack/FullUnitId.hs +26/−0
- Distribution/Backpack/Id.hs +146/−0
- Distribution/Backpack/LinkedComponent.hs +393/−0
- Distribution/Backpack/MixLink.hs +192/−0
- Distribution/Backpack/ModSubst.hs +54/−0
- Distribution/Backpack/ModuleScope.hs +88/−0
- Distribution/Backpack/ModuleShape.hs +83/−0
- Distribution/Backpack/PreExistingComponent.hs +67/−0
- Distribution/Backpack/ReadyComponent.hs +368/−0
- Distribution/Backpack/UnifyM.hs +640/−0
- Distribution/Compat/Binary.hs +21/−6
- Distribution/Compat/Binary/Class.hs +11/−10
- Distribution/Compat/CopyFile.hs +9/−8
- Distribution/Compat/CreatePipe.hs +23/−8
- Distribution/Compat/DList.hs +40/−0
- Distribution/Compat/Environment.hs +58/−11
- Distribution/Compat/Exception.hs +10/−0
- Distribution/Compat/GetShortPathName.hs +8/−5
- Distribution/Compat/Graph.hs +417/−0
- Distribution/Compat/Map/Strict.hs +26/−0
- Distribution/Compat/MonadFail.hs +2/−2
- Distribution/Compat/Parsec.hs +73/−0
- Distribution/Compat/Prelude.hs +205/−0
- Distribution/Compat/Prelude/Internal.hs +14/−0
- Distribution/Compat/ReadP.hs +19/−5
- Distribution/Compat/SnocList.hs +33/−0
- Distribution/Compat/Stack.hs +113/−0
- Distribution/Compat/Time.hs +205/−0
- Distribution/Compiler.hs +29/−29
- Distribution/GetOpt.hs +23/−149
- Distribution/InstalledPackageInfo.hs +181/−36
- Distribution/Lex.hs +3/−18
- Distribution/License.hs +12/−16
- Distribution/Make.hs +8/−2
- Distribution/ModuleName.hs +72/−30
- Distribution/Package.hs +44/−184
- Distribution/PackageDescription.hs +122/−1277
- Distribution/PackageDescription/Check.hs +361/−88
- Distribution/PackageDescription/Configuration.hs +143/−257
- Distribution/PackageDescription/Parse.hs +253/−226
- Distribution/PackageDescription/Parsec.hs +569/−0
- Distribution/PackageDescription/Parsec/FieldDescr.hs +619/−0
- Distribution/PackageDescription/PrettyPrint.hs +194/−58
- Distribution/ParseUtils.hs +47/−93
- Distribution/Parsec/Class.hs +482/−0
- Distribution/Parsec/ConfVar.hs +142/−0
- Distribution/Parsec/Lexer.x +269/−0
- Distribution/Parsec/LexerMonad.hs +145/−0
- Distribution/Parsec/Parser.hs +403/−0
- Distribution/Parsec/Types/Common.hs +89/−0
- Distribution/Parsec/Types/Field.hs +82/−0
- Distribution/Parsec/Types/FieldDescr.hs +238/−0
- Distribution/Parsec/Types/ParseResult.hs +87/−0
- Distribution/PrettyUtils.hs +64/−0
- Distribution/ReadE.hs +3/−1
- Distribution/Simple.hs +148/−71
- Distribution/Simple/Bench.hs +21/−18
- Distribution/Simple/Build.hs +268/−189
- Distribution/Simple/Build/Macros.hs +81/−33
- Distribution/Simple/Build/PathsModule.hs +20/−15
- Distribution/Simple/BuildPaths.hs +120/−16
- Distribution/Simple/BuildTarget.hs +148/−56
- Distribution/Simple/BuildToolDepends.hs +96/−0
- Distribution/Simple/CCompiler.hs +3/−2
- Distribution/Simple/Command.hs +8/−7
- Distribution/Simple/Compiler.hs +73/−16
- Distribution/Simple/Configure.hs +1960/−2036
- Distribution/Simple/Doctest.hs +188/−0
- Distribution/Simple/GHC.hs +1742/−1237
- Distribution/Simple/GHC/IPI642.hs +16/−4
- Distribution/Simple/GHC/IPIConvert.hs +10/−6
- Distribution/Simple/GHC/ImplInfo.hs +21/−36
- Distribution/Simple/GHC/Internal.hs +194/−165
- Distribution/Simple/GHCJS.hs +124/−123
- Distribution/Simple/Haddock.hs +155/−165
- Distribution/Simple/HaskellSuite.hs +42/−36
- Distribution/Simple/Hpc.hs +16/−8
- Distribution/Simple/Install.hs +160/−80
- Distribution/Simple/InstallDirs.hs +40/−17
- Distribution/Simple/JHC.hs +31/−22
- Distribution/Simple/LHC.hs +125/−117
- Distribution/Simple/LocalBuildInfo.hs +201/−330
- Distribution/Simple/PackageIndex.hs +211/−111
- Distribution/Simple/PreProcess.hs +141/−84
- Distribution/Simple/PreProcess/Unlit.hs +5/−3
- Distribution/Simple/Program.hs +30/−12
- Distribution/Simple/Program/Ar.hs +13/−9
- Distribution/Simple/Program/Builtin.hs +30/−4
- Distribution/Simple/Program/Db.hs +57/−47
- Distribution/Simple/Program/Find.hs +13/−11
- Distribution/Simple/Program/GHC.hs +69/−30
- Distribution/Simple/Program/HcPkg.hs +94/−76
- Distribution/Simple/Program/Hpc.hs +7/−1
- Distribution/Simple/Program/Internal.hs +2/−2
- Distribution/Simple/Program/Ld.hs +6/−0
- Distribution/Simple/Program/Run.hs +37/−10
- Distribution/Simple/Program/Script.hs +3/−3
- Distribution/Simple/Program/Strip.hs +19/−14
- Distribution/Simple/Program/Types.hs +10/−4
- Distribution/Simple/Register.hs +210/−93
- Distribution/Simple/Setup.hs +432/−168
- Distribution/Simple/SrcDist.hs +97/−73
- Distribution/Simple/Test.hs +29/−22
- Distribution/Simple/Test/ExeV10.hs +25/−17
- Distribution/Simple/Test/LibV09.hs +50/−35
- Distribution/Simple/Test/Log.hs +10/−5
- Distribution/Simple/UHC.hs +34/−28
- Distribution/Simple/UserHooks.hs +19/−3
- Distribution/Simple/Utils.hs +416/−387
- Distribution/System.hs +41/−18
- Distribution/TestSuite.hs +6/−0
- Distribution/Text.hs +40/−5
- Distribution/Types/AbiHash.hs +55/−0
- Distribution/Types/AnnotatedId.hs +25/−0
- Distribution/Types/Benchmark.hs +70/−0
- Distribution/Types/BenchmarkInterface.hs +44/−0
- Distribution/Types/BenchmarkType.hs +38/−0
- Distribution/Types/BuildInfo.hs +197/−0
- Distribution/Types/BuildType.hs +48/−0
- Distribution/Types/Component.hs +82/−0
- Distribution/Types/ComponentId.hs +66/−0
- Distribution/Types/ComponentInclude.hs +32/−0
- Distribution/Types/ComponentLocalBuildInfo.hs +127/−0
- Distribution/Types/ComponentName.hs +89/−0
- Distribution/Types/ComponentRequestedSpec.hs +123/−0
- Distribution/Types/CondTree.hs +145/−0
- Distribution/Types/Condition.hs +133/−0
- Distribution/Types/Dependency.hs +64/−0
- Distribution/Types/DependencyMap.hs +74/−0
- Distribution/Types/ExeDependency.hs +46/−0
- Distribution/Types/Executable.hs +58/−0
- Distribution/Types/ExecutableScope.hs +41/−0
- Distribution/Types/ForeignLib.hs +188/−0
- Distribution/Types/ForeignLibOption.hs +32/−0
- Distribution/Types/ForeignLibType.hs +61/−0
- Distribution/Types/GenericPackageDescription.hs +162/−0
- Distribution/Types/HookedBuildInfo.hs +66/−0
- Distribution/Types/IncludeRenaming.hs +59/−0
- Distribution/Types/LegacyExeDependency.hs +51/−0
- Distribution/Types/Library.hs +80/−0
- Distribution/Types/LocalBuildInfo.hs +332/−0
- Distribution/Types/Mixin.hs +32/−0
- Distribution/Types/Module.hs +42/−0
- Distribution/Types/ModuleReexport.hs +49/−0
- Distribution/Types/ModuleRenaming.hs +91/−0
- Distribution/Types/MungedPackageId.hs +55/−0
- Distribution/Types/MungedPackageName.hs +134/−0
- Distribution/Types/PackageDescription.hs +415/−0
- Distribution/Types/PackageId.hs +45/−0
- Distribution/Types/PackageName.hs +55/−0
- Distribution/Types/PkgconfigDependency.hs +38/−0
- Distribution/Types/PkgconfigName.hs +58/−0
- Distribution/Types/SetupBuildInfo.hs +38/−0
- Distribution/Types/SourceRepo.hs +166/−0
- Distribution/Types/TargetInfo.hs +33/−0
- Distribution/Types/TestSuite.hs +75/−0
- Distribution/Types/TestSuiteInterface.hs +50/−0
- Distribution/Types/TestType.hs +38/−0
- Distribution/Types/UnitId.hs +117/−0
- Distribution/Types/UnqualComponentName.hs +84/−0
- Distribution/Utils/Base62.hs +22/−0
- Distribution/Utils/Generic.hs +420/−0
- Distribution/Utils/LogProgress.hs +89/−0
- Distribution/Utils/MapAccum.hs +34/−0
- Distribution/Utils/NubList.hs +7/−5
- Distribution/Utils/Progress.hs +67/−0
- Distribution/Utils/ShortText.hs +111/−0
- Distribution/Utils/String.hs +85/−0
- Distribution/Utils/UnionFind.hs +102/−0
- Distribution/Verbosity.hs +195/−29
- Distribution/Version.hs +287/−83
- LICENSE +2/−5
- Language/Haskell/Extension.hs +14/−10
- changelog +128/−15
- dist/build/Distribution/Parsec/Lexer.hs +491/−0
- doc/API/Cabal/Cabal.haddock binary
- doc/API/Cabal/Distribution-Backpack-ComponentsGraph.html +11/−0
- doc/API/Cabal/Distribution-Backpack-Configure.html +5/−0
- doc/API/Cabal/Distribution-Backpack-ConfiguredComponent.html +16/−0
- doc/API/Cabal/Distribution-Backpack-DescribeUnitId.html +8/−0
- doc/API/Cabal/Distribution-Backpack-FullUnitId.html +4/−0
- doc/API/Cabal/Distribution-Backpack-LinkedComponent.html +20/−0
- doc/API/Cabal/Distribution-Backpack-ModSubst.html +5/−0
- doc/API/Cabal/Distribution-Backpack-ModuleShape.html +6/−0
- doc/API/Cabal/Distribution-Backpack.html +39/−0
- doc/API/Cabal/Distribution-Compat-Binary.html +4/−0
- doc/API/Cabal/Distribution-Compat-CreatePipe.html +4/−0
- doc/API/Cabal/Distribution-Compat-DList.html +4/−0
- doc/API/Cabal/Distribution-Compat-Exception.html +4/−0
- doc/API/Cabal/Distribution-Compat-Graph.html +46/−0
- doc/API/Cabal/Distribution-Compat-Map-Strict.html +4/−0
- doc/API/Cabal/Distribution-Compat-Prelude-Internal.html too large to diff
- doc/API/Cabal/Distribution-Compat-ReadP.html +41/−0
- doc/API/Cabal/Distribution-Compat-Semigroup.html +33/−0
- doc/API/Cabal/Distribution-Compat-Stack.html +41/−0
- doc/API/Cabal/Distribution-Compat-Time.html +12/−0
- doc/API/Cabal/Distribution-Compiler.html +26/−0
- doc/API/Cabal/Distribution-InstalledPackageInfo.html +30/−0
- doc/API/Cabal/Distribution-License.html +34/−0
- doc/API/Cabal/Distribution-Make.html +46/−0
- doc/API/Cabal/Distribution-ModuleName.html +8/−0
- doc/API/Cabal/Distribution-Package.html +14/−0
- doc/API/Cabal/Distribution-PackageDescription-Check.html +39/−0
- doc/API/Cabal/Distribution-PackageDescription-Configuration.html +44/−0
- doc/API/Cabal/Distribution-PackageDescription-Parse.html +13/−0
- doc/API/Cabal/Distribution-PackageDescription-PrettyPrint.html +4/−0
- doc/API/Cabal/Distribution-PackageDescription-Utils.html +4/−0
- doc/API/Cabal/Distribution-PackageDescription.html +186/−0
- doc/API/Cabal/Distribution-ReadE.html +4/−0
- doc/API/Cabal/Distribution-Simple-Bench.html +6/−0
- doc/API/Cabal/Distribution-Simple-Build-Macros.html +10/−0
- doc/API/Cabal/Distribution-Simple-Build-PathsModule.html +9/−0
- doc/API/Cabal/Distribution-Simple-Build.html +7/−0
- doc/API/Cabal/Distribution-Simple-BuildPaths.html +11/−0
- doc/API/Cabal/Distribution-Simple-BuildTarget.html +10/−0
- doc/API/Cabal/Distribution-Simple-BuildToolDepends.html +25/−0
- doc/API/Cabal/Distribution-Simple-CCompiler.html +13/−0
- doc/API/Cabal/Distribution-Simple-Command.html +30/−0
- doc/API/Cabal/Distribution-Simple-Compiler.html +42/−0
- doc/API/Cabal/Distribution-Simple-Configure.html +97/−0
- doc/API/Cabal/Distribution-Simple-Doctest.html +4/−0
- doc/API/Cabal/Distribution-Simple-GHC.html +29/−0
- doc/API/Cabal/Distribution-Simple-GHCJS.html +6/−0
- doc/API/Cabal/Distribution-Simple-Haddock.html +8/−0
- doc/API/Cabal/Distribution-Simple-HaskellSuite.html +4/−0
- doc/API/Cabal/Distribution-Simple-Hpc.html +7/−0
- doc/API/Cabal/Distribution-Simple-Install.html +9/−0
- doc/API/Cabal/Distribution-Simple-InstallDirs.html +40/−0
- doc/API/Cabal/Distribution-Simple-JHC.html +7/−0
- doc/API/Cabal/Distribution-Simple-LHC.html +19/−0
- doc/API/Cabal/Distribution-Simple-LocalBuildInfo.html +154/−0
- doc/API/Cabal/Distribution-Simple-PackageIndex.html +63/−0
- doc/API/Cabal/Distribution-Simple-PreProcess-Unlit.html +6/−0
- doc/API/Cabal/Distribution-Simple-PreProcess.html +41/−0
- doc/API/Cabal/Distribution-Simple-Program-Ar.html +14/−0
- doc/API/Cabal/Distribution-Simple-Program-Builtin.html +5/−0
- doc/API/Cabal/Distribution-Simple-Program-Db.html +54/−0
- doc/API/Cabal/Distribution-Simple-Program-Find.html +20/−0
- doc/API/Cabal/Distribution-Simple-Program-GHC.html +27/−0
- doc/API/Cabal/Distribution-Simple-Program-HcPkg.html +17/−0
- doc/API/Cabal/Distribution-Simple-Program-Hpc.html +8/−0
- doc/API/Cabal/Distribution-Simple-Program-Internal.html +7/−0
- doc/API/Cabal/Distribution-Simple-Program-Ld.html +4/−0
- doc/API/Cabal/Distribution-Simple-Program-Run.html +20/−0
- doc/API/Cabal/Distribution-Simple-Program-Script.html +6/−0
- doc/API/Cabal/Distribution-Simple-Program-Strip.html +4/−0
- doc/API/Cabal/Distribution-Simple-Program-Types.html +42/−0
- doc/API/Cabal/Distribution-Simple-Program.html +97/−0
- doc/API/Cabal/Distribution-Simple-Register.html +27/−0
- doc/API/Cabal/Distribution-Simple-Setup.html +56/−0
- doc/API/Cabal/Distribution-Simple-SrcDist.html +19/−0
- doc/API/Cabal/Distribution-Simple-Test-ExeV10.html +4/−0
- doc/API/Cabal/Distribution-Simple-Test-LibV09.html +10/−0
- doc/API/Cabal/Distribution-Simple-Test-Log.html +11/−0
- doc/API/Cabal/Distribution-Simple-Test.html +6/−0
- doc/API/Cabal/Distribution-Simple-UHC.html +7/−0
- doc/API/Cabal/Distribution-Simple-UserHooks.html +21/−0
- doc/API/Cabal/Distribution-Simple-Utils.html +116/−0
- doc/API/Cabal/Distribution-Simple.html +29/−0
- doc/API/Cabal/Distribution-System.html +33/−0
- doc/API/Cabal/Distribution-TestSuite.html +19/−0
- doc/API/Cabal/Distribution-Text.html +10/−0
- doc/API/Cabal/Distribution-Types-AbiHash.html +6/−0
- doc/API/Cabal/Distribution-Types-AnnotatedId.html +6/−0
- doc/API/Cabal/Distribution-Types-Benchmark.html +5/−0
- doc/API/Cabal/Distribution-Types-BenchmarkInterface.html +11/−0
- doc/API/Cabal/Distribution-Types-BenchmarkType.html +4/−0
- doc/API/Cabal/Distribution-Types-BuildInfo.html +12/−0
- doc/API/Cabal/Distribution-Types-BuildType.html +9/−0
- doc/API/Cabal/Distribution-Types-Component.html +6/−0
- doc/API/Cabal/Distribution-Types-ComponentId.html +9/−0
- doc/API/Cabal/Distribution-Types-ComponentInclude.html +5/−0
- doc/API/Cabal/Distribution-Types-ComponentLocalBuildInfo.html +91/−0
- doc/API/Cabal/Distribution-Types-ComponentName.html +8/−0
- doc/API/Cabal/Distribution-Types-ComponentRequestedSpec.html +30/−0
- doc/API/Cabal/Distribution-Types-CondTree.html +26/−0
- doc/API/Cabal/Distribution-Types-Condition.html +4/−0
- doc/API/Cabal/Distribution-Types-Dependency.html +5/−0
- doc/API/Cabal/Distribution-Types-DependencyMap.html +5/−0
- doc/API/Cabal/Distribution-Types-ExeDependency.html +4/−0
- doc/API/Cabal/Distribution-Types-Executable.html +5/−0
- doc/API/Cabal/Distribution-Types-ExecutableScope.html +4/−0
- doc/API/Cabal/Distribution-Types-ForeignLib.html +17/−0
- doc/API/Cabal/Distribution-Types-ForeignLibOption.html +8/−0
- doc/API/Cabal/Distribution-Types-ForeignLibType.html +5/−0
- doc/API/Cabal/Distribution-Types-GenericPackageDescription.html +9/−0
- doc/API/Cabal/Distribution-Types-HookedBuildInfo.html +41/−0
- doc/API/Cabal/Distribution-Types-IncludeRenaming.html +5/−0
- doc/API/Cabal/Distribution-Types-LegacyExeDependency.html +6/−0
- doc/API/Cabal/Distribution-Types-Library.html +14/−0
- doc/API/Cabal/Distribution-Types-LocalBuildInfo.html +56/−0
- doc/API/Cabal/Distribution-Types-Mixin.html +4/−0
- doc/API/Cabal/Distribution-Types-Module.html +11/−0
- doc/API/Cabal/Distribution-Types-ModuleReexport.html +4/−0
- doc/API/Cabal/Distribution-Types-ModuleRenaming.html +14/−0
- doc/API/Cabal/Distribution-Types-MungedPackageId.html +8/−0
- doc/API/Cabal/Distribution-Types-MungedPackageName.html +26/−0
- doc/API/Cabal/Distribution-Types-PackageDescription.html +62/−0
- doc/API/Cabal/Distribution-Types-PackageId.html +4/−0
- doc/API/Cabal/Distribution-Types-PackageName.html +6/−0
- doc/API/Cabal/Distribution-Types-PkgconfigDependency.html +4/−0
- doc/API/Cabal/Distribution-Types-PkgconfigName.html +5/−0
- doc/API/Cabal/Distribution-Types-SetupBuildInfo.html +7/−0
- doc/API/Cabal/Distribution-Types-SourceRepo.html +34/−0
- doc/API/Cabal/Distribution-Types-TargetInfo.html +8/−0
- doc/API/Cabal/Distribution-Types-TestSuite.html +5/−0
- doc/API/Cabal/Distribution-Types-TestSuiteInterface.html +11/−0
- doc/API/Cabal/Distribution-Types-TestType.html +4/−0
- doc/API/Cabal/Distribution-Types-UnitId.html +34/−0
- doc/API/Cabal/Distribution-Types-UnqualComponentName.html +10/−0
- doc/API/Cabal/Distribution-Utils-Generic.html +59/−0
- doc/API/Cabal/Distribution-Utils-LogProgress.html +6/−0
- doc/API/Cabal/Distribution-Utils-MapAccum.html +4/−0
- doc/API/Cabal/Distribution-Utils-NubList.html +15/−0
- doc/API/Cabal/Distribution-Utils-Progress.html +11/−0
- doc/API/Cabal/Distribution-Utils-ShortText.html +8/−0
- doc/API/Cabal/Distribution-Verbosity.html +11/−0
- doc/API/Cabal/Distribution-Version.html +78/−0
- doc/API/Cabal/Language-Haskell-Extension.html +113/−0
- doc/API/Cabal/doc-index-124.html +4/−0
- doc/API/Cabal/doc-index-33.html +4/−0
- doc/API/Cabal/doc-index-36.html +4/−0
- doc/API/Cabal/doc-index-38.html +4/−0
- doc/API/Cabal/doc-index-42.html +4/−0
- doc/API/Cabal/doc-index-43.html +4/−0
- doc/API/Cabal/doc-index-45.html +4/−0
- doc/API/Cabal/doc-index-46.html +4/−0
- doc/API/Cabal/doc-index-47.html +4/−0
- doc/API/Cabal/doc-index-60.html +4/−0
- doc/API/Cabal/doc-index-61.html +4/−0
- doc/API/Cabal/doc-index-62.html +4/−0
- doc/API/Cabal/doc-index-92.html +4/−0
- doc/API/Cabal/doc-index-94.html +4/−0
- doc/API/Cabal/doc-index-A.html +4/−0
- doc/API/Cabal/doc-index-All.html +4/−0
- doc/API/Cabal/doc-index-B.html +4/−0
- doc/API/Cabal/doc-index-C.html +4/−0
- doc/API/Cabal/doc-index-D.html +4/−0
- doc/API/Cabal/doc-index-E.html +4/−0
- doc/API/Cabal/doc-index-F.html +4/−0
- doc/API/Cabal/doc-index-G.html +4/−0
- doc/API/Cabal/doc-index-H.html +4/−0
- doc/API/Cabal/doc-index-I.html +4/−0
- doc/API/Cabal/doc-index-J.html +4/−0
- doc/API/Cabal/doc-index-K.html +4/−0
- doc/API/Cabal/doc-index-L.html +4/−0
- doc/API/Cabal/doc-index-M.html +4/−0
- doc/API/Cabal/doc-index-N.html +4/−0
- doc/API/Cabal/doc-index-O.html +4/−0
- doc/API/Cabal/doc-index-P.html +4/−0
- doc/API/Cabal/doc-index-Q.html +4/−0
- doc/API/Cabal/doc-index-R.html +4/−0
- doc/API/Cabal/doc-index-S.html +4/−0
- doc/API/Cabal/doc-index-T.html +4/−0
- doc/API/Cabal/doc-index-U.html +4/−0
- doc/API/Cabal/doc-index-V.html +4/−0
- doc/API/Cabal/doc-index-W.html +4/−0
- doc/API/Cabal/doc-index-X.html +4/−0
- doc/API/Cabal/doc-index-Y.html +4/−0
- doc/API/Cabal/doc-index-Z.html +4/−0
- doc/API/Cabal/doc-index.html +4/−0
- doc/API/Cabal/haddock-util.js +186/−0
- doc/API/Cabal/hslogo-16.png binary
- doc/API/Cabal/index.html +7/−0
- doc/API/Cabal/minus.gif binary
- doc/API/Cabal/ocean.css +618/−0
- doc/API/Cabal/plus.gif binary
- doc/API/Cabal/synopsis.png binary
- doc/Cabal.css +0/−49
- doc/README.md +122/−0
- doc/bugs-and-stability.rst +6/−0
- doc/concepts-and-development.rst +7/−0
- doc/conf.py +207/−0
- doc/config-and-install.rst +5/−0
- doc/developing-packages.markdown +0/−2238
- doc/developing-packages.rst +2861/−0
- doc/images/Cabal-dark.png binary
- doc/index.markdown +0/−201
- doc/index.rst +14/−0
- doc/installing-packages.markdown +0/−1303
- doc/installing-packages.rst +1702/−0
- doc/intro.rst +200/−0
- doc/misc.markdown +0/−109
- doc/misc.rst +103/−0
- doc/nix-local-build-overview.rst +34/−0
- doc/nix-local-build.rst +1709/−0
- doc/references.inc +22/−0
- tests/DiffInstances.hs +107/−0
- tests/PackageTests.hs +0/−283
- tests/PackageTests/AllowNewer/AllowNewer.cabal +0/−25
- tests/PackageTests/AllowNewer/benchmarks/Bench.hs +0/−4
- tests/PackageTests/AllowNewer/src/Foo.hs +0/−4
- tests/PackageTests/AllowNewer/tests/Test.hs +0/−4
- tests/PackageTests/BenchmarkExeV10/Foo.hs +0/−4
- tests/PackageTests/BenchmarkExeV10/benchmarks/bench-Foo.hs +0/−8
- tests/PackageTests/BenchmarkExeV10/my.cabal +0/−15
- tests/PackageTests/BenchmarkOptions/BenchmarkOptions.cabal +0/−20
- tests/PackageTests/BenchmarkOptions/test-BenchmarkOptions.hs +0/−11
- tests/PackageTests/BenchmarkStanza/Check.hs +0/−30
- tests/PackageTests/BenchmarkStanza/my.cabal +0/−19
- tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/GlobalBuildDepsNotAdditive1.cabal +0/−20
- tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/GlobalBuildDepsNotAdditive2.cabal +0/−20
- tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/lemon.hs +0/−7
- tests/PackageTests/BuildDeps/InternalLibrary0/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/InternalLibrary0/my.cabal +0/−24
- tests/PackageTests/BuildDeps/InternalLibrary0/programs/lemon.hs +0/−6
- tests/PackageTests/BuildDeps/InternalLibrary1/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/InternalLibrary1/my.cabal +0/−23
- tests/PackageTests/BuildDeps/InternalLibrary1/programs/lemon.hs +0/−6
- tests/PackageTests/BuildDeps/InternalLibrary2/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/InternalLibrary2/my.cabal +0/−23
- tests/PackageTests/BuildDeps/InternalLibrary2/programs/lemon.hs +0/−6
- tests/PackageTests/BuildDeps/InternalLibrary2/to-install/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/InternalLibrary2/to-install/my.cabal +0/−18
- tests/PackageTests/BuildDeps/InternalLibrary3/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/InternalLibrary3/my.cabal +0/−23
- tests/PackageTests/BuildDeps/InternalLibrary3/programs/lemon.hs +0/−6
- tests/PackageTests/BuildDeps/InternalLibrary3/to-install/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/InternalLibrary3/to-install/my.cabal +0/−18
- tests/PackageTests/BuildDeps/InternalLibrary4/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/InternalLibrary4/my.cabal +0/−23
- tests/PackageTests/BuildDeps/InternalLibrary4/programs/lemon.hs +0/−6
- tests/PackageTests/BuildDeps/InternalLibrary4/to-install/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/InternalLibrary4/to-install/my.cabal +0/−18
- tests/PackageTests/BuildDeps/SameDepsAllRound/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/SameDepsAllRound/SameDepsAllRound.cabal +0/−31
- tests/PackageTests/BuildDeps/SameDepsAllRound/lemon.hs +0/−7
- tests/PackageTests/BuildDeps/SameDepsAllRound/pineapple.hs +0/−7
- tests/PackageTests/BuildDeps/TargetSpecificDeps1/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/TargetSpecificDeps1/lemon.hs +0/−7
- tests/PackageTests/BuildDeps/TargetSpecificDeps1/my.cabal +0/−22
- tests/PackageTests/BuildDeps/TargetSpecificDeps2/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/TargetSpecificDeps2/lemon.hs +0/−5
- tests/PackageTests/BuildDeps/TargetSpecificDeps2/my.cabal +0/−24
- tests/PackageTests/BuildDeps/TargetSpecificDeps3/MyLibrary.hs +0/−10
- tests/PackageTests/BuildDeps/TargetSpecificDeps3/lemon.hs +0/−7
- tests/PackageTests/BuildDeps/TargetSpecificDeps3/my.cabal +0/−22
- tests/PackageTests/BuildTargetErrors/BuildTargetErrors.cabal +0/−10
- tests/PackageTests/BuildTargetErrors/Main.hs +0/−1
- tests/PackageTests/BuildTestSuiteDetailedV09/Dummy2.hs +0/−6
- tests/PackageTests/BuildableField/BuildableField.cabal +0/−16
- tests/PackageTests/BuildableField/Main.hs +0/−4
- tests/PackageTests/CMain/Bar.hs +0/−7
- tests/PackageTests/CMain/foo.c +0/−13
- tests/PackageTests/CMain/my.cabal +0/−10
- tests/PackageTests/DeterministicAr/Check.hs +0/−85
- tests/PackageTests/DeterministicAr/Lib.hs +0/−5
- tests/PackageTests/DeterministicAr/my.cabal +0/−17
- tests/PackageTests/DuplicateModuleName/DuplicateModuleName.cabal +0/−25
- tests/PackageTests/DuplicateModuleName/src/Foo.hs +0/−12
- tests/PackageTests/DuplicateModuleName/tests/Foo.hs +0/−18
- tests/PackageTests/DuplicateModuleName/tests2/Foo.hs +0/−18
- tests/PackageTests/EmptyLib/empty/empty.cabal +0/−6
- tests/PackageTests/GhcPkgGuess/SameDirectory/SameDirectory.cabal +0/−11
- tests/PackageTests/GhcPkgGuess/SameDirectory/ghc +0/−6
- tests/PackageTests/GhcPkgGuess/SameDirectory/ghc-pkg +0/−3
- tests/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/SameDirectory.cabal +0/−11
- tests/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/ghc-7.10 +0/−6
- tests/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/ghc-pkg-ghc-7.10 +0/−3
- tests/PackageTests/GhcPkgGuess/SameDirectoryVersion/SameDirectory.cabal +0/−11
- tests/PackageTests/GhcPkgGuess/SameDirectoryVersion/ghc-7.10 +0/−6
- tests/PackageTests/GhcPkgGuess/SameDirectoryVersion/ghc-pkg-7.10 +0/−3
- tests/PackageTests/GhcPkgGuess/Symlink/SameDirectory.cabal +0/−11
- tests/PackageTests/GhcPkgGuess/Symlink/bin/ghc +0/−6
- tests/PackageTests/GhcPkgGuess/Symlink/bin/ghc-pkg +0/−3
- tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/SameDirectory.cabal +0/−11
- tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/bin/ghc-7.10 +0/−6
- tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/bin/ghc-pkg-7.10 +0/−3
- tests/PackageTests/GhcPkgGuess/SymlinkVersion/SameDirectory.cabal +0/−11
- tests/PackageTests/GhcPkgGuess/SymlinkVersion/bin/ghc-7.10 +0/−6
- tests/PackageTests/GhcPkgGuess/SymlinkVersion/bin/ghc-pkg-ghc-7.10 +0/−3
- tests/PackageTests/Haddock/CPP.hs +0/−9
- tests/PackageTests/Haddock/Literate.lhs +0/−4
- tests/PackageTests/Haddock/NoCPP.hs +0/−8
- tests/PackageTests/Haddock/Simple.hs +0/−4
- tests/PackageTests/Haddock/my.cabal +0/−16
- tests/PackageTests/HaddockNewline/A.hs +0/−1
- tests/PackageTests/HaddockNewline/HaddockNewline.cabal +0/−20
- tests/PackageTests/HaddockNewline/Setup.hs +0/−2
- tests/PackageTests/Options.hs +0/−19
- tests/PackageTests/OrderFlags/Foo.hs +0/−8
- tests/PackageTests/OrderFlags/my.cabal +0/−20
- tests/PackageTests/PackageTester.hs +0/−693
- tests/PackageTests/PathsModule/Executable/Main.hs +0/−8
- tests/PackageTests/PathsModule/Executable/my.cabal +0/−16
- tests/PackageTests/PathsModule/Library/my.cabal +0/−15
- tests/PackageTests/PreProcess/Foo.hsc +0/−1
- tests/PackageTests/PreProcess/Main.hs +0/−6
- tests/PackageTests/PreProcess/my.cabal +0/−32
- tests/PackageTests/PreProcessExtraSources/Foo.hsc +0/−9
- tests/PackageTests/PreProcessExtraSources/Main.hs +0/−8
- tests/PackageTests/PreProcessExtraSources/my.cabal +0/−32
- tests/PackageTests/ReexportedModules/ReexportedModules.cabal +0/−11
- tests/PackageTests/TemplateHaskell/dynamic/Exe.hs +0/−6
- tests/PackageTests/TemplateHaskell/dynamic/Lib.hs +0/−6
- tests/PackageTests/TemplateHaskell/dynamic/TH.hs +0/−4
- tests/PackageTests/TemplateHaskell/dynamic/my.cabal +0/−15
- tests/PackageTests/TemplateHaskell/profiling/Exe.hs +0/−6
- tests/PackageTests/TemplateHaskell/profiling/Lib.hs +0/−6
- tests/PackageTests/TemplateHaskell/profiling/TH.hs +0/−4
- tests/PackageTests/TemplateHaskell/profiling/my.cabal +0/−15
- tests/PackageTests/TemplateHaskell/vanilla/Exe.hs +0/−6
- tests/PackageTests/TemplateHaskell/vanilla/Lib.hs +0/−6
- tests/PackageTests/TemplateHaskell/vanilla/TH.hs +0/−4
- tests/PackageTests/TemplateHaskell/vanilla/my.cabal +0/−15
- tests/PackageTests/TestNameCollision/child/Child.hs +0/−2
- tests/PackageTests/TestNameCollision/child/child.cabal +0/−19
- tests/PackageTests/TestNameCollision/child/tests/Test.hs +0/−13
- tests/PackageTests/TestNameCollision/parent/Parent.hs +0/−1
- tests/PackageTests/TestNameCollision/parent/parent.cabal +0/−13
- tests/PackageTests/TestOptions/TestOptions.cabal +0/−20
- tests/PackageTests/TestOptions/test-TestOptions.hs +0/−11
- tests/PackageTests/TestStanza/Check.hs +0/−29
- tests/PackageTests/TestStanza/my.cabal +0/−19
- tests/PackageTests/TestSuiteTests/ExeV10/Check.hs +0/−129
- tests/PackageTests/TestSuiteTests/ExeV10/Foo.hs +0/−4
- tests/PackageTests/TestSuiteTests/ExeV10/my.cabal +0/−21
- tests/PackageTests/TestSuiteTests/ExeV10/tests/test-Foo.hs +0/−12
- tests/PackageTests/TestSuiteTests/ExeV10/tests/test-Short.hs +0/−11
- tests/PackageTests/TestSuiteTests/LibV09/Lib.hs +0/−11
- tests/PackageTests/TestSuiteTests/LibV09/LibV09.cabal +0/−21
- tests/PackageTests/TestSuiteTests/LibV09/tests/Deadlock.hs +0/−8
- tests/PackageTests/Tests.hs +0/−314
- tests/PackageTests/UniqueIPID/P1/M.hs +0/−3
- tests/PackageTests/UniqueIPID/P1/my.cabal +0/−15
- tests/PackageTests/UniqueIPID/P2/M.hs +0/−3
- tests/PackageTests/UniqueIPID/P2/my.cabal +0/−15
- tests/PackageTests/multInst/my.cabal +0/−16
- tests/ParserHackageTests.hs +365/−0
- tests/ParserTests.hs +56/−0
- tests/ParserTests/warnings/bom.cabal +7/−0
- tests/ParserTests/warnings/bool.cabal +12/−0
- tests/ParserTests/warnings/deprecatedfield.cabal +7/−0
- tests/ParserTests/warnings/extratestmodule.cabal +11/−0
- tests/ParserTests/warnings/gluedop.cabal +9/−0
- tests/ParserTests/warnings/nbsp.cabal +7/−0
- tests/ParserTests/warnings/newsyntax.cabal +6/−0
- tests/ParserTests/warnings/oldsyntax.cabal +6/−0
- tests/ParserTests/warnings/subsection.cabal +9/−0
- tests/ParserTests/warnings/trailingfield.cabal +9/−0
- tests/ParserTests/warnings/unknownfield.cabal +8/−0
- tests/ParserTests/warnings/unknownsection.cabal +10/−0
- tests/ParserTests/warnings/utf8.cabal +8/−0
- tests/ParserTests/warnings/versiontag.cabal +7/−0
- tests/README.md +4/−37
- tests/Setup.hs +0/−3
- tests/StructDiff.hs +162/−0
- tests/UnitTests.hs +53/−3
- tests/UnitTests/Distribution/Compat/Graph.hs +91/−0
- tests/UnitTests/Distribution/Compat/Time.hs +49/−0
- tests/UnitTests/Distribution/Simple/Utils.hs +42/−1
- tests/UnitTests/Distribution/Utils/NubList.hs +38/−8
- tests/UnitTests/Distribution/Utils/ShortText.hs +33/−0
- tests/UnitTests/Distribution/Version.hs +167/−86
Cabal.cabal view
@@ -1,15 +1,13 @@-name: Cabal-version: 1.24.2.0-copyright: 2003-2006, Isaac Jones- 2005-2011, Duncan Coutts-license: BSD3-license-file: LICENSE-author: Isaac Jones <ijones@syntaxpolice.org>- Duncan Coutts <duncan@community.haskell.org>-maintainer: cabal-devel@haskell.org-homepage: http://www.haskell.org/cabal/-bug-reports: https://github.com/haskell/cabal/issues-synopsis: A framework for packaging Haskell software+name: Cabal+version: 2.0.0.2+copyright: 2003-2017, Cabal Development Team (see AUTHORS file)+license: BSD3+license-file: LICENSE+author: Cabal Development Team <cabal-devel@haskell.org>+maintainer: cabal-devel@haskell.org+homepage: http://www.haskell.org/cabal/+bug-reports: https://github.com/haskell/cabal/issues+synopsis: A framework for packaging Haskell software description: The Haskell Common Architecture for Building Applications and Libraries: a framework defining a common interface for authors to more@@ -17,157 +15,37 @@ . The Haskell Cabal is part of a larger infrastructure for distributing, organizing, and cataloging Haskell libraries and tools.-category: Distribution-cabal-version: >=1.10-build-type: Simple+category: Distribution+cabal-version: >=1.10+build-type: Simple -- If we use a new Cabal feature, this needs to be changed to Custom so -- we can bootstrap. extra-source-files: README.md tests/README.md changelog- doc/Cabal.css doc/developing-packages.markdown doc/index.markdown- doc/installing-packages.markdown- doc/misc.markdown+ doc/bugs-and-stability.rst doc/concepts-and-development.rst+ doc/conf.py doc/config-and-install.rst doc/developing-packages.rst+ doc/images/Cabal-dark.png doc/index.rst doc/installing-packages.rst+ doc/intro.rst doc/misc.rst doc/nix-local-build-overview.rst+ doc/nix-local-build.rst doc/README.md doc/references.inc -- Generated with 'misc/gen-extra-source-files.sh' -- Do NOT edit this section manually; instead, run the script. -- BEGIN gen-extra-source-files- tests/PackageTests/AllowNewer/AllowNewer.cabal- tests/PackageTests/AllowNewer/benchmarks/Bench.hs- tests/PackageTests/AllowNewer/src/Foo.hs- tests/PackageTests/AllowNewer/tests/Test.hs- tests/PackageTests/BenchmarkExeV10/Foo.hs- tests/PackageTests/BenchmarkExeV10/benchmarks/bench-Foo.hs- tests/PackageTests/BenchmarkExeV10/my.cabal- tests/PackageTests/BenchmarkOptions/BenchmarkOptions.cabal- tests/PackageTests/BenchmarkOptions/test-BenchmarkOptions.hs- tests/PackageTests/BenchmarkStanza/my.cabal- tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/GlobalBuildDepsNotAdditive1.cabal- tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/MyLibrary.hs- tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/GlobalBuildDepsNotAdditive2.cabal- tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/lemon.hs- tests/PackageTests/BuildDeps/InternalLibrary0/MyLibrary.hs- tests/PackageTests/BuildDeps/InternalLibrary0/my.cabal- tests/PackageTests/BuildDeps/InternalLibrary0/programs/lemon.hs- tests/PackageTests/BuildDeps/InternalLibrary1/MyLibrary.hs- tests/PackageTests/BuildDeps/InternalLibrary1/my.cabal- tests/PackageTests/BuildDeps/InternalLibrary1/programs/lemon.hs- tests/PackageTests/BuildDeps/InternalLibrary2/MyLibrary.hs- tests/PackageTests/BuildDeps/InternalLibrary2/my.cabal- tests/PackageTests/BuildDeps/InternalLibrary2/programs/lemon.hs- tests/PackageTests/BuildDeps/InternalLibrary2/to-install/MyLibrary.hs- tests/PackageTests/BuildDeps/InternalLibrary2/to-install/my.cabal- tests/PackageTests/BuildDeps/InternalLibrary3/MyLibrary.hs- tests/PackageTests/BuildDeps/InternalLibrary3/my.cabal- tests/PackageTests/BuildDeps/InternalLibrary3/programs/lemon.hs- tests/PackageTests/BuildDeps/InternalLibrary3/to-install/MyLibrary.hs- tests/PackageTests/BuildDeps/InternalLibrary3/to-install/my.cabal- tests/PackageTests/BuildDeps/InternalLibrary4/MyLibrary.hs- tests/PackageTests/BuildDeps/InternalLibrary4/my.cabal- tests/PackageTests/BuildDeps/InternalLibrary4/programs/lemon.hs- tests/PackageTests/BuildDeps/InternalLibrary4/to-install/MyLibrary.hs- tests/PackageTests/BuildDeps/InternalLibrary4/to-install/my.cabal- tests/PackageTests/BuildDeps/SameDepsAllRound/MyLibrary.hs- tests/PackageTests/BuildDeps/SameDepsAllRound/SameDepsAllRound.cabal- tests/PackageTests/BuildDeps/SameDepsAllRound/lemon.hs- tests/PackageTests/BuildDeps/SameDepsAllRound/pineapple.hs- tests/PackageTests/BuildDeps/TargetSpecificDeps1/MyLibrary.hs- tests/PackageTests/BuildDeps/TargetSpecificDeps1/lemon.hs- tests/PackageTests/BuildDeps/TargetSpecificDeps1/my.cabal- tests/PackageTests/BuildDeps/TargetSpecificDeps2/MyLibrary.hs- tests/PackageTests/BuildDeps/TargetSpecificDeps2/lemon.hs- tests/PackageTests/BuildDeps/TargetSpecificDeps2/my.cabal- tests/PackageTests/BuildDeps/TargetSpecificDeps3/MyLibrary.hs- tests/PackageTests/BuildDeps/TargetSpecificDeps3/lemon.hs- tests/PackageTests/BuildDeps/TargetSpecificDeps3/my.cabal- tests/PackageTests/BuildTargetErrors/BuildTargetErrors.cabal- tests/PackageTests/BuildTargetErrors/Main.hs- tests/PackageTests/BuildTestSuiteDetailedV09/Dummy2.hs- tests/PackageTests/BuildableField/BuildableField.cabal- tests/PackageTests/BuildableField/Main.hs- tests/PackageTests/CMain/Bar.hs- tests/PackageTests/CMain/foo.c- tests/PackageTests/CMain/my.cabal- tests/PackageTests/DeterministicAr/Lib.hs- tests/PackageTests/DeterministicAr/my.cabal- tests/PackageTests/DuplicateModuleName/DuplicateModuleName.cabal- tests/PackageTests/DuplicateModuleName/src/Foo.hs- tests/PackageTests/DuplicateModuleName/tests/Foo.hs- tests/PackageTests/DuplicateModuleName/tests2/Foo.hs- tests/PackageTests/EmptyLib/empty/empty.cabal- tests/PackageTests/GhcPkgGuess/SameDirectory/SameDirectory.cabal- tests/PackageTests/GhcPkgGuess/SameDirectory/ghc- tests/PackageTests/GhcPkgGuess/SameDirectory/ghc-pkg- tests/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/SameDirectory.cabal- tests/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/ghc-7.10- tests/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/ghc-pkg-ghc-7.10- tests/PackageTests/GhcPkgGuess/SameDirectoryVersion/SameDirectory.cabal- tests/PackageTests/GhcPkgGuess/SameDirectoryVersion/ghc-7.10- tests/PackageTests/GhcPkgGuess/SameDirectoryVersion/ghc-pkg-7.10- tests/PackageTests/GhcPkgGuess/Symlink/SameDirectory.cabal- tests/PackageTests/GhcPkgGuess/Symlink/bin/ghc- tests/PackageTests/GhcPkgGuess/Symlink/bin/ghc-pkg- tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/SameDirectory.cabal- tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/bin/ghc-7.10- tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/bin/ghc-pkg-7.10- tests/PackageTests/GhcPkgGuess/SymlinkVersion/SameDirectory.cabal- tests/PackageTests/GhcPkgGuess/SymlinkVersion/bin/ghc-7.10- tests/PackageTests/GhcPkgGuess/SymlinkVersion/bin/ghc-pkg-ghc-7.10- tests/PackageTests/Haddock/CPP.hs- tests/PackageTests/Haddock/Literate.lhs- tests/PackageTests/Haddock/NoCPP.hs- tests/PackageTests/Haddock/Simple.hs- tests/PackageTests/Haddock/my.cabal- tests/PackageTests/HaddockNewline/A.hs- tests/PackageTests/HaddockNewline/HaddockNewline.cabal- tests/PackageTests/HaddockNewline/Setup.hs- tests/PackageTests/Options.hs- tests/PackageTests/OrderFlags/Foo.hs- tests/PackageTests/OrderFlags/my.cabal- tests/PackageTests/PathsModule/Executable/Main.hs- tests/PackageTests/PathsModule/Executable/my.cabal- tests/PackageTests/PathsModule/Library/my.cabal- tests/PackageTests/PreProcess/Foo.hsc- tests/PackageTests/PreProcess/Main.hs- tests/PackageTests/PreProcess/my.cabal- tests/PackageTests/PreProcessExtraSources/Foo.hsc- tests/PackageTests/PreProcessExtraSources/Main.hs- tests/PackageTests/PreProcessExtraSources/my.cabal- tests/PackageTests/ReexportedModules/ReexportedModules.cabal- tests/PackageTests/TemplateHaskell/dynamic/Exe.hs- tests/PackageTests/TemplateHaskell/dynamic/Lib.hs- tests/PackageTests/TemplateHaskell/dynamic/TH.hs- tests/PackageTests/TemplateHaskell/dynamic/my.cabal- tests/PackageTests/TemplateHaskell/profiling/Exe.hs- tests/PackageTests/TemplateHaskell/profiling/Lib.hs- tests/PackageTests/TemplateHaskell/profiling/TH.hs- tests/PackageTests/TemplateHaskell/profiling/my.cabal- tests/PackageTests/TemplateHaskell/vanilla/Exe.hs- tests/PackageTests/TemplateHaskell/vanilla/Lib.hs- tests/PackageTests/TemplateHaskell/vanilla/TH.hs- tests/PackageTests/TemplateHaskell/vanilla/my.cabal- tests/PackageTests/TestNameCollision/child/Child.hs- tests/PackageTests/TestNameCollision/child/child.cabal- tests/PackageTests/TestNameCollision/child/tests/Test.hs- tests/PackageTests/TestNameCollision/parent/Parent.hs- tests/PackageTests/TestNameCollision/parent/parent.cabal- tests/PackageTests/TestOptions/TestOptions.cabal- tests/PackageTests/TestOptions/test-TestOptions.hs- tests/PackageTests/TestStanza/my.cabal- tests/PackageTests/TestSuiteTests/ExeV10/Foo.hs- tests/PackageTests/TestSuiteTests/ExeV10/my.cabal- tests/PackageTests/TestSuiteTests/ExeV10/tests/test-Foo.hs- tests/PackageTests/TestSuiteTests/ExeV10/tests/test-Short.hs- tests/PackageTests/TestSuiteTests/LibV09/Lib.hs- tests/PackageTests/TestSuiteTests/LibV09/LibV09.cabal- tests/PackageTests/TestSuiteTests/LibV09/tests/Deadlock.hs- tests/PackageTests/Tests.hs- tests/PackageTests/UniqueIPID/P1/M.hs- tests/PackageTests/UniqueIPID/P1/my.cabal- tests/PackageTests/UniqueIPID/P2/M.hs- tests/PackageTests/UniqueIPID/P2/my.cabal- tests/PackageTests/multInst/my.cabal- tests/Setup.hs+ tests/ParserTests/warnings/bom.cabal+ tests/ParserTests/warnings/bool.cabal+ tests/ParserTests/warnings/deprecatedfield.cabal+ tests/ParserTests/warnings/extratestmodule.cabal+ tests/ParserTests/warnings/gluedop.cabal+ tests/ParserTests/warnings/nbsp.cabal+ tests/ParserTests/warnings/newsyntax.cabal+ tests/ParserTests/warnings/oldsyntax.cabal+ tests/ParserTests/warnings/subsection.cabal+ tests/ParserTests/warnings/trailingfield.cabal+ tests/ParserTests/warnings/unknownfield.cabal+ tests/ParserTests/warnings/unknownsection.cabal+ tests/ParserTests/warnings/utf8.cabal+ tests/ParserTests/warnings/versiontag.cabal tests/hackage/check.sh tests/hackage/download.sh tests/hackage/unpack.sh@@ -182,6 +60,20 @@ flag bundled-binary-generic default: False +flag old-directory+ description: Use directory < 1.2 and old-time+ default: False++flag parsec+ description: Use parsec parser+ default: False+ manual: True++flag parsec-struct-diff+ description: Use StructDiff in parsec tests. Affects only parsec tests.+ default: False+ manual: True+ library build-depends: array >= 0.1 && < 0.6,@@ -189,12 +81,18 @@ bytestring >= 0.9 && < 1, containers >= 0.4 && < 0.6, deepseq >= 1.3 && < 1.5,- directory >= 1.1 && < 1.4, filepath >= 1.3 && < 1.5, pretty >= 1.1 && < 1.2,- process >= 1.1.0.1 && < 1.5,- time >= 1.4 && < 1.8+ process >= 1.1.0.1 && < 1.7,+ time >= 1.4 && < 1.9 + if flag(old-directory)+ build-depends: directory >= 1.1 && < 1.2, old-time >= 1 && < 1.2,+ process >= 1.0.1.1 && < 1.1.0.2+ else+ build-depends: directory >= 1.2 && < 1.4,+ process >= 1.1.0.2 && < 1.7+ if flag(bundled-binary-generic) build-depends: binary >= 0.5 && < 0.7 else@@ -210,7 +108,7 @@ if os(windows) build-depends:- Win32 >= 2.2 && < 2.4+ Win32 >= 2.2 && < 2.6 ghc-options: -Wall -fno-ignore-asserts -fwarn-tabs if impl(ghc >= 8.0)@@ -218,12 +116,29 @@ -Wnoncanonical-monadfail-instances exposed-modules:+ Distribution.Backpack+ Distribution.Backpack.Configure+ Distribution.Backpack.ComponentsGraph+ Distribution.Backpack.ConfiguredComponent+ Distribution.Backpack.DescribeUnitId+ Distribution.Backpack.FullUnitId+ Distribution.Backpack.LinkedComponent+ Distribution.Backpack.ModSubst+ Distribution.Backpack.ModuleShape+ Distribution.Utils.LogProgress+ Distribution.Utils.MapAccum Distribution.Compat.CreatePipe Distribution.Compat.Environment Distribution.Compat.Exception+ Distribution.Compat.Graph Distribution.Compat.Internal.TempFile+ Distribution.Compat.Map.Strict+ Distribution.Compat.Prelude.Internal Distribution.Compat.ReadP Distribution.Compat.Semigroup+ Distribution.Compat.Stack+ Distribution.Compat.Time+ Distribution.Compat.DList Distribution.Compiler Distribution.InstalledPackageInfo Distribution.License@@ -237,6 +152,7 @@ Distribution.PackageDescription.PrettyPrint Distribution.PackageDescription.Utils Distribution.ParseUtils+ Distribution.PrettyUtils Distribution.ReadE Distribution.Simple Distribution.Simple.Bench@@ -245,6 +161,7 @@ Distribution.Simple.Build.PathsModule Distribution.Simple.BuildPaths Distribution.Simple.BuildTarget+ Distribution.Simple.BuildToolDepends Distribution.Simple.CCompiler Distribution.Simple.Command Distribution.Simple.Compiler@@ -252,6 +169,7 @@ Distribution.Simple.GHC Distribution.Simple.GHCJS Distribution.Simple.Haddock+ Distribution.Simple.Doctest Distribution.Simple.HaskellSuite Distribution.Simple.Hpc Distribution.Simple.Install@@ -289,18 +207,101 @@ Distribution.System Distribution.TestSuite Distribution.Text+ Distribution.Types.AbiHash+ Distribution.Types.AnnotatedId+ Distribution.Types.Benchmark+ Distribution.Types.BenchmarkInterface+ Distribution.Types.BenchmarkType+ Distribution.Types.BuildInfo+ Distribution.Types.BuildType+ Distribution.Types.ComponentInclude+ Distribution.Types.Dependency+ Distribution.Types.ExeDependency+ Distribution.Types.LegacyExeDependency+ Distribution.Types.PkgconfigDependency+ Distribution.Types.DependencyMap+ Distribution.Types.ComponentId+ Distribution.Types.MungedPackageId+ Distribution.Types.PackageId+ Distribution.Types.UnitId+ Distribution.Types.Executable+ Distribution.Types.ExecutableScope+ Distribution.Types.Library+ Distribution.Types.ForeignLib+ Distribution.Types.ForeignLibType+ Distribution.Types.ForeignLibOption+ Distribution.Types.Module+ Distribution.Types.ModuleReexport+ Distribution.Types.ModuleRenaming+ Distribution.Types.ComponentName+ Distribution.Types.MungedPackageName+ Distribution.Types.PackageName+ Distribution.Types.PkgconfigName+ Distribution.Types.UnqualComponentName+ Distribution.Types.IncludeRenaming+ Distribution.Types.Mixin+ Distribution.Types.SetupBuildInfo+ Distribution.Types.TestSuite+ Distribution.Types.TestSuiteInterface+ Distribution.Types.TestType+ Distribution.Types.GenericPackageDescription+ Distribution.Types.Condition+ Distribution.Types.CondTree+ Distribution.Types.HookedBuildInfo+ Distribution.Types.PackageDescription+ Distribution.Types.SourceRepo+ Distribution.Types.Component+ Distribution.Types.ComponentLocalBuildInfo+ Distribution.Types.LocalBuildInfo+ Distribution.Types.ComponentRequestedSpec+ Distribution.Types.TargetInfo+ Distribution.Utils.Generic Distribution.Utils.NubList+ Distribution.Utils.ShortText+ Distribution.Utils.Progress Distribution.Verbosity Distribution.Version Language.Haskell.Extension Distribution.Compat.Binary + if flag(parsec)+ cpp-options: -DCABAL_PARSEC+ build-depends:+ transformers,+ parsec >= 3.1.9 && <3.2+ build-tools:+ alex >=3.1.4 && <3.3+ exposed-modules:+ Distribution.Compat.Parsec+ Distribution.PackageDescription.Parsec+ Distribution.PackageDescription.Parsec.FieldDescr+ Distribution.Parsec.Class+ Distribution.Parsec.ConfVar+ Distribution.Parsec.Lexer+ Distribution.Parsec.LexerMonad+ Distribution.Parsec.Parser+ Distribution.Parsec.Types.Common+ Distribution.Parsec.Types.Field+ Distribution.Parsec.Types.FieldDescr+ Distribution.Parsec.Types.ParseResult+ other-modules:+ Distribution.Backpack.PreExistingComponent+ Distribution.Backpack.ReadyComponent+ Distribution.Backpack.MixLink+ Distribution.Backpack.ModuleScope+ Distribution.Backpack.UnifyM+ Distribution.Backpack.Id+ Distribution.Utils.UnionFind+ Distribution.Utils.Base62 Distribution.Compat.CopyFile Distribution.Compat.GetShortPathName Distribution.Compat.MonadFail+ Distribution.Compat.Prelude+ Distribution.Compat.SnocList Distribution.GetOpt Distribution.Lex+ Distribution.Utils.String Distribution.Simple.GHC.Internal Distribution.Simple.GHC.IPI642 Distribution.Simple.GHC.IPIConvert@@ -312,8 +313,37 @@ Distribution.Compat.Binary.Class Distribution.Compat.Binary.Generic - default-language: Haskell98+ default-language: Haskell2010+ other-extensions:+ BangPatterns+ CPP+ DefaultSignatures+ DeriveDataTypeable+ DeriveFoldable+ DeriveFunctor+ DeriveGeneric+ DeriveTraversable+ ExistentialQuantification+ FlexibleContexts+ FlexibleInstances+ GeneralizedNewtypeDeriving+ ImplicitParams+ KindSignatures+ NondecreasingIndentation+ OverloadedStrings+ RankNTypes+ RecordWildCards+ ScopedTypeVariables+ StandaloneDeriving+ Trustworthy+ TypeFamilies+ TypeOperators+ TypeSynonymInstances+ UndecidableInstances + if impl(ghc >= 7.11)+ other-extensions: PatternSynonyms+ -- Small, fast running tests. test-suite unit-tests type: exitcode-stdio-1.0@@ -323,51 +353,77 @@ Test.QuickCheck.Utils UnitTests.Distribution.Compat.CreatePipe UnitTests.Distribution.Compat.ReadP+ UnitTests.Distribution.Compat.Time+ UnitTests.Distribution.Compat.Graph UnitTests.Distribution.Simple.Program.Internal UnitTests.Distribution.Simple.Utils UnitTests.Distribution.System UnitTests.Distribution.Utils.NubList+ UnitTests.Distribution.Utils.ShortText UnitTests.Distribution.Version main-is: UnitTests.hs build-depends:+ array, base,+ containers, directory,+ filepath, tasty, tasty-hunit, tasty-quickcheck,+ tagged, pretty,- QuickCheck >= 2.7 && < 2.10,+ QuickCheck >= 2.7 && < 2.11, Cabal ghc-options: -Wall- default-language: Haskell98+ default-language: Haskell2010 --- Large, system tests that build packages.-test-suite package-tests+test-suite parser-tests+ if !flag(parsec)+ buildable: False+ type: exitcode-stdio-1.0- main-is: PackageTests.hs- other-modules:- PackageTests.BenchmarkStanza.Check- PackageTests.TestStanza.Check- PackageTests.DeterministicAr.Check- PackageTests.TestSuiteTests.ExeV10.Check- PackageTests.PackageTester hs-source-dirs: tests+ main-is: ParserTests.hs build-depends: base,- containers,- tagged,+ bytestring,+ filepath, tasty, tasty-hunit,- transformers,- Cabal,- process,+ tasty-quickcheck,+ Cabal+ ghc-options: -Wall+ default-language: Haskell2010++test-suite parser-hackage-tests+ if !flag(parsec)+ buildable: False++ type: exitcode-stdio-1.0+ main-is: ParserHackageTests.hs++ hs-source-dirs: tests+ build-depends:+ base,+ containers,+ tar >=0.5 && <0.6,+ bytestring, directory, filepath,- bytestring,- regex-posix,- old-time- if !os(windows)- build-depends: unix, exceptions+ Cabal++ if flag(parsec-struct-diff)+ build-depends:+ generics-sop ==0.2.*,+ these >=0.7.1 && <0.8,+ singleton-bool >=0.1.1.0 && <0.2,+ keys+ other-modules:+ DiffInstances+ StructDiff+ cpp-options: -DHAS_STRUCT_DIFF+ ghc-options: -Wall -rtsopts default-extensions: CPP- default-language: Haskell98+ default-language: Haskell2010
+ Distribution/Backpack.hs view
@@ -0,0 +1,246 @@+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}++-- | This module defines the core data types for Backpack. For more+-- details, see:+--+-- <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>++module Distribution.Backpack (+ -- * OpenUnitId+ OpenUnitId(..),+ openUnitIdFreeHoles,+ mkOpenUnitId,++ -- * DefUnitId+ DefUnitId,+ unDefUnitId,+ mkDefUnitId,++ -- * OpenModule+ OpenModule(..),+ openModuleFreeHoles,++ -- * OpenModuleSubst+ OpenModuleSubst,+ dispOpenModuleSubst,+ dispOpenModuleSubstEntry,+ parseOpenModuleSubst,+ parseOpenModuleSubstEntry,+ openModuleSubstFreeHoles,++ -- * Conversions to 'UnitId'+ abstractUnitId,+ hashModuleSubst,+) where++import Prelude ()+import Distribution.Compat.Prelude hiding (mod)+import Distribution.Compat.ReadP+import qualified Distribution.Compat.ReadP as Parse+import qualified Text.PrettyPrint as Disp+import Text.PrettyPrint (hcat)++import Distribution.ModuleName+import Distribution.Text+import Distribution.Types.ComponentId+import Distribution.Types.UnitId+import Distribution.Types.Module+import Distribution.Utils.Base62++import qualified Data.Map as Map+import Data.Set (Set)+import qualified Data.Set as Set++-----------------------------------------------------------------------+-- OpenUnitId++-- | An 'OpenUnitId' describes a (possibly partially) instantiated+-- Backpack component, with a description of how the holes are filled+-- in. Unlike 'OpenUnitId', the 'ModuleSubst' is kept in a structured+-- form that allows for substitution (which fills in holes.) This form+-- of unit cannot be installed. It must first be converted to a+-- 'UnitId'.+--+-- In the absence of Backpack, there are no holes to fill, so any such+-- component always has an empty module substitution; thus we can lossly+-- represent it as an 'OpenUnitId uid'.+--+-- For a source component using Backpack, however, there is more+-- structure as components may be parametrized over some signatures, and+-- these \"holes\" may be partially or wholly filled.+--+-- OpenUnitId plays an important role when we are mix-in linking,+-- and is recorded to the installed packaged database for indefinite+-- packages; however, for compiled packages that are fully instantiated,+-- we instantiate 'OpenUnitId' into 'UnitId'.+--+-- For more details see the Backpack spec+-- <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+--++data OpenUnitId+ -- | Identifies a component which may have some unfilled holes;+ -- specifying its 'ComponentId' and its 'OpenModuleSubst'.+ -- TODO: Invariant that 'OpenModuleSubst' is non-empty?+ -- See also the Text instance.+ = IndefFullUnitId ComponentId OpenModuleSubst+ -- | Identifies a fully instantiated component, which has+ -- been compiled and abbreviated as a hash. The embedded 'UnitId'+ -- MUST NOT be for an indefinite component; an 'OpenUnitId'+ -- is guaranteed not to have any holes.+ | DefiniteUnitId DefUnitId+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)+-- TODO: cache holes?++instance Binary OpenUnitId++instance NFData OpenUnitId where+ rnf (IndefFullUnitId cid subst) = rnf cid `seq` rnf subst+ rnf (DefiniteUnitId uid) = rnf uid++instance Text OpenUnitId where+ disp (IndefFullUnitId cid insts)+ -- TODO: arguably a smart constructor to enforce invariant would be+ -- better+ | Map.null insts = disp cid+ | otherwise = disp cid <<>> Disp.brackets (dispOpenModuleSubst insts)+ disp (DefiniteUnitId uid) = disp uid+ parse = parseOpenUnitId <++ fmap DefiniteUnitId parse+ where+ parseOpenUnitId = do+ cid <- parse+ insts <- Parse.between (Parse.char '[') (Parse.char ']')+ parseOpenModuleSubst+ return (IndefFullUnitId cid insts)++-- | Get the set of holes ('ModuleVar') embedded in a 'UnitId'.+openUnitIdFreeHoles :: OpenUnitId -> Set ModuleName+openUnitIdFreeHoles (IndefFullUnitId _ insts) = openModuleSubstFreeHoles insts+openUnitIdFreeHoles _ = Set.empty++-- | Safe constructor from a UnitId. The only way to do this safely+-- is if the instantiation is provided.+mkOpenUnitId :: UnitId -> ComponentId -> OpenModuleSubst -> OpenUnitId+mkOpenUnitId uid cid insts =+ if Set.null (openModuleSubstFreeHoles insts)+ then DefiniteUnitId (unsafeMkDefUnitId uid) -- invariant holds!+ else IndefFullUnitId cid insts++-----------------------------------------------------------------------+-- DefUnitId++-- | Create a 'DefUnitId' from a 'ComponentId' and an instantiation+-- with no holes.+mkDefUnitId :: ComponentId -> Map ModuleName Module -> DefUnitId+mkDefUnitId cid insts =+ unsafeMkDefUnitId (mkUnitId+ (unComponentId cid ++ maybe "" ("+"++) (hashModuleSubst insts)))+ -- impose invariant!++-----------------------------------------------------------------------+-- OpenModule++-- | Unlike a 'Module', an 'OpenModule' is either an ordinary+-- module from some unit, OR an 'OpenModuleVar', representing a+-- hole that needs to be filled in. Substitutions are over+-- module variables.+data OpenModule+ = OpenModule OpenUnitId ModuleName+ | OpenModuleVar ModuleName+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)++instance Binary OpenModule++instance NFData OpenModule where+ rnf (OpenModule uid mod_name) = rnf uid `seq` rnf mod_name+ rnf (OpenModuleVar mod_name) = rnf mod_name++instance Text OpenModule where+ disp (OpenModule uid mod_name) =+ hcat [disp uid, Disp.text ":", disp mod_name]+ disp (OpenModuleVar mod_name) =+ hcat [Disp.char '<', disp mod_name, Disp.char '>']+ parse = parseModuleVar <++ parseOpenModule+ where+ parseOpenModule = do+ uid <- parse+ _ <- Parse.char ':'+ mod_name <- parse+ return (OpenModule uid mod_name)+ parseModuleVar = do+ _ <- Parse.char '<'+ mod_name <- parse+ _ <- Parse.char '>'+ return (OpenModuleVar mod_name)++-- | Get the set of holes ('ModuleVar') embedded in a 'Module'.+openModuleFreeHoles :: OpenModule -> Set ModuleName+openModuleFreeHoles (OpenModuleVar mod_name) = Set.singleton mod_name+openModuleFreeHoles (OpenModule uid _n) = openUnitIdFreeHoles uid++-----------------------------------------------------------------------+-- OpenModuleSubst++-- | An explicit substitution on modules.+--+-- NB: These substitutions are NOT idempotent, for example, a+-- valid substitution is (A -> B, B -> A).+type OpenModuleSubst = Map ModuleName OpenModule++-- | Pretty-print the entries of a module substitution, suitable+-- for embedding into a 'OpenUnitId' or passing to GHC via @--instantiate-with@.+dispOpenModuleSubst :: OpenModuleSubst -> Disp.Doc+dispOpenModuleSubst subst+ = Disp.hcat+ . Disp.punctuate Disp.comma+ $ map dispOpenModuleSubstEntry (Map.toAscList subst)++-- | Pretty-print a single entry of a module substitution.+dispOpenModuleSubstEntry :: (ModuleName, OpenModule) -> Disp.Doc+dispOpenModuleSubstEntry (k, v) = disp k <<>> Disp.char '=' <<>> disp v++-- | Inverse to 'dispModSubst'.+parseOpenModuleSubst :: ReadP r OpenModuleSubst+parseOpenModuleSubst = fmap Map.fromList+ . flip Parse.sepBy (Parse.char ',')+ $ parseOpenModuleSubstEntry++-- | Inverse to 'dispModSubstEntry'.+parseOpenModuleSubstEntry :: ReadP r (ModuleName, OpenModule)+parseOpenModuleSubstEntry =+ do k <- parse+ _ <- Parse.char '='+ v <- parse+ return (k, v)++-- | Get the set of holes ('ModuleVar') embedded in a 'OpenModuleSubst'.+-- This is NOT the domain of the substitution.+openModuleSubstFreeHoles :: OpenModuleSubst -> Set ModuleName+openModuleSubstFreeHoles insts = Set.unions (map openModuleFreeHoles (Map.elems insts))++-----------------------------------------------------------------------+-- Conversions to UnitId++-- | When typechecking, we don't demand that a freshly instantiated+-- 'IndefFullUnitId' be compiled; instead, we just depend on the+-- installed indefinite unit installed at the 'ComponentId'.+abstractUnitId :: OpenUnitId -> UnitId+abstractUnitId (DefiniteUnitId def_uid) = unDefUnitId def_uid+abstractUnitId (IndefFullUnitId cid _) = newSimpleUnitId cid++-- | Take a module substitution and hash it into a string suitable for+-- 'UnitId'. Note that since this takes 'Module', not 'OpenModule',+-- you are responsible for recursively converting 'OpenModule'+-- into 'Module'. See also "Distribution.Backpack.ReadyComponent".+hashModuleSubst :: Map ModuleName Module -> Maybe String+hashModuleSubst subst+ | Map.null subst = Nothing+ | otherwise =+ Just . hashToBase62 $+ concat [ display mod_name ++ "=" ++ display m ++ "\n"+ | (mod_name, m) <- Map.toList subst]
+ Distribution/Backpack/ComponentsGraph.hs view
@@ -0,0 +1,97 @@+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.ComponentsGraph (+ ComponentsGraph,+ ComponentsWithDeps,+ mkComponentsGraph,+ componentsGraphToList,+ dispComponentsWithDeps,+ componentCycleMsg+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Package+import Distribution.PackageDescription as PD hiding (Flag)+import Distribution.Simple.BuildToolDepends+import Distribution.Simple.LocalBuildInfo+import Distribution.Types.ComponentRequestedSpec+import Distribution.Types.UnqualComponentName+import Distribution.Compat.Graph (Graph, Node(..))+import qualified Distribution.Compat.Graph as Graph++import Distribution.Text+ ( Text(disp) )+import Text.PrettyPrint++------------------------------------------------------------------------------+-- Components graph+------------------------------------------------------------------------------++-- | A graph of source-level components by their source-level+-- dependencies+--+type ComponentsGraph = Graph (Node ComponentName Component)++-- | A list of components associated with the source level+-- dependencies between them.+--+type ComponentsWithDeps = [(Component, [ComponentName])]++-- | Pretty-print 'ComponentsWithDeps'.+--+dispComponentsWithDeps :: ComponentsWithDeps -> Doc+dispComponentsWithDeps graph =+ vcat [ hang (text "component" <+> disp (componentName c)) 4+ (vcat [ text "dependency" <+> disp cdep | cdep <- cdeps ])+ | (c, cdeps) <- graph ]++-- | Create a 'Graph' of 'Component', or report a cycle if there is a+-- problem.+--+mkComponentsGraph :: ComponentRequestedSpec+ -> PackageDescription+ -> Either [ComponentName] ComponentsGraph+mkComponentsGraph enabled pkg_descr =+ let g = Graph.fromDistinctList+ [ N c (componentName c) (componentDeps c)+ | c <- pkgBuildableComponents pkg_descr+ , componentEnabled enabled c ]+ in case Graph.cycles g of+ [] -> Right g+ ccycles -> Left [ componentName c | N c _ _ <- concat ccycles ]+ where+ -- The dependencies for the given component+ componentDeps component =+ (CExeName <$> getAllInternalToolDependencies pkg_descr bi)++ ++ [ if pkgname == packageName pkg_descr+ then CLibName+ else CSubLibName toolname+ | Dependency pkgname _ <- targetBuildDepends bi+ , let toolname = packageNameToUnqualComponentName pkgname+ , toolname `elem` internalPkgDeps ]+ where+ bi = componentBuildInfo component+ internalPkgDeps = map (conv . libName) (allLibraries pkg_descr)+ conv Nothing = packageNameToUnqualComponentName $ packageName pkg_descr+ conv (Just s) = s++-- | Given the package description and a 'PackageDescription' (used+-- to determine if a package name is internal or not), sort the+-- components in dependency order (fewest dependencies first). This is+-- NOT necessarily the build order (although it is in the absence of+-- Backpack.)+--+componentsGraphToList :: ComponentsGraph+ -> ComponentsWithDeps+componentsGraphToList =+ map (\(N c _ cs) -> (c, cs)) . Graph.revTopSort++-- | Error message when there is a cycle; takes the SCC of components.+componentCycleMsg :: [ComponentName] -> Doc+componentCycleMsg cnames =+ text $ "Components in the package depend on each other in a cyclic way:\n "+ ++ intercalate " depends on "+ [ "'" ++ showComponentName cname ++ "'"+ | cname <- cnames ++ [head cnames] ]
+ Distribution/Backpack/Configure.hs view
@@ -0,0 +1,357 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoMonoLocalBinds #-}+{-# LANGUAGE NondecreasingIndentation #-}++-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+--+-- WARNING: The contents of this module are HIGHLY experimental.+-- We may refactor it under you.+module Distribution.Backpack.Configure (+ configureComponentLocalBuildInfos,+) where++import Prelude ()+import Distribution.Compat.Prelude hiding ((<>))++import Distribution.Backpack+import Distribution.Backpack.FullUnitId+import Distribution.Backpack.PreExistingComponent+import Distribution.Backpack.ConfiguredComponent+import Distribution.Backpack.LinkedComponent+import Distribution.Backpack.ReadyComponent+import Distribution.Backpack.ComponentsGraph+import Distribution.Backpack.Id++import Distribution.Simple.Compiler hiding (Flag)+import Distribution.Package+import qualified Distribution.InstalledPackageInfo as Installed+import Distribution.InstalledPackageInfo (InstalledPackageInfo+ ,emptyInstalledPackageInfo)+import qualified Distribution.Simple.PackageIndex as PackageIndex+import Distribution.Simple.PackageIndex (InstalledPackageIndex)+import Distribution.PackageDescription as PD hiding (Flag)+import Distribution.ModuleName+import Distribution.Simple.Setup as Setup+import Distribution.Simple.LocalBuildInfo+import Distribution.Types.AnnotatedId+import Distribution.Types.ComponentRequestedSpec+import Distribution.Types.ComponentInclude+import Distribution.Verbosity+import qualified Distribution.Compat.Graph as Graph+import Distribution.Compat.Graph (Graph, IsNode(..))+import Distribution.Utils.LogProgress++import Data.Either+ ( lefts )+import qualified Data.Set as Set+import qualified Data.Map as Map+import Distribution.Text+import Text.PrettyPrint++------------------------------------------------------------------------------+-- Pipeline+------------------------------------------------------------------------------++configureComponentLocalBuildInfos+ :: Verbosity+ -> Bool -- use_external_internal_deps+ -> ComponentRequestedSpec+ -> Bool -- deterministic+ -> Flag String -- configIPID+ -> Flag ComponentId -- configCID+ -> PackageDescription+ -> [PreExistingComponent]+ -> FlagAssignment -- configConfigurationsFlags+ -> [(ModuleName, Module)] -- configInstantiateWith+ -> InstalledPackageIndex+ -> Compiler+ -> LogProgress ([ComponentLocalBuildInfo], InstalledPackageIndex)+configureComponentLocalBuildInfos+ verbosity use_external_internal_deps enabled deterministic ipid_flag cid_flag pkg_descr+ prePkgDeps flagAssignment instantiate_with installedPackageSet comp = do+ -- NB: In single component mode, this returns a *single* component.+ -- In this graph, the graph is NOT closed.+ graph0 <- case mkComponentsGraph enabled pkg_descr of+ Left ccycle -> dieProgress (componentCycleMsg ccycle)+ Right g -> return (componentsGraphToList g)+ infoProgress $ hang (text "Source component graph:") 4+ (dispComponentsWithDeps graph0)++ let conf_pkg_map = Map.fromListWith Map.union+ [(pc_pkgname pkg,+ Map.singleton (pc_compname pkg)+ (AnnotatedId {+ ann_id = pc_cid pkg,+ ann_pid = packageId pkg,+ ann_cname = pc_compname pkg+ }))+ | pkg <- prePkgDeps]+ graph1 <- toConfiguredComponents use_external_internal_deps+ flagAssignment+ deterministic ipid_flag cid_flag pkg_descr+ conf_pkg_map (map fst graph0)+ infoProgress $ hang (text "Configured component graph:") 4+ (vcat (map dispConfiguredComponent graph1))++ let shape_pkg_map = Map.fromList+ [ (pc_cid pkg, (pc_open_uid pkg, pc_shape pkg))+ | pkg <- prePkgDeps]+ uid_lookup def_uid+ | Just pkg <- PackageIndex.lookupUnitId installedPackageSet uid+ = FullUnitId (Installed.installedComponentId pkg)+ (Map.fromList (Installed.instantiatedWith pkg))+ | otherwise = error ("uid_lookup: " ++ display uid)+ where uid = unDefUnitId def_uid+ graph2 <- toLinkedComponents verbosity uid_lookup+ (package pkg_descr) shape_pkg_map graph1++ infoProgress $+ hang (text "Linked component graph:") 4+ (vcat (map dispLinkedComponent graph2))++ let pid_map = Map.fromList $+ [ (pc_uid pkg, pc_munged_id pkg)+ | pkg <- prePkgDeps] +++ [ (Installed.installedUnitId pkg, mungedId pkg)+ | (_, Module uid _) <- instantiate_with+ , Just pkg <- [PackageIndex.lookupUnitId+ installedPackageSet (unDefUnitId uid)] ]+ subst = Map.fromList instantiate_with+ graph3 = toReadyComponents pid_map subst graph2+ graph4 = Graph.revTopSort (Graph.fromDistinctList graph3)++ infoProgress $ hang (text "Ready component graph:") 4+ (vcat (map dispReadyComponent graph4))++ toComponentLocalBuildInfos comp installedPackageSet pkg_descr prePkgDeps graph4++------------------------------------------------------------------------------+-- ComponentLocalBuildInfo+------------------------------------------------------------------------------++toComponentLocalBuildInfos+ :: Compiler+ -> InstalledPackageIndex -- FULL set+ -> PackageDescription+ -> [PreExistingComponent] -- external package deps+ -> [ReadyComponent]+ -> LogProgress ([ComponentLocalBuildInfo],+ InstalledPackageIndex) -- only relevant packages+toComponentLocalBuildInfos+ comp installedPackageSet pkg_descr externalPkgDeps graph = do+ -- Check and make sure that every instantiated component exists.+ -- We have to do this now, because prior to linking/instantiating+ -- we don't actually know what the full set of 'UnitId's we need+ -- are.+ let -- TODO: This is actually a bit questionable performance-wise,+ -- since we will pay for the ALL installed packages even if+ -- they are not related to what we are building. This was true+ -- in the old configure code.+ external_graph :: Graph (Either InstalledPackageInfo ReadyComponent)+ external_graph = Graph.fromDistinctList+ . map Left+ $ PackageIndex.allPackages installedPackageSet+ internal_graph :: Graph (Either InstalledPackageInfo ReadyComponent)+ internal_graph = Graph.fromDistinctList+ . map Right+ $ graph+ combined_graph = Graph.unionRight external_graph internal_graph+ Just local_graph = Graph.closure combined_graph (map nodeKey graph)+ -- The database of transitively reachable installed packages that the+ -- external components the package (as a whole) depends on. This will be+ -- used in several ways:+ --+ -- * We'll use it to do a consistency check so we're not depending+ -- on multiple versions of the same package (TODO: someday relax+ -- this for private dependencies.) See right below.+ --+ -- * We'll pass it on in the LocalBuildInfo, where preprocessors+ -- and other things will incorrectly use it to determine what+ -- the include paths and everything should be.+ --+ packageDependsIndex = PackageIndex.fromList (lefts local_graph)+ fullIndex = Graph.fromDistinctList local_graph+ case Graph.broken fullIndex of+ [] -> return ()+ broken ->+ -- TODO: ppr this+ dieProgress . text $+ "The following packages are broken because other"+ ++ " packages they depend on are missing. These broken "+ ++ "packages must be rebuilt before they can be used.\n"+ -- TODO: Undupe.+ ++ unlines [ "installed package "+ ++ display (packageId pkg)+ ++ " is broken due to missing package "+ ++ intercalate ", " (map display deps)+ | (Left pkg, deps) <- broken ]+ ++ unlines [ "planned package "+ ++ display (packageId pkg)+ ++ " is broken due to missing package "+ ++ intercalate ", " (map display deps)+ | (Right pkg, deps) <- broken ]++ -- In this section, we'd like to look at the 'packageDependsIndex'+ -- and see if we've picked multiple versions of the same+ -- installed package (this is bad, because it means you might+ -- get an error could not match foo-0.1:Type with foo-0.2:Type).+ --+ -- What is pseudoTopPkg for? I have no idea. It was used+ -- in the very original commit which introduced checking for+ -- inconsistencies 5115bb2be4e13841ea07dc9166b9d9afa5f0d012,+ -- and then moved out of PackageIndex and put here later.+ -- TODO: Try this code without it...+ --+ -- TODO: Move this into a helper function+ --+ -- TODO: This is probably wrong for Backpack+ let pseudoTopPkg :: InstalledPackageInfo+ pseudoTopPkg = emptyInstalledPackageInfo {+ Installed.installedUnitId = mkLegacyUnitId (packageId pkg_descr),+ Installed.sourcePackageId = packageId pkg_descr,+ Installed.depends = map pc_uid externalPkgDeps+ }+ case PackageIndex.dependencyInconsistencies+ . PackageIndex.insert pseudoTopPkg+ $ packageDependsIndex of+ [] -> return ()+ inconsistencies ->+ warnProgress $+ hang (text "This package indirectly depends on multiple versions of the same" <+>+ text "package. This is very likely to cause a compile failure.") 2+ (vcat [ text "package" <+> disp (packageName user) <+>+ parens (disp (installedUnitId user)) <+> text "requires" <+>+ disp inst+ | (_dep_key, insts) <- inconsistencies+ , (inst, users) <- insts+ , user <- users ])+ let clbis = mkLinkedComponentsLocalBuildInfo comp graph+ -- forM clbis $ \(clbi,deps) -> info verbosity $ "UNIT" ++ hashUnitId (componentUnitId clbi) ++ "\n" ++ intercalate "\n" (map hashUnitId deps)+ return (clbis, packageDependsIndex)++-- Build ComponentLocalBuildInfo for each component we are going+-- to build.+--+-- This conversion is lossy; we lose some invariants from ReadyComponent+mkLinkedComponentsLocalBuildInfo+ :: Compiler+ -> [ReadyComponent]+ -> [ComponentLocalBuildInfo]+mkLinkedComponentsLocalBuildInfo comp rcs = map go rcs+ where+ internalUnits = Set.fromList (map rc_uid rcs)+ isInternal x = Set.member x internalUnits+ go rc =+ case rc_component rc of+ CLib lib ->+ let convModuleExport (modname', (Module uid modname))+ | this_uid == unDefUnitId uid+ , modname' == modname+ = Installed.ExposedModule modname' Nothing+ | otherwise+ = Installed.ExposedModule modname'+ (Just (OpenModule (DefiniteUnitId uid) modname))+ convOpenModuleExport (modname', modu@(OpenModule uid modname))+ | uid == this_open_uid+ , modname' == modname+ = Installed.ExposedModule modname' Nothing+ | otherwise+ = Installed.ExposedModule modname' (Just modu)+ convOpenModuleExport (_, OpenModuleVar _)+ = error "convOpenModuleExport: top-level modvar"+ exports =+ -- Loses invariants+ case rc_i rc of+ Left indefc -> map convOpenModuleExport+ $ Map.toList (indefc_provides indefc)+ Right instc -> map convModuleExport+ $ Map.toList (instc_provides instc)+ insts =+ case rc_i rc of+ Left indefc -> [ (m, OpenModuleVar m) | m <- indefc_requires indefc ]+ Right instc -> [ (m, OpenModule (DefiniteUnitId uid') m')+ | (m, Module uid' m') <- instc_insts instc ]++ compat_name = computeCompatPackageName (packageName rc) (libName lib)+ compat_key = computeCompatPackageKey comp compat_name (packageVersion rc) this_uid++ in LibComponentLocalBuildInfo {+ componentPackageDeps = cpds,+ componentUnitId = this_uid,+ componentComponentId = this_cid,+ componentInstantiatedWith = insts,+ componentIsIndefinite_ = is_indefinite,+ componentLocalName = cname,+ componentInternalDeps = internal_deps,+ componentExeDeps = exe_deps,+ componentIncludes = includes,+ componentExposedModules = exports,+ componentIsPublic = rc_public rc,+ componentCompatPackageKey = compat_key,+ componentCompatPackageName = compat_name+ }+ CFLib _ ->+ FLibComponentLocalBuildInfo {+ componentUnitId = this_uid,+ componentComponentId = this_cid,+ componentLocalName = cname,+ componentPackageDeps = cpds,+ componentExeDeps = exe_deps,+ componentInternalDeps = internal_deps,+ componentIncludes = includes+ }+ CExe _ ->+ ExeComponentLocalBuildInfo {+ componentUnitId = this_uid,+ componentComponentId = this_cid,+ componentLocalName = cname,+ componentPackageDeps = cpds,+ componentExeDeps = exe_deps,+ componentInternalDeps = internal_deps,+ componentIncludes = includes+ }+ CTest _ ->+ TestComponentLocalBuildInfo {+ componentUnitId = this_uid,+ componentComponentId = this_cid,+ componentLocalName = cname,+ componentPackageDeps = cpds,+ componentExeDeps = exe_deps,+ componentInternalDeps = internal_deps,+ componentIncludes = includes+ }+ CBench _ ->+ BenchComponentLocalBuildInfo {+ componentUnitId = this_uid,+ componentComponentId = this_cid,+ componentLocalName = cname,+ componentPackageDeps = cpds,+ componentExeDeps = exe_deps,+ componentInternalDeps = internal_deps,+ componentIncludes = includes+ }+ where+ this_uid = rc_uid rc+ this_open_uid = rc_open_uid rc+ this_cid = rc_cid rc+ cname = componentName (rc_component rc)+ cpds = rc_depends rc+ exe_deps = map ann_id $ rc_exe_deps rc+ is_indefinite =+ case rc_i rc of+ Left _ -> True+ Right _ -> False+ includes =+ map (\ci -> (ci_id ci, ci_renaming ci)) $+ case rc_i rc of+ Left indefc ->+ indefc_includes indefc+ Right instc ->+ map (\ci -> ci { ci_ann_id = fmap DefiniteUnitId (ci_ann_id ci) })+ (instc_includes instc)+ internal_deps = filter isInternal (nodeNeighbors rc)
+ Distribution/Backpack/ConfiguredComponent.hs view
@@ -0,0 +1,292 @@+{-# LANGUAGE PatternGuards #-}+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.ConfiguredComponent (+ ConfiguredComponent(..),+ cc_name,+ cc_cid,+ cc_pkgid,+ toConfiguredComponent,+ toConfiguredComponents,+ dispConfiguredComponent,++ ConfiguredComponentMap,+ extendConfiguredComponentMap,++ -- TODO: Should go somewhere else+ newPackageDepsBehaviour+) where++import Prelude ()+import Distribution.Compat.Prelude hiding ((<>))++import Distribution.Backpack.Id++import Distribution.Types.AnnotatedId+import Distribution.Types.Dependency+import Distribution.Types.ExeDependency+import Distribution.Types.IncludeRenaming+import Distribution.Types.ComponentId+import Distribution.Types.PackageId+import Distribution.Types.PackageName+import Distribution.Types.Mixin+import Distribution.Types.ComponentName+import Distribution.Types.UnqualComponentName+import Distribution.Types.ComponentInclude+import Distribution.Package+import Distribution.PackageDescription as PD hiding (Flag)+import Distribution.Simple.BuildToolDepends+import Distribution.Simple.Setup as Setup+import Distribution.Simple.LocalBuildInfo+import Distribution.Version+import Distribution.Utils.LogProgress+import Distribution.Utils.MapAccum++import Control.Monad+import qualified Data.Set as Set+import qualified Data.Map as Map+import Distribution.Text+import Text.PrettyPrint++-- | A configured component, we know exactly what its 'ComponentId' is,+-- and the 'ComponentId's of the things it depends on.+data ConfiguredComponent+ = ConfiguredComponent {+ -- | Unique identifier of component, plus extra useful info.+ cc_ann_id :: AnnotatedId ComponentId,+ -- | The fragment of syntax from the Cabal file describing this+ -- component.+ cc_component :: Component,+ -- | Is this the public library component of the package?+ -- (If we invoke Setup with an instantiation, this is the+ -- component the instantiation applies to.)+ -- Note that in one-component configure mode, this is+ -- always True, because any component is the "public" one.)+ cc_public :: Bool,+ -- | Dependencies on executables from @build-tools@ and+ -- @build-tool-depends@.+ cc_exe_deps :: [AnnotatedId ComponentId],+ -- | The mixins of this package, including both explicit (from+ -- the @mixins@ field) and implicit (from @build-depends@). Not+ -- mix-in linked yet; component configuration only looks at+ -- 'ComponentId's.+ cc_includes :: [ComponentInclude ComponentId IncludeRenaming]+ }+++-- | Uniquely identifies a configured component.+cc_cid :: ConfiguredComponent -> ComponentId+cc_cid = ann_id . cc_ann_id++-- | The package this component came from.+cc_pkgid :: ConfiguredComponent -> PackageId+cc_pkgid = ann_pid . cc_ann_id++-- | The 'ComponentName' of a component; this uniquely identifies+-- a fragment of syntax within a specified Cabal file describing the+-- component.+cc_name :: ConfiguredComponent -> ComponentName+cc_name = ann_cname . cc_ann_id++-- | Pretty-print a 'ConfiguredComponent'.+dispConfiguredComponent :: ConfiguredComponent -> Doc+dispConfiguredComponent cc =+ hang (text "component" <+> disp (cc_cid cc)) 4+ (vcat [ hsep $ [ text "include", disp (ci_id incl), disp (ci_renaming incl) ]+ | incl <- cc_includes cc+ ])++-- | Construct a 'ConfiguredComponent', given that the 'ComponentId'+-- and library/executable dependencies are known. The primary+-- work this does is handling implicit @backpack-include@ fields.+mkConfiguredComponent+ :: PackageDescription+ -> ComponentId+ -> [AnnotatedId ComponentId] -- lib deps+ -> [AnnotatedId ComponentId] -- exe deps+ -> Component+ -> LogProgress ConfiguredComponent+mkConfiguredComponent pkg_descr this_cid lib_deps exe_deps component = do+ -- Resolve each @mixins@ into the actual dependency+ -- from @lib_deps@.+ explicit_includes <- forM (mixins bi) $ \(Mixin name rns) -> do+ let keys = fixFakePkgName pkg_descr name+ aid <- case Map.lookup keys deps_map of+ Nothing ->+ dieProgress $+ text "Mix-in refers to non-existent package" <+>+ quotes (disp name) $$+ text "(did you forget to add the package to build-depends?)"+ Just r -> return r+ return ComponentInclude {+ ci_ann_id = aid,+ ci_renaming = rns,+ ci_implicit = False+ }++ -- Any @build-depends@ which is not explicitly mentioned in+ -- @backpack-include@ is converted into an "implicit" include.+ let used_explicitly = Set.fromList (map ci_id explicit_includes)+ implicit_includes+ = map (\aid -> ComponentInclude {+ ci_ann_id = aid,+ ci_renaming = defaultIncludeRenaming,+ ci_implicit = True+ })+ $ filter (flip Set.notMember used_explicitly . ann_id) lib_deps++ return ConfiguredComponent {+ cc_ann_id = AnnotatedId {+ ann_id = this_cid,+ ann_pid = package pkg_descr,+ ann_cname = componentName component+ },+ cc_component = component,+ cc_public = is_public,+ cc_exe_deps = exe_deps,+ cc_includes = explicit_includes ++ implicit_includes+ }+ where+ bi = componentBuildInfo component+ deps_map = Map.fromList [ ((packageName dep, ann_cname dep), dep)+ | dep <- lib_deps ]+ is_public = componentName component == CLibName++type ConfiguredComponentMap =+ Map PackageName (Map ComponentName (AnnotatedId ComponentId))++toConfiguredComponent+ :: PackageDescription+ -> ComponentId+ -> ConfiguredComponentMap+ -> Component+ -> LogProgress ConfiguredComponent+toConfiguredComponent pkg_descr this_cid dep_map component = do+ lib_deps <-+ if newPackageDepsBehaviour pkg_descr+ then forM (targetBuildDepends bi) $ \(Dependency name _) -> do+ let (pn, cn) = fixFakePkgName pkg_descr name+ value <- case Map.lookup cn =<< Map.lookup pn dep_map of+ Nothing ->+ dieProgress $+ text "Dependency on unbuildable" <+>+ text (showComponentName cn) <+>+ text "from" <+> disp pn+ Just v -> return v+ return value+ else return old_style_lib_deps+ mkConfiguredComponent+ pkg_descr this_cid+ lib_deps exe_deps component+ where+ bi = componentBuildInfo component+ -- dep_map contains a mix of internal and external deps.+ -- We want all the public libraries (dep_cn == CLibName)+ -- of all external deps (dep /= pn). Note that this+ -- excludes the public library of the current package:+ -- this is not supported by old-style deps behavior+ -- because it would imply a cyclic dependency for the+ -- library itself.+ old_style_lib_deps = [ e+ | (pn, comp_map) <- Map.toList dep_map+ , pn /= packageName pkg_descr+ , (cn, e) <- Map.toList comp_map+ , cn == CLibName ]+ exe_deps =+ [ exe+ | ExeDependency pn cn _ <- getAllToolDependencies pkg_descr bi+ -- The error suppression here is important, because in general+ -- we won't know about external dependencies (e.g., 'happy')+ -- which the package is attempting to use (those deps are only+ -- fed in when cabal-install uses this codepath.)+ -- TODO: Let cabal-install request errors here+ , Just exe <- [Map.lookup (CExeName cn) =<< Map.lookup pn dep_map]+ ]++-- | Also computes the 'ComponentId', and sets cc_public if necessary.+-- This is Cabal-only; cabal-install won't use this.+toConfiguredComponent'+ :: Bool -- use_external_internal_deps+ -> FlagAssignment+ -> PackageDescription+ -> Bool -- deterministic+ -> Flag String -- configIPID (todo: remove me)+ -> Flag ComponentId -- configCID+ -> ConfiguredComponentMap+ -> Component+ -> LogProgress ConfiguredComponent+toConfiguredComponent' use_external_internal_deps flags+ pkg_descr deterministic ipid_flag cid_flag+ dep_map component = do+ cc <- toConfiguredComponent+ pkg_descr this_cid+ dep_map component+ return $ if use_external_internal_deps+ then cc { cc_public = True }+ else cc+ where+ -- TODO: pass component names to it too!+ this_cid = computeComponentId deterministic ipid_flag cid_flag (package pkg_descr)+ (componentName component) (Just (deps, flags))+ deps = [ ann_id aid | m <- Map.elems dep_map+ , aid <- Map.elems m ]++extendConfiguredComponentMap+ :: ConfiguredComponent+ -> ConfiguredComponentMap+ -> ConfiguredComponentMap+extendConfiguredComponentMap cc =+ Map.insertWith Map.union+ (pkgName (cc_pkgid cc))+ (Map.singleton (cc_name cc) (cc_ann_id cc))++-- Compute the 'ComponentId's for a graph of 'Component's. The+-- list of internal components must be topologically sorted+-- based on internal package dependencies, so that any internal+-- dependency points to an entry earlier in the list.+toConfiguredComponents+ :: Bool -- use_external_internal_deps+ -> FlagAssignment+ -> Bool -- deterministic+ -> Flag String -- configIPID+ -> Flag ComponentId -- configCID+ -> PackageDescription+ -> ConfiguredComponentMap+ -> [Component]+ -> LogProgress [ConfiguredComponent]+toConfiguredComponents+ use_external_internal_deps flags deterministic ipid_flag cid_flag pkg_descr+ dep_map comps+ = fmap snd (mapAccumM go dep_map comps)+ where+ go m component = do+ cc <- toConfiguredComponent'+ use_external_internal_deps flags pkg_descr+ deterministic ipid_flag cid_flag+ m component+ return (extendConfiguredComponentMap cc m, cc)++newPackageDepsBehaviourMinVersion :: Version+newPackageDepsBehaviourMinVersion = mkVersion [1,7,1]+++-- In older cabal versions, there was only one set of package dependencies for+-- the whole package. In this version, we can have separate dependencies per+-- target, but we only enable this behaviour if the minimum cabal version+-- specified is >= a certain minimum. Otherwise, for compatibility we use the+-- old behaviour.+newPackageDepsBehaviour :: PackageDescription -> Bool+newPackageDepsBehaviour pkg =+ specVersion pkg >= newPackageDepsBehaviourMinVersion++-- | 'build-depends:' stanzas are currently ambiguous as the external packages+-- and internal libraries are specified the same. For now, we assume internal+-- libraries shadow, and this function disambiguates accordingly, but soon the+-- underlying ambiguity will be addressed.+fixFakePkgName :: PackageDescription -> PackageName -> (PackageName, ComponentName)+fixFakePkgName pkg_descr pn =+ if subLibName `elem` internalLibraries+ then (packageName pkg_descr, CSubLibName subLibName)+ else (pn, CLibName)+ where+ subLibName = packageNameToUnqualComponentName pn+ internalLibraries = mapMaybe libName (allLibraries pkg_descr)
+ Distribution/Backpack/DescribeUnitId.hs view
@@ -0,0 +1,61 @@+{-# LANGUAGE Rank2Types #-}+{-# LANGUAGE FlexibleContexts #-}+module Distribution.Backpack.DescribeUnitId where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.PackageId+import Distribution.Types.ComponentName+import Distribution.Compat.Stack+import Distribution.Verbosity+import Distribution.ModuleName+import Distribution.Text+import Distribution.Simple.Utils++import Text.PrettyPrint++-- Unit identifiers have a well defined, machine-readable format,+-- but this format isn't very user-friendly for users. This+-- module defines some functions for solving common rendering+-- problems one has for displaying these.+--+-- There are three basic problems we tackle:+--+-- - Users don't want to see pkg-0.5-inplace-libname,+-- they want to see "library 'libname' from 'pkg-0.5'"+--+-- - Users don't want to see the raw component identifier, which+-- usually contains a wordy hash that doesn't matter.+--+-- - Users don't want to see a hash of the instantiation: they+-- want to see the actual instantiation, and they want it in+-- interpretable form.+--++-- | Print a Setup message stating (1) what operation we are doing,+-- for (2) which component (with enough details to uniquely identify+-- the build in question.)+--+setupMessage' :: Text a => Verbosity+ -> String -- ^ Operation being done (capitalized), on:+ -> PackageIdentifier -- ^ Package+ -> ComponentName -- ^ Component name+ -> Maybe [(ModuleName, a)] -- ^ Instantiation, if available.+ -- Polymorphic to take+ -- 'OpenModule' or 'Module'+ -> IO ()+setupMessage' verbosity msg pkgid cname mb_insts = withFrozenCallStack $ do+ noticeDoc verbosity $+ case mb_insts of+ Just insts | not (null insts) ->+ hang (msg_doc <+> text "instantiated with") 2+ (vcat [ disp k <+> text "=" <+> disp v+ | (k,v) <- insts ]) $$+ for_doc+ _ ->+ msg_doc <+> for_doc++ where+ msg_doc = text msg <+> text (showComponentName cname)+ for_doc = text "for" <+> disp pkgid <<>> text ".."
+ Distribution/Backpack/FullUnitId.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Backpack.FullUnitId (+ FullUnitId(..),+ FullDb,+ expandOpenUnitId,+ expandUnitId+) where++import Distribution.Backpack+import Distribution.Types.ComponentId+import Distribution.Compat.Prelude++-- Unlike OpenUnitId, which could direct to a UnitId.+data FullUnitId = FullUnitId ComponentId OpenModuleSubst+ deriving (Show, Generic)++type FullDb = DefUnitId -> FullUnitId++expandOpenUnitId :: FullDb -> OpenUnitId -> FullUnitId+expandOpenUnitId _db (IndefFullUnitId cid subst)+ = FullUnitId cid subst+expandOpenUnitId db (DefiniteUnitId uid)+ = expandUnitId db uid++expandUnitId :: FullDb -> DefUnitId -> FullUnitId+expandUnitId db uid = db uid
+ Distribution/Backpack/Id.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE PatternGuards #-}+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.Id(+ computeComponentId,+ computeCompatPackageKey,+ computeCompatPackageName,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.UnqualComponentName+import Distribution.Simple.Compiler hiding (Flag)+import Distribution.PackageDescription as PD hiding (Flag)+import Distribution.Simple.Setup as Setup+import qualified Distribution.Simple.InstallDirs as InstallDirs+import Distribution.Simple.LocalBuildInfo+import Distribution.Types.ComponentId+import Distribution.Types.PackageId+import Distribution.Types.UnitId+import Distribution.Types.MungedPackageName+import Distribution.Utils.Base62+import Distribution.Version++import Distribution.Text+ ( display, simpleParse )++-- | This method computes a default, "good enough" 'ComponentId'+-- for a package. The intent is that cabal-install (or the user) will+-- specify a more detailed IPID via the @--ipid@ flag if necessary.+computeComponentId+ :: Bool -- deterministic mode+ -> Flag String+ -> Flag ComponentId+ -> PackageIdentifier+ -> ComponentName+ -- This is used by cabal-install's legacy codepath+ -> Maybe ([ComponentId], FlagAssignment)+ -> ComponentId+computeComponentId deterministic mb_ipid mb_cid pid cname mb_details =+ -- show is found to be faster than intercalate and then replacement of+ -- special character used in intercalating. We cannot simply hash by+ -- doubly concating list, as it just flatten out the nested list, so+ -- different sources can produce same hash+ let hash_suffix+ | Just (dep_ipids, flags) <- mb_details+ = "-" ++ hashToBase62+ -- For safety, include the package + version here+ -- for GHC 7.10, where just the hash is used as+ -- the package key+ ( display pid+ ++ show dep_ipids+ ++ show flags )+ | otherwise = ""+ generated_base = display pid ++ hash_suffix+ explicit_base cid0 = fromPathTemplate (InstallDirs.substPathTemplate env+ (toPathTemplate cid0))+ -- Hack to reuse install dirs machinery+ -- NB: no real IPID available at this point+ where env = packageTemplateEnv pid (mkUnitId "")+ actual_base = case mb_ipid of+ Flag ipid0 -> explicit_base ipid0+ NoFlag | deterministic -> display pid+ | otherwise -> generated_base+ in case mb_cid of+ Flag cid -> cid+ NoFlag -> mkComponentId $ actual_base+ ++ (case componentNameString cname of+ Nothing -> ""+ Just s -> "-" ++ unUnqualComponentName s)++-- | In GHC 8.0, the string we pass to GHC to use for symbol+-- names for a package can be an arbitrary, IPID-compatible string.+-- However, prior to GHC 8.0 there are some restrictions on what+-- format this string can be (due to how ghc-pkg parsed the key):+--+-- 1. In GHC 7.10, the string had either be of the form+-- foo_ABCD, where foo is a non-semantic alphanumeric/hyphenated+-- prefix and ABCD is two base-64 encoded 64-bit integers,+-- or a GHC 7.8 style identifier.+--+-- 2. In GHC 7.8, the string had to be a valid package identifier+-- like foo-0.1.+--+-- So, the problem is that Cabal, in general, has a general IPID,+-- but needs to figure out a package key / package ID that the+-- old ghc-pkg will actually accept. But there's an EVERY WORSE+-- problem: if ghc-pkg decides to parse an identifier foo-0.1-xxx+-- as if it were a package identifier, which means it will SILENTLY+-- DROP the "xxx" (because it's a tag, and Cabal does not allow tags.)+-- So we must CONNIVE to ensure that we don't pick something that+-- looks like this.+--+-- So this function attempts to define a mapping into the old formats.+--+-- The mapping for GHC 7.8 and before:+--+-- * We use the *compatibility* package name and version. For+-- public libraries this is just the package identifier; for+-- internal libraries, it's something like "z-pkgname-z-libname-0.1".+-- See 'computeCompatPackageName' for more details.+--+-- The mapping for GHC 7.10:+--+-- * For CLibName:+-- If the IPID is of the form foo-0.1-ABCDEF where foo_ABCDEF would+-- validly parse as a package key, we pass "ABCDEF". (NB: not+-- all hashes parse this way, because GHC 7.10 mandated that+-- these hashes be two base-62 encoded 64 bit integers),+-- but hashes that Cabal generated using 'computeComponentId'+-- are guaranteed to have this form.+--+-- If it is not of this form, we rehash the IPID into the+-- correct form and pass that.+--+-- * For sub-components, we rehash the IPID into the correct format+-- and pass that.+--+computeCompatPackageKey+ :: Compiler+ -> MungedPackageName+ -> Version+ -> UnitId+ -> String+computeCompatPackageKey comp pkg_name pkg_version uid+ | not (packageKeySupported comp) =+ display pkg_name ++ "-" ++ display pkg_version+ | not (unifiedIPIDRequired comp) =+ let str = unUnitId uid -- assume no Backpack support+ mb_verbatim_key+ = case simpleParse str :: Maybe PackageId of+ -- Something like 'foo-0.1', use it verbatim.+ -- (NB: hash tags look like tags, so they are parsed,+ -- so the extra equality check tests if a tag was dropped.)+ Just pid0 | display pid0 == str -> Just str+ _ -> Nothing+ mb_truncated_key+ = let cand = reverse (takeWhile isAlphaNum (reverse str))+ in if length cand == 22 && all isAlphaNum cand+ then Just cand+ else Nothing+ rehashed_key = hashToBase62 str+ in fromMaybe rehashed_key (mb_verbatim_key `mplus` mb_truncated_key)+ | otherwise = display uid
+ Distribution/Backpack/LinkedComponent.hs view
@@ -0,0 +1,393 @@+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeFamilies #-}+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.LinkedComponent (+ LinkedComponent(..),+ lc_insts,+ lc_uid,+ lc_cid,+ lc_pkgid,+ toLinkedComponent,+ toLinkedComponents,+ dispLinkedComponent,+ LinkedComponentMap,+ extendLinkedComponentMap,+) where++import Prelude ()+import Distribution.Compat.Prelude hiding ((<>))++import Distribution.Backpack+import Distribution.Backpack.FullUnitId+import Distribution.Backpack.ConfiguredComponent+import Distribution.Backpack.ModuleShape+import Distribution.Backpack.ModuleScope+import Distribution.Backpack.UnifyM+import Distribution.Backpack.MixLink+import Distribution.Utils.MapAccum++import Distribution.Types.AnnotatedId+import Distribution.Types.ComponentName+import Distribution.Types.ModuleRenaming+import Distribution.Types.IncludeRenaming+import Distribution.Types.ComponentInclude+import Distribution.Types.ComponentId+import Distribution.Types.PackageId+import Distribution.Package+import Distribution.PackageDescription as PD hiding (Flag)+import Distribution.ModuleName+import Distribution.Simple.LocalBuildInfo+import Distribution.Verbosity+import Distribution.Utils.LogProgress++import qualified Data.Set as Set+import qualified Data.Map as Map+import Data.Traversable+ ( mapM )+import Distribution.Text+ ( Text(disp) )+import Text.PrettyPrint+import Data.Either++-- | A linked component is a component that has been mix-in linked, at+-- which point we have determined how all the dependencies of the+-- component are explicitly instantiated (in the form of an OpenUnitId).+-- 'ConfiguredComponent' is mix-in linked into 'LinkedComponent', which+-- is then instantiated into 'ReadyComponent'.+data LinkedComponent+ = LinkedComponent {+ -- | Uniquely identifies linked component+ lc_ann_id :: AnnotatedId ComponentId,+ -- | Corresponds to 'cc_component'.+ lc_component :: Component,+ -- | @build-tools@ and @build-tool-depends@ dependencies.+ -- Corresponds to 'cc_exe_deps'.+ lc_exe_deps :: [AnnotatedId OpenUnitId],+ -- | Is this the public library of a package? Corresponds to+ -- 'cc_public'.+ lc_public :: Bool,+ -- | Corresponds to 'cc_includes', but (1) this does not contain+ -- includes of signature packages (packages with no exports),+ -- and (2) the 'ModuleRenaming' for requirements (stored in+ -- 'IncludeRenaming') has been removed, as it is reflected in+ -- 'OpenUnitId'.)+ lc_includes :: [ComponentInclude OpenUnitId ModuleRenaming],+ -- | Like 'lc_includes', but this specifies includes on+ -- signature packages which have no exports.+ lc_sig_includes :: [ComponentInclude OpenUnitId ModuleRenaming],+ -- | The module shape computed by mix-in linking. This is+ -- newly computed from 'ConfiguredComponent'+ lc_shape :: ModuleShape+ }++-- | Uniquely identifies a 'LinkedComponent'. Corresponds to+-- 'cc_cid'.+lc_cid :: LinkedComponent -> ComponentId+lc_cid = ann_id . lc_ann_id++-- | Corresponds to 'cc_pkgid'.+lc_pkgid :: LinkedComponent -> PackageId+lc_pkgid = ann_pid . lc_ann_id++-- | The 'OpenUnitId' of this component in the "default" instantiation.+-- See also 'lc_insts'. 'LinkedComponent's cannot be instantiated+-- (e.g., there is no 'ModSubst' instance for them).+lc_uid :: LinkedComponent -> OpenUnitId+lc_uid lc = IndefFullUnitId (lc_cid lc) . Map.fromList $ lc_insts lc++-- | The instantiation of 'lc_uid'; this always has the invariant+-- that it is a mapping from a module name @A@ to @<A>@ (the hole A).+lc_insts :: LinkedComponent -> [(ModuleName, OpenModule)]+lc_insts lc = [ (req, OpenModuleVar req)+ | req <- Set.toList (modShapeRequires (lc_shape lc)) ]++dispLinkedComponent :: LinkedComponent -> Doc+dispLinkedComponent lc =+ hang (text "unit" <+> disp (lc_uid lc)) 4 $+ vcat [ text "include" <+> disp (ci_id incl) <+> disp (ci_renaming incl)+ | incl <- lc_includes lc ]+ $+$+ vcat [ text "signature include" <+> disp (ci_id incl)+ | incl <- lc_sig_includes lc ]+ $+$ dispOpenModuleSubst (modShapeProvides (lc_shape lc))++instance Package LinkedComponent where+ packageId = lc_pkgid++toLinkedComponent+ :: Verbosity+ -> FullDb+ -> PackageId+ -> LinkedComponentMap+ -> ConfiguredComponent+ -> LogProgress LinkedComponent+toLinkedComponent verbosity db this_pid pkg_map ConfiguredComponent {+ cc_ann_id = aid@AnnotatedId { ann_id = this_cid, ann_cname = compname },+ cc_component = component,+ cc_exe_deps = exe_deps,+ cc_public = is_public,+ cc_includes = cid_includes+ } = do+ let+ -- The explicitly specified requirements, provisions and+ -- reexports from the Cabal file. These are only non-empty for+ -- libraries; everything else is trivial.+ (src_reqs :: [ModuleName],+ src_provs :: [ModuleName],+ src_reexports :: [ModuleReexport]) =+ case component of+ CLib lib -> (signatures lib,+ exposedModules lib,+ reexportedModules lib)+ _ -> ([], [], [])++ -- Take each included ComponentId and resolve it into an+ -- *unlinked* unit identity. We will use unification (relying+ -- on the ModuleShape) to resolve these into linked identities.+ unlinked_includes :: [ComponentInclude (OpenUnitId, ModuleShape) IncludeRenaming]+ unlinked_includes = [ ComponentInclude (fmap lookupUid dep_aid) rns i+ | ComponentInclude dep_aid rns i <- cid_includes ]++ lookupUid :: ComponentId -> (OpenUnitId, ModuleShape)+ lookupUid cid = fromMaybe (error "linkComponent: lookupUid")+ (Map.lookup cid pkg_map)++ let orErr (Right x) = return x+ orErr (Left [err]) = dieProgress err+ orErr (Left errs) = do+ dieProgress (vcat (intersperse (text "") -- double newline!+ [ hang (text "-") 2 err | err <- errs]))++ -- OK, actually do unification+ -- TODO: the unification monad might return errors, in which+ -- case we have to deal. Use monadic bind for now.+ (linked_shape0 :: ModuleScope,+ linked_includes0 :: [ComponentInclude OpenUnitId ModuleRenaming],+ linked_sig_includes0 :: [ComponentInclude OpenUnitId ModuleRenaming])+ <- orErr $ runUnifyM verbosity db $ do+ -- The unification monad is implemented using mutable+ -- references. Thus, we must convert our *pure* data+ -- structures into mutable ones to perform unification.+ --+ {-+ let convertReq :: ModuleName -> UnifyM s (ModuleScopeU s)+ convertReq req = do+ req_u <- convertModule (OpenModuleVar req)+ return (Map.empty, Map.singleton req req_u)+ -- NB: We DON'T convert locally defined modules, as in the+ -- absence of mutual recursion across packages they+ -- cannot participate in mix-in linking.+ -}+ (shapes_u, all_includes_u) <- fmap unzip (mapM convertInclude unlinked_includes)+ failIfErrs -- Prevent error cascade+ -- Mix-in link everything! mixLink is the real workhorse.+ shape_u <- mixLink shapes_u+ -- shape_u <- foldM mixLink emptyModuleScopeU (shapes_u ++ src_reqs_u)+ -- src_reqs_u <- mapM convertReq src_reqs+ -- Read out all the final results by converting back+ -- into a pure representation.+ let convertIncludeU (ComponentInclude dep_aid rns i) = do+ uid <- convertUnitIdU (ann_id dep_aid)+ return (ComponentInclude {+ ci_ann_id = dep_aid { ann_id = uid },+ ci_renaming = rns,+ ci_implicit = i+ })+ shape <- convertModuleScopeU shape_u+ let (includes_u, sig_includes_u) = partitionEithers all_includes_u+ incls <- mapM convertIncludeU includes_u+ sig_incls <- mapM convertIncludeU sig_includes_u+ return (shape, incls, sig_incls)++ -- linked_shape0 is almost complete, but it doesn't contain+ -- the actual modules we export ourselves. Add them!+ let reqs = Map.keysSet (modScopeRequires linked_shape0)+ `Set.union` Set.fromList src_reqs+ -- TODO: check that there aren't pre-filled requirements...+ insts = [ (req, OpenModuleVar req)+ | req <- Set.toList reqs ]+ this_uid = IndefFullUnitId this_cid . Map.fromList $ insts++ -- add the local exports to the scope+ local_source m = [ModuleSource (packageName this_pid)+ compname+ defaultIncludeRenaming m True]+ local_exports = Map.fromListWith (++) $+ [ (mod_name, local_source (OpenModule this_uid mod_name)) | mod_name <- src_provs ]+ local_reqs = Map.fromListWith (++) $+ [ (mod_name, local_source (OpenModuleVar mod_name)) | mod_name <- src_reqs ]+ -- NB: do NOT include hidden modules here: GHC 7.10's ghc-pkg+ -- won't allow it (since someone could directly synthesize+ -- an 'InstalledPackageInfo' that violates abstraction.)+ -- Though, maybe it should be relaxed?+ linked_shape = linked_shape0 {+ modScopeProvides =+ Map.unionWith (++)+ local_exports+ (modScopeProvides linked_shape0),+ -- TODO: test that requirements aren't already+ -- in scope+ modScopeRequires =+ Map.unionWith (++)+ local_reqs+ (modScopeRequires linked_shape0)+ }++ let isNotLib (CLib _) = False+ isNotLib _ = True+ when (not (Set.null reqs) && isNotLib component) $+ dieProgress $+ hang (text "Non-library component has unfilled requirements:")+ 4 (vcat [disp req | req <- Set.toList reqs])++ -- OK, compute the reexports+ -- TODO: This code reports the errors for reexports one reexport at+ -- a time. Better to collect them all up and report them all at+ -- once.+ let hdl :: [Either Doc a] -> LogProgress [a]+ hdl es =+ case partitionEithers es of+ ([], rs) -> return rs+ (ls, _) ->+ dieProgress $+ hang (text "Problem with module re-exports:") 2+ (vcat [hang (text "-") 2 l | l <- ls])+ reexports_list <- hdl . (flip map) src_reexports $ \reex@(ModuleReexport mb_pn from to) -> do+ case Map.lookup from (modScopeProvides linked_shape) of+ Just cands@(x0:xs0) -> do+ -- Make sure there is at least one candidate+ (x, xs) <-+ case mb_pn of+ Just pn ->+ case filter ((pn==) . msrc_pkgname) cands of+ (x1:xs1) -> return (x1, xs1)+ _ -> Left (brokenReexportMsg reex)+ Nothing -> return (x0, xs0)+ -- Test that all the candidates are consistent+ case filter (\x' -> msrc_module x /= msrc_module x') xs of+ [] -> return ()+ _ -> Left $ ambiguousReexportMsg reex x xs+ return (to, msrc_module x)+ _ ->+ Left (brokenReexportMsg reex)++ -- TODO: maybe check this earlier; it's syntactically obvious.+ let build_reexports m (k, v)+ | Map.member k m =+ dieProgress $ hsep+ [ text "Module name ", disp k, text " is exported multiple times." ]+ | otherwise = return (Map.insert k v m)+ provs <- foldM build_reexports Map.empty $+ -- TODO: doublecheck we have checked for+ -- src_provs duplicates already!+ [ (mod_name, OpenModule this_uid mod_name) | mod_name <- src_provs ] +++ reexports_list++ let final_linked_shape = ModuleShape provs (Map.keysSet (modScopeRequires linked_shape))++ -- See Note Note [Signature package special case]+ let (linked_includes, linked_sig_includes)+ | Set.null reqs = (linked_includes0 ++ linked_sig_includes0, [])+ | otherwise = (linked_includes0, linked_sig_includes0)++ return $ LinkedComponent {+ lc_ann_id = aid,+ lc_component = component,+ lc_public = is_public,+ -- These must be executables+ lc_exe_deps = map (fmap (\cid -> IndefFullUnitId cid Map.empty)) exe_deps,+ lc_shape = final_linked_shape,+ lc_includes = linked_includes,+ lc_sig_includes = linked_sig_includes+ }++-- Note [Signature package special case]+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-- Suppose we have p-indef, which depends on str-sig and inherits+-- the hole from that signature package. When we instantiate p-indef,+-- it's a bit pointless to also go ahead and build str-sig, because+-- str-sig cannot possibly have contributed any code to the package+-- in question. Furthermore, because the signature was inherited to+-- p-indef, if we test matching against p-indef, we also have tested+-- matching against p-sig. In fact, skipping p-sig is *mandatory*,+-- because p-indef may have thinned it (so that an implementation may+-- match p-indef but not p-sig.)+--+-- However, suppose that we have a package which mixes together str-sig+-- and str-bytestring, with the intent of *checking* that str-sig is+-- implemented by str-bytestring. Here, it's quite important to+-- build an instantiated str-sig, since that is the only way we will+-- actually end up testing if the matching works. Note that this+-- admonition only applies if the package has NO requirements; if it+-- has any requirements, we will typecheck it as an indefinite+-- package, at which point the signature includes will be passed to+-- GHC who will in turn actually do the checking to make sure they+-- are instantiated correctly.++-- Handle mix-in linking for components. In the absence of Backpack,+-- every ComponentId gets converted into a UnitId by way of SimpleUnitId.+toLinkedComponents+ :: Verbosity+ -> FullDb+ -> PackageId+ -> LinkedComponentMap+ -> [ConfiguredComponent]+ -> LogProgress [LinkedComponent]+toLinkedComponents verbosity db this_pid lc_map0 comps+ = fmap snd (mapAccumM go lc_map0 comps)+ where+ go :: Map ComponentId (OpenUnitId, ModuleShape)+ -> ConfiguredComponent+ -> LogProgress (Map ComponentId (OpenUnitId, ModuleShape), LinkedComponent)+ go lc_map cc = do+ lc <- addProgressCtx (text "In the stanza" <+> text (componentNameStanza (cc_name cc))) $+ toLinkedComponent verbosity db this_pid lc_map cc+ return (extendLinkedComponentMap lc lc_map, lc)++type LinkedComponentMap = Map ComponentId (OpenUnitId, ModuleShape)++extendLinkedComponentMap :: LinkedComponent+ -> LinkedComponentMap+ -> LinkedComponentMap+extendLinkedComponentMap lc m =+ Map.insert (lc_cid lc) (lc_uid lc, lc_shape lc) m++brokenReexportMsg :: ModuleReexport -> Doc+brokenReexportMsg (ModuleReexport (Just pn) from _to) =+ vcat [ text "The package" <+> quotes (disp pn)+ , text "does not export a module" <+> quotes (disp from) ]+brokenReexportMsg (ModuleReexport Nothing from _to) =+ vcat [ text "The module" <+> quotes (disp from)+ , text "is not exported by any suitable package."+ , text "It occurs in neither the 'exposed-modules' of this package,"+ , text "nor any of its 'build-depends' dependencies." ]++ambiguousReexportMsg :: ModuleReexport -> ModuleSource -> [ModuleSource] -> Doc+ambiguousReexportMsg (ModuleReexport mb_pn from _to) y1 ys =+ vcat [ text "Ambiguous reexport" <+> quotes (disp from)+ , hang (text "It could refer to either:") 2+ (vcat (msg : msgs))+ , help_msg mb_pn ]+ where+ msg = text " " <+> displaySource y1+ msgs = [text "or" <+> displaySource y | y <- ys]+ help_msg Nothing =+ -- TODO: This advice doesn't help if the ambiguous exports+ -- come from a package named the same thing+ vcat [ text "The ambiguity can be resolved by qualifying the"+ , text "re-export with a package name."+ , text "The syntax is 'packagename:ModuleName [as NewName]'." ]+ -- Qualifying won't help that much.+ help_msg (Just _) =+ vcat [ text "The ambiguity can be resolved by using the"+ , text "mixins field to rename one of the module"+ , text "names differently." ]+ displaySource y+ = vcat [ quotes (disp (msrc_module y))+ , text "brought into scope by" <+>+ if not (isDefaultIncludeRenaming (msrc_renaming y))+ then text "the mixin" <+>+ disp (msrc_pkgname y) <+>+ parens (disp (includeProvidesRn (msrc_renaming y)))+ else text "the build dependency on" <+> disp (msrc_pkgname y)+ ]
+ Distribution/Backpack/MixLink.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE NondecreasingIndentation #-}+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.MixLink (+ mixLink,+) where++import Prelude ()+import Distribution.Compat.Prelude hiding (mod)++import Distribution.Backpack+import Distribution.Backpack.UnifyM+import Distribution.Backpack.FullUnitId++import qualified Distribution.Utils.UnionFind as UnionFind+import Distribution.ModuleName+import Distribution.Text+import Distribution.Types.ComponentId+import Distribution.Types.ComponentName++import Text.PrettyPrint+import Control.Monad+import qualified Data.Map as Map+import qualified Data.Foldable as F++-----------------------------------------------------------------------+-- Linking++-- | Given to scopes of provisions and requirements, link them together.+mixLink :: [ModuleScopeU s] -> UnifyM s (ModuleScopeU s)+mixLink scopes = do+ let provs = Map.unionsWith (++) (map fst scopes)+ -- Invariant: any identically named holes refer to same mutable cell+ reqs = Map.unionsWith (++) (map snd scopes)+ filled = Map.intersectionWithKey linkProvision provs reqs+ F.sequenceA_ filled+ let remaining = Map.difference reqs filled+ return (provs, remaining)++-- TODO: Deduplicate this with Distribution.Backpack.UnifyM.ci_msg+dispSource :: ModuleSourceU s -> Doc+dispSource src+ | usrc_implicit src+ = text "build-depends:" <+> pp_pn+ | otherwise+ = text "mixins:" <+> pp_pn <+> disp (usrc_renaming src)+ where+ pp_pn =+ -- NB: This syntax isn't quite the source syntax, but it+ -- should be clear enough. To do source syntax, we'd+ -- need to know what the package we're linking is.+ case usrc_compname src of+ CLibName -> disp (usrc_pkgname src)+ CSubLibName cn -> disp (usrc_pkgname src) <<>> colon <<>> disp cn+ -- Shouldn't happen+ cn -> disp (usrc_pkgname src) <+> parens (disp cn)++-- | Link a list of possibly provided modules to a single+-- requirement. This applies a side-condition that all+-- of the provided modules at the same name are *actually*+-- the same module.+linkProvision :: ModuleName+ -> [ModuleSourceU s] -- provs+ -> [ModuleSourceU s] -- reqs+ -> UnifyM s [ModuleSourceU s]+linkProvision mod_name ret@(prov:provs) (req:reqs) = do+ -- TODO: coalesce all the non-unifying modules together+ forM_ provs $ \prov' -> do+ -- Careful: read it out BEFORE unifying, because the+ -- unification algorithm preemptively unifies modules+ mod <- convertModuleU (usrc_module prov)+ mod' <- convertModuleU (usrc_module prov')+ r <- unify prov prov'+ case r of+ Just () -> return ()+ Nothing -> do+ addErr $+ text "Ambiguous module" <+> quotes (disp mod_name) $$+ text "It could refer to" <+>+ ( text " " <+> (quotes (disp mod) $$ in_scope_by prov) $$+ text "or" <+> (quotes (disp mod') $$ in_scope_by prov') ) $$+ link_doc+ mod <- convertModuleU (usrc_module prov)+ req_mod <- convertModuleU (usrc_module req)+ r <- unify prov req+ case r of+ Just () -> return ()+ Nothing -> do+ -- TODO: Record and report WHERE the bad constraint came from+ addErr $ text "Could not instantiate requirement" <+> quotes (disp mod_name) $$+ nest 4 (text "Expected:" <+> disp mod $$+ text "Actual: " <+> disp req_mod) $$+ parens (text "This can occur if an exposed module of" <+>+ text "a libraries shares a name with another module.") $$+ link_doc+ return ret+ where+ unify s1 s2 = tryM $ addErrContext short_link_doc+ $ unifyModule (usrc_module s1) (usrc_module s2)+ in_scope_by s = text "brought into scope by" <+> dispSource s+ short_link_doc = text "While filling requirement" <+> quotes (disp mod_name)+ link_doc = text "While filling requirements of" <+> reqs_doc+ reqs_doc+ | null reqs = dispSource req+ | otherwise = ( text " " <+> dispSource req $$+ vcat [ text "and" <+> dispSource r | r <- reqs])+linkProvision _ _ _ = error "linkProvision"++++-----------------------------------------------------------------------+-- The unification algorithm++-- This is based off of https://gist.github.com/amnn/559551517d020dbb6588+-- which is a translation from Huet's thesis.++unifyUnitId :: UnitIdU s -> UnitIdU s -> UnifyM s ()+unifyUnitId uid1_u uid2_u+ | uid1_u == uid2_u = return ()+ | otherwise = do+ xuid1 <- liftST $ UnionFind.find uid1_u+ xuid2 <- liftST $ UnionFind.find uid2_u+ case (xuid1, xuid2) of+ (UnitIdThunkU u1, UnitIdThunkU u2)+ | u1 == u2 -> return ()+ | otherwise ->+ failWith $ hang (text "Couldn't match unit IDs:") 4+ (text " " <+> disp u1 $$+ text "and" <+> disp u2)+ (UnitIdThunkU uid1, UnitIdU _ cid2 insts2)+ -> unifyThunkWith cid2 insts2 uid2_u uid1 uid1_u+ (UnitIdU _ cid1 insts1, UnitIdThunkU uid2)+ -> unifyThunkWith cid1 insts1 uid1_u uid2 uid2_u+ (UnitIdU _ cid1 insts1, UnitIdU _ cid2 insts2)+ -> unifyInner cid1 insts1 uid1_u cid2 insts2 uid2_u++unifyThunkWith :: ComponentId+ -> Map ModuleName (ModuleU s)+ -> UnitIdU s+ -> DefUnitId+ -> UnitIdU s+ -> UnifyM s ()+unifyThunkWith cid1 insts1 uid1_u uid2 uid2_u = do+ db <- fmap unify_db getUnifEnv+ let FullUnitId cid2 insts2' = expandUnitId db uid2+ insts2 <- convertModuleSubst insts2'+ unifyInner cid1 insts1 uid1_u cid2 insts2 uid2_u++unifyInner :: ComponentId+ -> Map ModuleName (ModuleU s)+ -> UnitIdU s+ -> ComponentId+ -> Map ModuleName (ModuleU s)+ -> UnitIdU s+ -> UnifyM s ()+unifyInner cid1 insts1 uid1_u cid2 insts2 uid2_u = do+ when (cid1 /= cid2) $+ -- TODO: if we had a package identifier, could be an+ -- easier to understand error message.+ failWith $+ hang (text "Couldn't match component IDs:") 4+ (text " " <+> disp cid1 $$+ text "and" <+> disp cid2)+ -- The KEY STEP which makes this a Huet-style unification+ -- algorithm. (Also a payoff of using union-find.)+ -- We can build infinite unit IDs this way, which is necessary+ -- for support mutual recursion. NB: union keeps the SECOND+ -- descriptor, so we always arrange for a UnitIdThunkU to live+ -- there.+ liftST $ UnionFind.union uid1_u uid2_u+ F.sequenceA_ $ Map.intersectionWith unifyModule insts1 insts2++-- | Imperatively unify two modules.+unifyModule :: ModuleU s -> ModuleU s -> UnifyM s ()+unifyModule mod1_u mod2_u+ | mod1_u == mod2_u = return ()+ | otherwise = do+ mod1 <- liftST $ UnionFind.find mod1_u+ mod2 <- liftST $ UnionFind.find mod2_u+ case (mod1, mod2) of+ (ModuleVarU _, _) -> liftST $ UnionFind.union mod1_u mod2_u+ (_, ModuleVarU _) -> liftST $ UnionFind.union mod2_u mod1_u+ (ModuleU uid1 mod_name1, ModuleU uid2 mod_name2) -> do+ when (mod_name1 /= mod_name2) $+ failWith $+ hang (text "Cannot match module names") 4 $+ text " " <+> disp mod_name1 $$+ text "and" <+> disp mod_name2+ -- NB: this is not actually necessary (because we'll+ -- detect loops eventually in 'unifyUnitId'), but it+ -- seems harmless enough+ liftST $ UnionFind.union mod1_u mod2_u+ unifyUnitId uid1 uid2
+ Distribution/Backpack/ModSubst.hs view
@@ -0,0 +1,54 @@+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE PatternGuards #-}++-- | A type class 'ModSubst' for objects which can have 'ModuleSubst'+-- applied to them.+--+-- See also <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>++module Distribution.Backpack.ModSubst (+ ModSubst(..),+) where++import Prelude ()+import Distribution.Compat.Prelude hiding (mod)++import Distribution.ModuleName++import Distribution.Backpack++import qualified Data.Map as Map+import Data.Set (Set)+import qualified Data.Set as Set++-- | Applying module substitutions to semantic objects.+class ModSubst a where+ -- In notation, substitution is postfix, which implies+ -- putting it on the right hand side, but for partial+ -- application it's more convenient to have it on the left+ -- hand side.+ modSubst :: OpenModuleSubst -> a -> a++instance ModSubst OpenModule where+ modSubst subst (OpenModule cid mod_name) = OpenModule (modSubst subst cid) mod_name+ modSubst subst mod@(OpenModuleVar mod_name)+ | Just mod' <- Map.lookup mod_name subst = mod'+ | otherwise = mod++instance ModSubst OpenUnitId where+ modSubst subst (IndefFullUnitId cid insts) = IndefFullUnitId cid (modSubst subst insts)+ modSubst _subst uid = uid++instance ModSubst (Set ModuleName) where+ modSubst subst reqs+ = Set.union (Set.difference reqs (Map.keysSet subst))+ (openModuleSubstFreeHoles subst)++-- Substitutions are functorial. NB: this means that+-- there is an @instance 'ModSubst' 'ModuleSubst'@!+instance ModSubst a => ModSubst (Map k a) where+ modSubst subst = fmap (modSubst subst)+instance ModSubst a => ModSubst [a] where+ modSubst subst = fmap (modSubst subst)+instance ModSubst a => ModSubst (k, a) where+ modSubst subst (x,y) = (x, modSubst subst y)
+ Distribution/Backpack/ModuleScope.hs view
@@ -0,0 +1,88 @@+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.ModuleScope (+ -- * Module scopes+ ModuleScope(..),+ ModuleProvides,+ ModuleRequires,+ ModuleSource(..),+ emptyModuleScope,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.ModuleName+import Distribution.Types.IncludeRenaming+import Distribution.Types.PackageName+import Distribution.Types.ComponentName++import Distribution.Backpack+import Distribution.Backpack.ModSubst++import qualified Data.Map as Map+++-----------------------------------------------------------------------+-- Module scopes++-- Why is ModuleProvides so complicated? The basic problem is that+-- we want to support this:+--+-- package p where+-- include q (A)+-- include r (A)+-- module B where+-- import "q" A+-- import "r" A+--+-- Specifically, in Cabal today it is NOT an error have two modules in+-- scope with the same identifier. So we need to preserve this for+-- Backpack. The modification is that an ambiguous module name is+-- OK... as long as it is NOT used to fill a requirement!+--+-- So as a first try, we might try deferring unifying provisions that+-- are being glommed together, and check for equality after the fact.+-- But this doesn't work, because what if a multi-module provision+-- is used to fill a requirement?! So you do the equality test+-- IMMEDIATELY before a requirement fill happens... or never at all.+--+-- Alternate strategy: go ahead and unify, and then if it is revealed+-- that some requirements got filled "out-of-thin-air", error.+++-- | A 'ModuleScope' describes the modules and requirements that+-- are in-scope as we are processing a Cabal package. Unlike+-- a 'ModuleShape', there may be multiple modules in scope at+-- the same 'ModuleName'; this is only an error if we attempt+-- to use those modules to fill a requirement. A 'ModuleScope'+-- can influence the 'ModuleShape' via a reexport.+data ModuleScope = ModuleScope {+ modScopeProvides :: ModuleProvides,+ modScopeRequires :: ModuleRequires+ }++-- | Every 'Module' in scope at a 'ModuleName' is annotated with+-- the 'PackageName' it comes from.+type ModuleProvides = Map ModuleName [ModuleSource]+-- | INVARIANT: entries for ModuleName m, have msrc_module is OpenModuleVar m+type ModuleRequires = Map ModuleName [ModuleSource]+-- TODO: consider newtping the two types above.++data ModuleSource =+ ModuleSource {+ -- We don't have line numbers, but if we did the+ -- package name and renaming could be associated+ -- with that as well+ msrc_pkgname :: PackageName,+ msrc_compname :: ComponentName,+ msrc_renaming :: IncludeRenaming,+ msrc_module :: OpenModule,+ msrc_implicit :: Bool+ }++-- | An empty 'ModuleScope'.+emptyModuleScope :: ModuleScope+emptyModuleScope = ModuleScope Map.empty Map.empty++instance ModSubst ModuleSource where+ modSubst subst src = src { msrc_module = modSubst subst (msrc_module src) }
+ Distribution/Backpack/ModuleShape.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.ModuleShape (+ -- * Module shapes+ ModuleShape(..),+ emptyModuleShape,+ shapeInstalledPackage,+) where++import Prelude ()+import Distribution.Compat.Prelude hiding (mod)++import Distribution.ModuleName+import Distribution.InstalledPackageInfo as IPI++import Distribution.Backpack.ModSubst+import Distribution.Backpack++import qualified Data.Map as Map+import Data.Set (Set)+import qualified Data.Set as Set++-----------------------------------------------------------------------+-- Module shapes++-- | A 'ModuleShape' describes the provisions and requirements of+-- a library. We can extract a 'ModuleShape' from an+-- 'InstalledPackageInfo'.+data ModuleShape = ModuleShape {+ modShapeProvides :: OpenModuleSubst,+ modShapeRequires :: Set ModuleName+ }+ deriving (Eq, Show, Generic)++instance Binary ModuleShape++instance ModSubst ModuleShape where+ modSubst subst (ModuleShape provs reqs)+ = ModuleShape (modSubst subst provs) (modSubst subst reqs)++-- | The default module shape, with no provisions and no requirements.+emptyModuleShape :: ModuleShape+emptyModuleShape = ModuleShape Map.empty Set.empty++-- Food for thought: suppose we apply the Merkel tree optimization.+-- Imagine this situation:+--+-- component p+-- signature H+-- module P+-- component h+-- module H+-- component a+-- signature P+-- module A+-- component q(P)+-- include p+-- include h+-- component r+-- include q (P)+-- include p (P) requires (H)+-- include h (H)+-- include a (A) requires (P)+--+-- Component r should not have any conflicts, since after mix-in linking+-- the two P imports will end up being the same, so we can properly+-- instantiate it. But to know that q's P is p:P instantiated with h:H,+-- we have to be able to expand its unit id. Maybe we can expand it+-- lazily but in some cases it will need to be expanded.+--+-- FWIW, the way that GHC handles this is by improving unit IDs as+-- soon as it sees an improved one in the package database. This+-- is a bit disgusting.+shapeInstalledPackage :: IPI.InstalledPackageInfo -> ModuleShape+shapeInstalledPackage ipi = ModuleShape (Map.fromList provs) reqs+ where+ uid = installedOpenUnitId ipi+ provs = map shapeExposedModule (IPI.exposedModules ipi)+ reqs = requiredSignatures ipi+ shapeExposedModule (IPI.ExposedModule mod_name Nothing)+ = (mod_name, OpenModule uid mod_name)+ shapeExposedModule (IPI.ExposedModule mod_name (Just mod))+ = (mod_name, mod)
+ Distribution/Backpack/PreExistingComponent.hs view
@@ -0,0 +1,67 @@+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.PreExistingComponent (+ PreExistingComponent(..),+ ipiToPreExistingComponent,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Backpack.ModuleShape+import Distribution.Backpack+import Distribution.Types.ComponentId+import Distribution.Types.MungedPackageId+import Distribution.Types.PackageId+import Distribution.Types.UnitId+import Distribution.Types.ComponentName+import Distribution.Types.PackageName+import Distribution.Package++import qualified Data.Map as Map+import qualified Distribution.InstalledPackageInfo as Installed+import Distribution.InstalledPackageInfo (InstalledPackageInfo)++-- | Stripped down version of 'LinkedComponent' for things+-- we don't need to know how to build.+data PreExistingComponent+ = PreExistingComponent {+ -- | The actual name of the package. This may DISAGREE with 'pc_pkgid'+ -- for internal dependencies: e.g., an internal component @lib@ may be+ -- munged to @z-pkg-z-lib@, but we still want to use it when we see+ -- @lib@ in @build-depends@+ pc_pkgname :: PackageName,+ -- | The actual name of the component.+ pc_compname :: ComponentName,+ pc_munged_id :: MungedPackageId,+ pc_uid :: UnitId,+ pc_cid :: ComponentId,+ pc_open_uid :: OpenUnitId,+ pc_shape :: ModuleShape+ }++-- | Convert an 'InstalledPackageInfo' into a 'PreExistingComponent',+-- which was brought into scope under the 'PackageName' (important for+-- a package qualified reference.)+ipiToPreExistingComponent :: InstalledPackageInfo -> PreExistingComponent+ipiToPreExistingComponent ipi =+ PreExistingComponent {+ pc_pkgname = packageName ipi,+ pc_compname = libraryComponentName $ Installed.sourceLibName ipi,+ pc_munged_id = mungedId ipi,+ pc_uid = Installed.installedUnitId ipi,+ pc_cid = Installed.installedComponentId ipi,+ pc_open_uid =+ IndefFullUnitId (Installed.installedComponentId ipi)+ (Map.fromList (Installed.instantiatedWith ipi)),+ pc_shape = shapeInstalledPackage ipi+ }++instance HasMungedPackageId PreExistingComponent where+ mungedId = pc_munged_id++instance Package PreExistingComponent where+ packageId pec = PackageIdentifier (pc_pkgname pec) v+ where MungedPackageId _ v = pc_munged_id pec++instance HasUnitId PreExistingComponent where+ installedUnitId = pc_uid
+ Distribution/Backpack/ReadyComponent.hs view
@@ -0,0 +1,368 @@+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE PatternGuards #-}+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.ReadyComponent (+ ReadyComponent(..),+ InstantiatedComponent(..),+ IndefiniteComponent(..),+ rc_depends,+ rc_uid,+ rc_pkgid,+ dispReadyComponent,+ toReadyComponents,+) where++import Prelude ()+import Distribution.Compat.Prelude hiding ((<>))++import Distribution.Backpack+import Distribution.Backpack.LinkedComponent+import Distribution.Backpack.ModuleShape++import Distribution.Types.AnnotatedId+import Distribution.Types.ModuleRenaming+import Distribution.Types.Component+import Distribution.Types.ComponentInclude+import Distribution.Types.ComponentId+import Distribution.Types.ComponentName+import Distribution.Types.PackageId+import Distribution.Types.UnitId+import Distribution.Compat.Graph (IsNode(..))+import Distribution.Types.Module+import Distribution.Types.MungedPackageId+import Distribution.Types.MungedPackageName+import Distribution.Types.Library++import Distribution.ModuleName+import Distribution.Package+import Distribution.Simple.Utils++import qualified Control.Applicative as A+import qualified Data.Traversable as T++import Control.Monad+import Text.PrettyPrint+import qualified Data.Map as Map++import Distribution.Version+import Distribution.Text++-- | A 'ReadyComponent' is one that we can actually generate build+-- products for. We have a ready component for the typecheck-only+-- products of every indefinite package, as well as a ready component+-- for every way these packages can be fully instantiated.+--+data ReadyComponent+ = ReadyComponent {+ rc_ann_id :: AnnotatedId UnitId,+ -- | The 'OpenUnitId' for this package. At the moment, this+ -- is used in only one case, which is to determine if an+ -- export is of a module from this library (indefinite+ -- libraries record these exports as 'OpenModule');+ -- 'rc_open_uid' can be conveniently used to test for+ -- equality, whereas 'UnitId' cannot always be used in this+ -- case.+ rc_open_uid :: OpenUnitId,+ -- | Corresponds to 'lc_cid'. Invariant: if 'rc_open_uid'+ -- records a 'ComponentId', it coincides with this one.+ rc_cid :: ComponentId,+ -- | Corresponds to 'lc_component'.+ rc_component :: Component,+ -- | Corresponds to 'lc_exe_deps'.+ -- Build-tools don't participate in mix-in linking.+ -- (but what if they could?)+ rc_exe_deps :: [AnnotatedId UnitId],+ -- | Corresponds to 'lc_public'.+ rc_public :: Bool,+ -- | Extra metadata depending on whether or not this is an+ -- indefinite library (typechecked only) or an instantiated+ -- component (can be compiled).+ rc_i :: Either IndefiniteComponent InstantiatedComponent+ }++-- | The final, string 'UnitId' that will uniquely identify+-- the compilation products of this component.+rc_uid :: ReadyComponent -> UnitId+rc_uid = ann_id . rc_ann_id++-- | Corresponds to 'lc_pkgid'.+rc_pkgid :: ReadyComponent -> PackageId+rc_pkgid = ann_pid . rc_ann_id++-- | An 'InstantiatedComponent' is a library which is fully instantiated+-- (or, possibly, has no requirements at all.)+data InstantiatedComponent+ = InstantiatedComponent {+ -- | How this library was instantiated.+ instc_insts :: [(ModuleName, Module)],+ -- | Dependencies induced by 'instc_insts'. These are recorded+ -- here because there isn't a convenient way otherwise to get+ -- the 'PackageId' we need to fill 'componentPackageDeps' as needed.+ instc_insts_deps :: [(UnitId, MungedPackageId)],+ -- | The modules exported/reexported by this library.+ instc_provides :: Map ModuleName Module,+ -- | The dependencies which need to be passed to the compiler+ -- to bring modules into scope. These always refer to installed+ -- fully instantiated libraries.+ instc_includes :: [ComponentInclude DefUnitId ModuleRenaming]+ }++-- | An 'IndefiniteComponent' is a library with requirements+-- which we will typecheck only.+data IndefiniteComponent+ = IndefiniteComponent {+ -- | The requirements of the library.+ indefc_requires :: [ModuleName],+ -- | The modules exported/reexported by this library.+ indefc_provides :: Map ModuleName OpenModule,+ -- | The dependencies which need to be passed to the compiler+ -- to bring modules into scope. These are 'OpenUnitId' because+ -- these may refer to partially instantiated libraries.+ indefc_includes :: [ComponentInclude OpenUnitId ModuleRenaming]+ }++-- | Compute the dependencies of a 'ReadyComponent' that should+-- be recorded in the @depends@ field of 'InstalledPackageInfo'.+rc_depends :: ReadyComponent -> [(UnitId, MungedPackageId)]+rc_depends rc = ordNub $+ case rc_i rc of+ Left indefc ->+ map (\ci -> (abstractUnitId $ ci_id ci, toMungedPackageId ci))+ (indefc_includes indefc)+ Right instc ->+ map (\ci -> (unDefUnitId $ ci_id ci, toMungedPackageId ci))+ (instc_includes instc)+ ++ instc_insts_deps instc+ where+ toMungedPackageId :: Text id => ComponentInclude id rn -> MungedPackageId+ toMungedPackageId ci =+ computeCompatPackageId+ (ci_pkgid ci)+ (case ci_cname ci of+ CLibName -> Nothing+ CSubLibName uqn -> Just uqn+ _ -> error $ display (rc_cid rc) +++ " depends on non-library " ++ display (ci_id ci))++-- | Get the 'MungedPackageId' of a 'ReadyComponent' IF it is+-- a library.+rc_munged_id :: ReadyComponent -> MungedPackageId+rc_munged_id rc =+ computeCompatPackageId+ (rc_pkgid rc)+ (case rc_component rc of+ CLib lib -> libName lib+ _ -> error "rc_munged_id: not library")++instance Package ReadyComponent where+ packageId = rc_pkgid++instance HasUnitId ReadyComponent where+ installedUnitId = rc_uid++instance IsNode ReadyComponent where+ type Key ReadyComponent = UnitId+ nodeKey = rc_uid+ nodeNeighbors rc =+ (case rc_i rc of+ Right inst | [] <- instc_insts inst+ -> []+ | otherwise+ -> [newSimpleUnitId (rc_cid rc)]+ _ -> []) +++ ordNub (map fst (rc_depends rc)) +++ map ann_id (rc_exe_deps rc)++dispReadyComponent :: ReadyComponent -> Doc+dispReadyComponent rc =+ hang (text (case rc_i rc of+ Left _ -> "indefinite"+ Right _ -> "definite")+ <+> disp (nodeKey rc)+ {- <+> dispModSubst (Map.fromList (lc_insts lc)) -} ) 4 $+ vcat [ text "depends" <+> disp uid+ | uid <- nodeNeighbors rc ]++-- | The state of 'InstM'; a mapping from 'UnitId's to their+-- ready component, or @Nothing@ if its an external+-- component which we don't know how to build.+type InstS = Map UnitId (Maybe ReadyComponent)++-- | A state monad for doing instantiations (can't use actual+-- State because that would be an extra dependency.)+newtype InstM a = InstM { runInstM :: InstS -> (a, InstS) }++instance Functor InstM where+ fmap f (InstM m) = InstM $ \s -> let (x, s') = m s+ in (f x, s')++instance A.Applicative InstM where+ pure a = InstM $ \s -> (a, s)+ InstM f <*> InstM x = InstM $ \s -> let (f', s') = f s+ (x', s'') = x s'+ in (f' x', s'')++instance Monad InstM where+ return = A.pure+ InstM m >>= f = InstM $ \s -> let (x, s') = m s+ in runInstM (f x) s'++-- | Given a list of 'LinkedComponent's, expand the module graph+-- so that we have an instantiated graph containing all of the+-- instantiated components we need to build.+--+-- Instantiation intuitively follows the following algorithm:+--+-- instantiate a definite unit id p[S]:+-- recursively instantiate each module M in S+-- recursively instantiate modules exported by this unit+-- recursively instantiate dependencies substituted by S+--+-- The implementation is a bit more involved to memoize instantiation+-- if we have done it already.+--+-- We also call 'improveUnitId' during this process, so that fully+-- instantiated components are given 'HashedUnitId'.+--+toReadyComponents+ :: Map UnitId MungedPackageId+ -> Map ModuleName Module -- subst for the public component+ -> [LinkedComponent]+ -> [ReadyComponent]+toReadyComponents pid_map subst0 comps+ = catMaybes (Map.elems ready_map)+ where+ cmap = Map.fromList [ (lc_cid lc, lc) | lc <- comps ]++ instantiateUnitId :: ComponentId -> Map ModuleName Module+ -> InstM DefUnitId+ instantiateUnitId cid insts = InstM $ \s ->+ case Map.lookup uid s of+ Nothing ->+ -- Knot tied+ let (r, s') = runInstM (instantiateComponent uid cid insts)+ (Map.insert uid r s)+ in (def_uid, Map.insert uid r s')+ Just _ -> (def_uid, s)+ where+ -- The mkDefUnitId here indicates that we assume+ -- that Cabal handles unit id hash allocation.+ -- Good thing about hashing here: map is only on string.+ -- Bad thing: have to repeatedly hash.+ def_uid = mkDefUnitId cid insts+ uid = unDefUnitId def_uid++ instantiateComponent+ :: UnitId -> ComponentId -> Map ModuleName Module+ -> InstM (Maybe ReadyComponent)+ instantiateComponent uid cid insts+ | Just lc <- Map.lookup cid cmap = do+ provides <- T.mapM (substModule insts) (modShapeProvides (lc_shape lc))+ -- NB: lc_sig_includes is omitted here, because we don't+ -- need them to build+ includes <- forM (lc_includes lc) $ \ci -> do+ uid' <- substUnitId insts (ci_id ci)+ return ci { ci_ann_id = fmap (const uid') (ci_ann_id ci) }+ exe_deps <- mapM (substExeDep insts) (lc_exe_deps lc)+ s <- InstM $ \s -> (s, s)+ let getDep (Module dep_def_uid _)+ | let dep_uid = unDefUnitId dep_def_uid+ -- Lose DefUnitId invariant for rc_depends+ = [(dep_uid,+ fromMaybe err_pid $+ Map.lookup dep_uid pid_map A.<|>+ fmap rc_munged_id (join (Map.lookup dep_uid s)))]+ where+ err_pid = MungedPackageId+ (mkMungedPackageName "nonexistent-package-this-is-a-cabal-bug")+ (mkVersion [0])+ instc = InstantiatedComponent {+ instc_insts = Map.toList insts,+ instc_insts_deps = concatMap getDep (Map.elems insts),+ instc_provides = provides,+ instc_includes = includes+ -- NB: there is no dependency on the+ -- indefinite version of this instantiated package here,+ -- as (1) it doesn't go in depends in the+ -- IPI: it's not a run time dep, and (2)+ -- we don't have to tell GHC about it, it+ -- will match up the ComponentId+ -- automatically+ }+ return $ Just ReadyComponent {+ rc_ann_id = (lc_ann_id lc) { ann_id = uid },+ rc_open_uid = DefiniteUnitId (unsafeMkDefUnitId uid),+ rc_cid = lc_cid lc,+ rc_component = lc_component lc,+ rc_exe_deps = exe_deps,+ rc_public = lc_public lc,+ rc_i = Right instc+ }+ | otherwise = return Nothing++ substUnitId :: Map ModuleName Module -> OpenUnitId -> InstM DefUnitId+ substUnitId _ (DefiniteUnitId uid) =+ return uid+ substUnitId subst (IndefFullUnitId cid insts) = do+ insts' <- substSubst subst insts+ instantiateUnitId cid insts'++ -- NB: NOT composition+ substSubst :: Map ModuleName Module+ -> Map ModuleName OpenModule+ -> InstM (Map ModuleName Module)+ substSubst subst insts = T.mapM (substModule subst) insts++ substModule :: Map ModuleName Module -> OpenModule -> InstM Module+ substModule subst (OpenModuleVar mod_name)+ | Just m <- Map.lookup mod_name subst = return m+ | otherwise = error "substModule: non-closing substitution"+ substModule subst (OpenModule uid mod_name) = do+ uid' <- substUnitId subst uid+ return (Module uid' mod_name)++ substExeDep :: Map ModuleName Module+ -> AnnotatedId OpenUnitId -> InstM (AnnotatedId UnitId)+ substExeDep insts exe_aid = do+ exe_uid' <- substUnitId insts (ann_id exe_aid)+ return exe_aid { ann_id = unDefUnitId exe_uid' }++ indefiniteUnitId :: ComponentId -> InstM UnitId+ indefiniteUnitId cid = do+ let uid = newSimpleUnitId cid+ r <- indefiniteComponent uid cid+ InstM $ \s -> (uid, Map.insert uid r s)++ indefiniteComponent :: UnitId -> ComponentId -> InstM (Maybe ReadyComponent)+ indefiniteComponent uid cid+ | Just lc <- Map.lookup cid cmap = do+ exe_deps <- mapM (substExeDep Map.empty) (lc_exe_deps lc)+ let indefc = IndefiniteComponent {+ indefc_requires = map fst (lc_insts lc),+ indefc_provides = modShapeProvides (lc_shape lc),+ indefc_includes = lc_includes lc ++ lc_sig_includes lc+ }+ return $ Just ReadyComponent {+ rc_ann_id = (lc_ann_id lc) { ann_id = uid },+ rc_cid = lc_cid lc,+ rc_open_uid = lc_uid lc,+ rc_component = lc_component lc,+ -- It's always fully built+ rc_exe_deps = exe_deps,+ rc_public = lc_public lc,+ rc_i = Left indefc+ }+ | otherwise = return Nothing++ ready_map = snd $ runInstM work Map.empty++ work+ | not (Map.null subst0)+ , [lc] <- filter lc_public (Map.elems cmap)+ = do _ <- instantiateUnitId (lc_cid lc) subst0+ return ()+ | otherwise+ = forM_ (Map.elems cmap) $ \lc ->+ if null (lc_insts lc)+ then instantiateUnitId (lc_cid lc) Map.empty >> return ()+ else indefiniteUnitId (lc_cid lc) >> return ()
+ Distribution/Backpack/UnifyM.hs view
@@ -0,0 +1,640 @@+{-# LANGUAGE Rank2Types #-}+{-# LANGUAGE ScopedTypeVariables #-}+-- | See <https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst>+module Distribution.Backpack.UnifyM (+ -- * Unification monad+ UnifyM,+ runUnifyM,+ failWith,+ addErr,+ failIfErrs,+ tryM,+ addErrContext,+ addErrContextM,+ liftST,++ UnifEnv(..),+ getUnifEnv,++ -- * Modules and unit IDs+ ModuleU,+ ModuleU'(..),+ convertModule,+ convertModuleU,++ UnitIdU,+ UnitIdU'(..),+ convertUnitId,+ convertUnitIdU,++ ModuleSubstU,+ convertModuleSubstU,+ convertModuleSubst,++ ModuleScopeU,+ emptyModuleScopeU,+ convertModuleScopeU,++ ModuleSourceU(..),++ convertInclude,+ convertModuleProvides,+ convertModuleProvidesU,++) where++import Prelude ()+import Distribution.Compat.Prelude hiding (mod)++import Distribution.Backpack.ModuleShape+import Distribution.Backpack.ModuleScope+import Distribution.Backpack.ModSubst+import Distribution.Backpack.FullUnitId+import Distribution.Backpack++import qualified Distribution.Utils.UnionFind as UnionFind+import Distribution.ModuleName+import Distribution.Package+import Distribution.PackageDescription+import Distribution.Text+import Distribution.Types.IncludeRenaming+import Distribution.Types.ComponentInclude+import Distribution.Types.AnnotatedId+import Distribution.Types.ComponentName+import Distribution.Verbosity++import Data.STRef+import Data.Traversable+import Control.Monad.ST+import qualified Data.Map as Map+import qualified Data.Set as Set+import Data.IntMap (IntMap)+import qualified Data.IntMap as IntMap+import qualified Data.Traversable as T+import Text.PrettyPrint++-- TODO: more detailed trace output on high verbosity would probably+-- be appreciated by users debugging unification errors. Collect+-- some good examples!++data ErrMsg = ErrMsg {+ err_msg :: Doc,+ err_ctx :: [Doc]+ }+type MsgDoc = Doc++renderErrMsg :: ErrMsg -> MsgDoc+renderErrMsg ErrMsg { err_msg = msg, err_ctx = ctx } =+ msg $$ vcat ctx++-- | The unification monad, this monad encapsulates imperative+-- unification.+newtype UnifyM s a = UnifyM { unUnifyM :: UnifEnv s -> ST s (Maybe a) }++-- | Run a computation in the unification monad.+runUnifyM :: Verbosity -> FullDb -> (forall s. UnifyM s a) -> Either [MsgDoc] a+runUnifyM verbosity db m+ = runST $ do i <- newSTRef 0+ hmap <- newSTRef Map.empty+ errs <- newSTRef []+ mb_r <- unUnifyM m UnifEnv {+ unify_uniq = i,+ unify_reqs = hmap,+ unify_verbosity = verbosity,+ unify_ctx = [],+ unify_db = db,+ unify_errs = errs }+ final_errs <- readSTRef errs+ case mb_r of+ Just x | null final_errs -> return (Right x)+ _ -> return (Left (map renderErrMsg (reverse final_errs)))+-- NB: GHC 7.6 throws a hissy fit if you pattern match on 'm'.++type ErrCtx s = MsgDoc++-- | The unification environment.+data UnifEnv s = UnifEnv {+ -- | A supply of unique integers to label 'UnitIdU'+ -- cells. This is used to determine loops in unit+ -- identifiers (which can happen with mutual recursion.)+ unify_uniq :: UnifRef s UnitIdUnique,+ -- | The set of requirements in scope. When+ -- a provision is brought into scope, we unify with+ -- the requirement at the same module name to fill it.+ -- This mapping grows monotonically.+ unify_reqs :: UnifRef s (Map ModuleName (ModuleU s)),+ -- | How verbose the error message should be+ unify_verbosity :: Verbosity,+ -- | The error reporting context+ unify_ctx :: [ErrCtx s],+ -- | The package index for expanding unit identifiers+ unify_db :: FullDb,+ -- | Accumulated errors+ unify_errs :: UnifRef s [ErrMsg]+ }++instance Functor (UnifyM s) where+ fmap f (UnifyM m) = UnifyM (fmap (fmap (fmap f)) m)++instance Applicative (UnifyM s) where+ pure = UnifyM . pure . pure . pure+ UnifyM f <*> UnifyM x = UnifyM $ \r -> do+ f' <- f r+ case f' of+ Nothing -> return Nothing+ Just f'' -> do+ x' <- x r+ case x' of+ Nothing -> return Nothing+ Just x'' -> return (Just (f'' x''))++instance Monad (UnifyM s) where+ return = pure+ UnifyM m >>= f = UnifyM $ \r -> do+ x <- m r+ case x of+ Nothing -> return Nothing+ Just x' -> unUnifyM (f x') r++-- | Lift a computation from 'ST' monad to 'UnifyM' monad.+-- Internal use only.+liftST :: ST s a -> UnifyM s a+liftST m = UnifyM $ \_ -> fmap Just m++addErr :: MsgDoc -> UnifyM s ()+addErr msg = do+ env <- getUnifEnv+ let err = ErrMsg {+ err_msg = msg,+ err_ctx = unify_ctx env+ }+ liftST $ modifySTRef (unify_errs env) (\errs -> err:errs)++failWith :: MsgDoc -> UnifyM s a+failWith msg = do+ addErr msg+ failM++failM :: UnifyM s a+failM = UnifyM $ \_ -> return Nothing++failIfErrs :: UnifyM s ()+failIfErrs = do+ env <- getUnifEnv+ errs <- liftST $ readSTRef (unify_errs env)+ when (not (null errs)) failM++tryM :: UnifyM s a -> UnifyM s (Maybe a)+tryM m =+ UnifyM (\env -> do+ mb_r <- unUnifyM m env+ return (Just mb_r))++{-+otherFail :: ErrMsg -> UnifyM s a+otherFail s = UnifyM $ \_ -> return (Left s)++unifyFail :: ErrMsg -> UnifyM s a+unifyFail err = do+ env <- getUnifEnv+ msg <- case unify_ctx env of+ Nothing -> return (text "Unspecified unification error:" <+> err)+ Just (ctx, mod1, mod2)+ | unify_verbosity env > normal+ -> do mod1' <- convertModuleU mod1+ mod2' <- convertModuleU mod2+ let extra = " (was unifying " ++ display mod1'+ ++ " and " ++ display mod2' ++ ")"+ return (ctx ++ err ++ extra)+ | otherwise+ -> return (ctx ++ err ++ " (for more information, pass -v flag)")+ UnifyM $ \_ -> return (Left msg)+-}++-- | A convenient alias for mutable references in the unification monad.+type UnifRef s a = STRef s a++-- | Imperatively read a 'UnifRef'.+readUnifRef :: UnifRef s a -> UnifyM s a+readUnifRef = liftST . readSTRef++-- | Imperatively write a 'UnifRef'.+writeUnifRef :: UnifRef s a -> a -> UnifyM s ()+writeUnifRef x = liftST . writeSTRef x++-- | Get the current unification environment.+getUnifEnv :: UnifyM s (UnifEnv s)+getUnifEnv = UnifyM $ \r -> return (return r)++-- | Add a fixed message to the error context.+addErrContext :: Doc -> UnifyM s a -> UnifyM s a+addErrContext ctx m = addErrContextM ctx m++-- | Add a message to the error context. It may make monadic queries.+addErrContextM :: ErrCtx s -> UnifyM s a -> UnifyM s a+addErrContextM ctx m =+ UnifyM $ \r -> unUnifyM m r { unify_ctx = ctx : unify_ctx r }+++-----------------------------------------------------------------------+-- The "unifiable" variants of the data types+--+-- In order to properly do unification over infinite trees, we+-- need to union find over 'Module's and 'UnitId's. The pure+-- representation is ill-equipped to do this, so we convert+-- from the pure representation into one which is indirected+-- through union-find. 'ModuleU' handles hole variables;+-- 'UnitIdU' handles mu-binders.++-- | Contents of a mutable 'ModuleU' reference.+data ModuleU' s+ = ModuleU (UnitIdU s) ModuleName+ | ModuleVarU ModuleName++-- | Contents of a mutable 'UnitIdU' reference.+data UnitIdU' s+ = UnitIdU UnitIdUnique ComponentId (Map ModuleName (ModuleU s))+ | UnitIdThunkU DefUnitId++-- | A mutable version of 'Module' which can be imperatively unified.+type ModuleU s = UnionFind.Point s (ModuleU' s)++-- | A mutable version of 'UnitId' which can be imperatively unified.+type UnitIdU s = UnionFind.Point s (UnitIdU' s)++-- | An integer for uniquely labeling 'UnitIdU' nodes. We need+-- these labels in order to efficiently serialize 'UnitIdU's into+-- 'UnitId's (we use the label to check if any parent is the+-- node in question, and if so insert a deBruijn index instead.)+-- These labels must be unique across all 'UnitId's/'Module's which+-- participate in unification!+type UnitIdUnique = Int+++-----------------------------------------------------------------------+-- Conversion to the unifiable data types++-- An environment for tracking the mu-bindings in scope.+-- The invariant for a state @(m, i)@ is that [0..i] are+-- keys of @m@; in fact, the @i-k@th entry is the @k@th+-- de Bruijn index (this saves us from having to shift as+-- we enter mu-binders.)+type MuEnv s = (IntMap (UnitIdU s), Int)++extendMuEnv :: MuEnv s -> UnitIdU s -> MuEnv s+extendMuEnv (m, i) x =+ (IntMap.insert (i + 1) x m, i + 1)++{-+lookupMuEnv :: MuEnv s -> Int {- de Bruijn index -} -> UnitIdU s+lookupMuEnv (m, i) k =+ case IntMap.lookup (i - k) m of+ -- Technically a user can trigger this by giving us a+ -- bad 'UnitId', so handle this better.+ Nothing -> error "lookupMuEnv: out of bounds (malformed de Bruijn index)"+ Just v -> v+-}++emptyMuEnv :: MuEnv s+emptyMuEnv = (IntMap.empty, -1)++-- The workhorse functions. These share an environment:+-- * @UnifRef s UnitIdUnique@ - the unique label supply for 'UnitIdU' nodes+-- * @UnifRef s (Map ModuleName moduleU)@ - the (lazily initialized)+-- environment containing the implicitly universally quantified+-- @hole:A@ binders.+-- * @MuEnv@ - the environment for mu-binders.++convertUnitId' :: MuEnv s+ -> OpenUnitId+ -> UnifyM s (UnitIdU s)+-- TODO: this could be more lazy if we know there are no internal+-- references+convertUnitId' _ (DefiniteUnitId uid) =+ liftST $ UnionFind.fresh (UnitIdThunkU uid)+convertUnitId' stk (IndefFullUnitId cid insts) = do+ fs <- fmap unify_uniq getUnifEnv+ x <- liftST $ UnionFind.fresh (error "convertUnitId") -- tie the knot later+ insts_u <- T.forM insts $ convertModule' (extendMuEnv stk x)+ u <- readUnifRef fs+ writeUnifRef fs (u+1)+ y <- liftST $ UnionFind.fresh (UnitIdU u cid insts_u)+ liftST $ UnionFind.union x y+ return y+-- convertUnitId' stk (UnitIdVar i) = return (lookupMuEnv stk i)++convertModule' :: MuEnv s+ -> OpenModule -> UnifyM s (ModuleU s)+convertModule' _stk (OpenModuleVar mod_name) = do+ hmap <- fmap unify_reqs getUnifEnv+ hm <- readUnifRef hmap+ case Map.lookup mod_name hm of+ Nothing -> do mod <- liftST $ UnionFind.fresh (ModuleVarU mod_name)+ writeUnifRef hmap (Map.insert mod_name mod hm)+ return mod+ Just mod -> return mod+convertModule' stk (OpenModule uid mod_name) = do+ uid_u <- convertUnitId' stk uid+ liftST $ UnionFind.fresh (ModuleU uid_u mod_name)++convertUnitId :: OpenUnitId -> UnifyM s (UnitIdU s)+convertUnitId = convertUnitId' emptyMuEnv++convertModule :: OpenModule -> UnifyM s (ModuleU s)+convertModule = convertModule' emptyMuEnv++++-----------------------------------------------------------------------+-- Substitutions++-- | The mutable counterpart of a 'ModuleSubst' (not defined here).+type ModuleSubstU s = Map ModuleName (ModuleU s)++-- | Conversion of 'ModuleSubst' to 'ModuleSubstU'+convertModuleSubst :: Map ModuleName OpenModule -> UnifyM s (Map ModuleName (ModuleU s))+convertModuleSubst = T.mapM convertModule++-- | Conversion of 'ModuleSubstU' to 'ModuleSubst'+convertModuleSubstU :: ModuleSubstU s -> UnifyM s OpenModuleSubst+convertModuleSubstU = T.mapM convertModuleU++-----------------------------------------------------------------------+-- Conversion from the unifiable data types++-- An environment for tracking candidates for adding a mu-binding.+-- The invariant for a state @(m, i)@, is that if we encounter a node+-- labeled @k@ such that @m[k -> v]@, then we can replace this+-- node with the de Bruijn index @i-v@ referring to an enclosing+-- mu-binder; furthermore, @range(m) = [0..i]@.+type MooEnv = (IntMap Int, Int)++emptyMooEnv :: MooEnv+emptyMooEnv = (IntMap.empty, -1)++extendMooEnv :: MooEnv -> UnitIdUnique -> MooEnv+extendMooEnv (m, i) k = (IntMap.insert k (i + 1) m, i + 1)++lookupMooEnv :: MooEnv -> UnitIdUnique -> Maybe Int+lookupMooEnv (m, i) k =+ case IntMap.lookup k m of+ Nothing -> Nothing+ Just v -> Just (i-v) -- de Bruijn indexize++-- The workhorse functions++convertUnitIdU' :: MooEnv -> UnitIdU s -> UnifyM s OpenUnitId+convertUnitIdU' stk uid_u = do+ x <- liftST $ UnionFind.find uid_u+ case x of+ UnitIdThunkU uid -> return (DefiniteUnitId uid)+ UnitIdU u cid insts_u ->+ case lookupMooEnv stk u of+ Just _i ->+ failWith (text "Unsupported mutually recursive unit identifier")+ -- return (UnitIdVar i)+ Nothing -> do+ insts <- T.forM insts_u $ convertModuleU' (extendMooEnv stk u)+ return (IndefFullUnitId cid insts)++convertModuleU' :: MooEnv -> ModuleU s -> UnifyM s OpenModule+convertModuleU' stk mod_u = do+ mod <- liftST $ UnionFind.find mod_u+ case mod of+ ModuleVarU mod_name -> return (OpenModuleVar mod_name)+ ModuleU uid_u mod_name -> do+ uid <- convertUnitIdU' stk uid_u+ return (OpenModule uid mod_name)++-- Helper functions++convertUnitIdU :: UnitIdU s -> UnifyM s OpenUnitId+convertUnitIdU = convertUnitIdU' emptyMooEnv++convertModuleU :: ModuleU s -> UnifyM s OpenModule+convertModuleU = convertModuleU' emptyMooEnv++-- | An empty 'ModuleScopeU'.+emptyModuleScopeU :: ModuleScopeU s+emptyModuleScopeU = (Map.empty, Map.empty)+++-- | The mutable counterpart of 'ModuleScope'.+type ModuleScopeU s = (ModuleProvidesU s, ModuleRequiresU s)+-- | The mutable counterpart of 'ModuleProvides'+type ModuleProvidesU s = Map ModuleName [ModuleSourceU s]+type ModuleRequiresU s = ModuleProvidesU s+data ModuleSourceU s =+ ModuleSourceU {+ -- We don't have line numbers, but if we did the+ -- package name and renaming could be associated+ -- with that as well+ usrc_pkgname :: PackageName,+ usrc_compname :: ComponentName,+ usrc_renaming :: IncludeRenaming,+ usrc_module :: ModuleU s,+ usrc_implicit :: Bool+ }++-- TODO: Deduplicate this with Distribution.Backpack.MixLink.dispSource+ci_msg :: ComponentInclude (OpenUnitId, ModuleShape) IncludeRenaming -> Doc+ci_msg ci+ | ci_implicit ci = text "build-depends:" <+> pp_pn+ | otherwise = text "mixins:" <+> pp_pn <+> disp (ci_renaming ci)+ where+ pn = pkgName (ci_pkgid ci)+ pp_pn =+ case ci_cname ci of+ CLibName -> disp pn+ CSubLibName cn -> disp pn <<>> colon <<>> disp cn+ -- Shouldn't happen+ cn -> disp pn <+> parens (disp cn)++-- | Convert a 'ModuleShape' into a 'ModuleScopeU', so we can do+-- unification on it.+convertInclude+ :: ComponentInclude (OpenUnitId, ModuleShape) IncludeRenaming+ -> UnifyM s (ModuleScopeU s,+ Either (ComponentInclude (UnitIdU s) ModuleRenaming) {- normal -}+ (ComponentInclude (UnitIdU s) ModuleRenaming) {- sig -})+convertInclude ci@(ComponentInclude {+ ci_ann_id = AnnotatedId {+ ann_id = (uid, ModuleShape provs reqs),+ ann_pid = pid,+ ann_cname = compname+ },+ ci_renaming = incl@(IncludeRenaming prov_rns req_rns),+ ci_implicit = implicit+ }) = addErrContext (text "In" <+> ci_msg ci) $ do+ let pn = packageName pid+ source m = ModuleSource {+ msrc_pkgname = pn,+ msrc_compname = compname,+ msrc_renaming = incl,+ msrc_module = m,+ msrc_implicit = implicit+ }++ -- Suppose our package has two requirements A and B, and+ -- we include it with @requires (A as X)@+ -- There are three closely related things we compute based+ -- off of @reqs@ and @reqs_rns@:+ --+ -- 1. The requirement renaming (A -> X)+ -- 2. The requirement substitution (A -> <X>, B -> <B>)++ -- Requirement renaming. This is read straight off the syntax:+ --+ -- [nothing] ==> [empty]+ -- requires (B as Y) ==> B -> Y+ --+ -- Requirement renamings are NOT injective: if two requirements+ -- are mapped to the same name, the intent is to merge them+ -- together. But they are *functions*, so @B as X, B as Y@ is+ -- illegal.++ req_rename_list <-+ case req_rns of+ DefaultRenaming -> return []+ HidingRenaming _ -> do+ -- Not valid here for requires!+ addErr $ text "Unsupported syntax" <+>+ quotes (text "requires hiding (...)")+ return []+ ModuleRenaming rns -> return rns++ let req_rename_listmap :: Map ModuleName [ModuleName]+ req_rename_listmap =+ Map.fromListWith (++) [ (k,[v]) | (k,v) <- req_rename_list ]+ req_rename <- sequenceA . flip Map.mapWithKey req_rename_listmap $ \k vs0 ->+ case vs0 of+ [] -> error "req_rename"+ [v] -> return v+ v:vs -> do addErr $+ text "Conflicting renamings of requirement" <+> quotes (disp k) $$+ text "Renamed to: " <+> vcat (map disp (v:vs))+ return v++ let req_rename_fn k = case Map.lookup k req_rename of+ Nothing -> k+ Just v -> v++ -- Requirement substitution.+ --+ -- A -> X ==> A -> <X>+ let req_subst = fmap OpenModuleVar req_rename++ uid_u <- convertUnitId (modSubst req_subst uid)++ -- Requirement mapping. This is just taking the range of the+ -- requirement substitution, and making a mapping so that it is+ -- convenient to merge things together. It INCLUDES the implicit+ -- mappings.+ --+ -- A -> X ==> X -> <X>, B -> <B>+ reqs_u <- convertModuleRequires . Map.fromList $+ [ (k, [source (OpenModuleVar k)])+ | k <- map req_rename_fn (Set.toList reqs)+ ]++ -- Report errors if there were unused renamings+ let leftover = Map.keysSet req_rename `Set.difference` reqs+ unless (Set.null leftover) $+ addErr $+ hang (text "The" <+> text (showComponentName compname) <+>+ text "from package" <+> quotes (disp pid)+ <+> text "does not require:") 4+ (vcat (map disp (Set.toList leftover)))++ -- Provision computation is more complex.+ -- For example, if we have:+ --+ -- include p (A as X) requires (B as Y)+ -- where A -> q[B=<B>]:A+ --+ -- Then we need:+ --+ -- X -> [("p", q[B=<B>]:A)]+ --+ -- There are a bunch of clever ways to present the algorithm+ -- but here is the simple one:+ --+ -- 1. If we have a default renaming, apply req_subst+ -- to provs and use that.+ --+ -- 2. Otherwise, build a map by successively looking+ -- up the referenced modules in the renaming in provs.+ --+ -- Importantly, overlapping rename targets get accumulated+ -- together. It's not an (immediate) error.+ (pre_prov_scope, prov_rns') <-+ case prov_rns of+ DefaultRenaming -> return (Map.toList provs, prov_rns)+ HidingRenaming hides ->+ let hides_set = Set.fromList hides+ in let r = [ (k,v)+ | (k,v) <- Map.toList provs+ , not (k `Set.member` hides_set) ]+ -- GHC doesn't understand hiding, so expand it out!+ in return (r, ModuleRenaming (map ((\x -> (x,x)).fst) r))+ ModuleRenaming rns -> do+ r <- sequence+ [ case Map.lookup from provs of+ Just m -> return (to, m)+ Nothing -> failWith $+ text "Package" <+> quotes (disp pid) <+>+ text "does not expose the module" <+> quotes (disp from)+ | (from, to) <- rns ]+ return (r, prov_rns)+ let prov_scope = modSubst req_subst+ $ Map.fromListWith (++)+ [ (k, [source v])+ | (k, v) <- pre_prov_scope ]++ provs_u <- convertModuleProvides prov_scope++ -- TODO: Assert that provs_u is empty if provs was empty+ return ((provs_u, reqs_u),+ -- NB: We test that requirements is not null so that+ -- users can create packages with zero module exports+ -- that cause some C library to linked in, etc.+ (if Map.null provs && not (Set.null reqs)+ then Right -- is sig+ else Left) (ComponentInclude {+ ci_ann_id = AnnotatedId {+ ann_id = uid_u,+ ann_pid = pid,+ ann_cname = compname+ },+ ci_renaming = prov_rns',+ ci_implicit = ci_implicit ci+ }))++-- | Convert a 'ModuleScopeU' to a 'ModuleScope'.+convertModuleScopeU :: ModuleScopeU s -> UnifyM s ModuleScope+convertModuleScopeU (provs_u, reqs_u) = do+ provs <- convertModuleProvidesU provs_u+ reqs <- convertModuleRequiresU reqs_u+ -- TODO: Test that the requirements are still free. If they+ -- are not, they got unified, and that's dodgy at best.+ return (ModuleScope provs reqs)++-- | Convert a 'ModuleProvides' to a 'ModuleProvidesU'+convertModuleProvides :: ModuleProvides -> UnifyM s (ModuleProvidesU s)+convertModuleProvides = T.mapM $ \ms ->+ mapM (\(ModuleSource pn cn incl m i)+ -> do m' <- convertModule m+ return (ModuleSourceU pn cn incl m' i)) ms++-- | Convert a 'ModuleProvidesU' to a 'ModuleProvides'+convertModuleProvidesU :: ModuleProvidesU s -> UnifyM s ModuleProvides+convertModuleProvidesU = T.mapM $ \ms ->+ mapM (\(ModuleSourceU pn cn incl m i)+ -> do m' <- convertModuleU m+ return (ModuleSource pn cn incl m' i)) ms++convertModuleRequires :: ModuleRequires -> UnifyM s (ModuleRequiresU s)+convertModuleRequires = convertModuleProvides++convertModuleRequiresU :: ModuleRequiresU s -> UnifyM s ModuleRequires+convertModuleRequiresU = convertModuleProvidesU
Distribution/Compat/Binary.hs view
@@ -9,14 +9,19 @@ module Distribution.Compat.Binary ( decodeOrFailIO+ , decodeFileOrFail' #if __GLASGOW_HASKELL__ >= 708 || MIN_VERSION_binary(0,7,0) , module Data.Binary #else , Binary(..)- , decode, encode+ , decode, encode, encodeFile #endif ) where +#if __GLASGOW_HASKELL__ < 706+import Prelude hiding (catch)+#endif+ import Control.Exception (catch, evaluate) #if __GLASGOW_HASKELL__ >= 711 import Control.Exception (pattern ErrorCall)@@ -25,23 +30,25 @@ #endif import Data.ByteString.Lazy (ByteString) -#if __GLASGOW_HASKELL__ < 706-import Prelude hiding (catch)-#endif- #if __GLASGOW_HASKELL__ >= 708 || MIN_VERSION_binary(0,7,0) import Data.Binary +-- | Lazily reconstruct a value previously written to a file.+decodeFileOrFail' :: Binary a => FilePath -> IO (Either String a)+decodeFileOrFail' f = either (Left . snd) Right `fmap` decodeFileOrFail f+ #else import Data.Binary.Get import Data.Binary.Put+import qualified Data.ByteString.Lazy as BSL import Distribution.Compat.Binary.Class import Distribution.Compat.Binary.Generic () --- | Decode a value from a lazy ByteString, reconstructing the original structure.+-- | Decode a value from a lazy ByteString, reconstructing the+-- original structure. -- decode :: Binary a => ByteString -> a decode = runGet get@@ -51,6 +58,14 @@ encode :: Binary a => a -> ByteString encode = runPut . put {-# INLINE encode #-}++-- | Lazily reconstruct a value previously written to a file.+decodeFileOrFail' :: Binary a => FilePath -> IO (Either String a)+decodeFileOrFail' f = decodeOrFailIO =<< BSL.readFile f++-- | Lazily serialise a value to a file+encodeFile :: Binary a => FilePath -> a -> IO ()+encodeFile f = BSL.writeFile f . encode #endif
Distribution/Compat/Binary/Class.hs view
@@ -36,8 +36,9 @@ import Data.ByteString.Lazy (ByteString) import qualified Data.ByteString.Lazy as L -import Data.Char (chr,ord)-import Data.List (unfoldr)+import Data.Char (chr,ord)+import Data.List (unfoldr)+import Data.Foldable (traverse_) -- And needed for the instances: import qualified Data.ByteString as B@@ -389,7 +390,7 @@ -- Container types instance Binary a => Binary [a] where- put l = put (length l) >> mapM_ put l+ put l = put (length l) >> traverse_ put l get = do n <- get :: Get Int getMany n @@ -444,26 +445,26 @@ -- Maps and Sets instance (Binary a) => Binary (Set.Set a) where- put s = put (Set.size s) >> mapM_ put (Set.toAscList s)+ put s = put (Set.size s) >> traverse_ put (Set.toAscList s) get = liftM Set.fromDistinctAscList get instance (Binary k, Binary e) => Binary (Map.Map k e) where- put m = put (Map.size m) >> mapM_ put (Map.toAscList m)+ put m = put (Map.size m) >> traverse_ put (Map.toAscList m) get = liftM Map.fromDistinctAscList get instance Binary IntSet.IntSet where- put s = put (IntSet.size s) >> mapM_ put (IntSet.toAscList s)+ put s = put (IntSet.size s) >> traverse_ put (IntSet.toAscList s) get = liftM IntSet.fromDistinctAscList get instance (Binary e) => Binary (IntMap.IntMap e) where- put m = put (IntMap.size m) >> mapM_ put (IntMap.toAscList m)+ put m = put (IntMap.size m) >> traverse_ put (IntMap.toAscList m) get = liftM IntMap.fromDistinctAscList get ------------------------------------------------------------------------ -- Queues and Sequences instance (Binary e) => Binary (Seq.Seq e) where- put s = put (Seq.length s) >> Fold.mapM_ put s+ put s = put (Seq.length s) >> Fold.traverse_ put s get = do n <- get :: Get Int rep Seq.empty n get where rep xs 0 _ = return $! xs@@ -496,7 +497,7 @@ put a = do put (bounds a) put (rangeSize $ bounds a) -- write the length- mapM_ put (elems a) -- now the elems.+ traverse_ put (elems a) -- now the elems. get = do bs <- get n <- get -- read the length@@ -510,7 +511,7 @@ put a = do put (bounds a) put (rangeSize $ bounds a) -- now write the length- mapM_ put (elems a)+ traverse_ put (elems a) get = do bs <- get n <- get
Distribution/Compat/CopyFile.hs view
@@ -11,11 +11,12 @@ setDirOrdinary, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Compat.Exception import Distribution.Compat.Internal.TempFile -import Control.Monad- ( when, unless ) import Control.Exception ( bracketOnError, throwIO ) import qualified Data.ByteString.Lazy as BSL@@ -41,16 +42,16 @@ ( throwErrnoPathIfMinus1_ ) #endif /* mingw32_HOST_OS */ -copyOrdinaryFile, copyExecutableFile :: FilePath -> FilePath -> IO ()+copyOrdinaryFile, copyExecutableFile :: FilePath -> FilePath -> NoCallStackIO () copyOrdinaryFile src dest = copyFile src dest >> setFileOrdinary dest copyExecutableFile src dest = copyFile src dest >> setFileExecutable dest -setFileOrdinary, setFileExecutable, setDirOrdinary :: FilePath -> IO ()+setFileOrdinary, setFileExecutable, setDirOrdinary :: FilePath -> NoCallStackIO () #ifndef mingw32_HOST_OS setFileOrdinary path = setFileMode path 0o644 -- file perms -rw-r--r-- setFileExecutable path = setFileMode path 0o755 -- file perms -rwxr-xr-x -setFileMode :: FilePath -> FileMode -> IO ()+setFileMode :: FilePath -> FileMode -> NoCallStackIO () setFileMode name m = withFilePath name $ \s -> do throwErrnoPathIfMinus1_ "setFileMode" name (c_chmod s m)@@ -63,7 +64,7 @@ -- | Copies a file to a new destination. -- Often you should use `copyFileChanged` instead.-copyFile :: FilePath -> FilePath -> IO ()+copyFile :: FilePath -> FilePath -> NoCallStackIO () copyFile fromFPath toFPath = copy `catchIO` (\ioe -> throwIO (ioeSetLocation ioe "copyFile"))@@ -87,14 +88,14 @@ -- | Like `copyFile`, but does not touch the target if source and destination -- are already byte-identical. This is recommended as it is useful for -- time-stamp based recompilation avoidance.-copyFileChanged :: FilePath -> FilePath -> IO ()+copyFileChanged :: FilePath -> FilePath -> NoCallStackIO () copyFileChanged src dest = do equal <- filesEqual src dest unless equal $ copyFile src dest -- | Checks if two files are byte-identical. -- Returns False if either of the files do not exist.-filesEqual :: FilePath -> FilePath -> IO Bool+filesEqual :: FilePath -> FilePath -> NoCallStackIO Bool filesEqual f1 f2 = do ex1 <- doesFileExist f1 ex2 <- doesFileExist f2
Distribution/Compat/CreatePipe.hs view
@@ -1,10 +1,18 @@-{-# LANGUAGE CPP, ForeignFunctionInterface #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ module Distribution.Compat.CreatePipe (createPipe) where import System.IO (Handle, hSetEncoding, localeEncoding) +import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Compat.Stack+ -- The mingw32_HOST_OS CPP macro is GHC-specific-#if mingw32_HOST_OS+#ifdef mingw32_HOST_OS+import qualified Prelude import Control.Exception (onException) import Foreign.C.Error (throwErrnoIfMinus1_) import Foreign.C.Types (CInt(..), CUInt(..))@@ -15,7 +23,7 @@ import GHC.IO.Device (IODeviceType(Stream)) import GHC.IO.Handle.FD (mkHandleFromFD) import System.IO (IOMode(ReadMode, WriteMode))-#elif ghcjs_HOST_OS+#elif defined ghcjs_HOST_OS #else import System.Posix.IO (fdToHandle) import qualified System.Posix.IO as Posix@@ -23,7 +31,7 @@ createPipe :: IO (Handle, Handle) -- The mingw32_HOST_OS CPP macro is GHC-specific-#if mingw32_HOST_OS+#ifdef mingw32_HOST_OS createPipe = do (readfd, writefd) <- allocaArray 2 $ \ pfds -> do throwErrnoIfMinus1_ "_pipe" $ c__pipe pfds 2 ({- _O_BINARY -} 32768)@@ -36,21 +44,26 @@ hSetEncoding writeh localeEncoding return (readh, writeh)) `onException` (close readfd >> close writefd) where- fdToHandle :: CInt -> IOMode -> IO Handle+ fdToHandle :: CInt -> IOMode -> NoCallStackIO Handle fdToHandle fd mode = do (fd', deviceType) <- mkFD fd mode (Just (Stream, 0, 0)) False False mkHandleFromFD fd' deviceType "" mode False Nothing close :: CInt -> IO () close = throwErrnoIfMinus1_ "_close" . c__close+ where _ = callStack -- TODO: attach call stack to exception + _ = callStack -- TODO: attach call stack to exceptions+ foreign import ccall "io.h _pipe" c__pipe ::- Ptr CInt -> CUInt -> CInt -> IO CInt+ Ptr CInt -> CUInt -> CInt -> Prelude.IO CInt foreign import ccall "io.h _close" c__close ::- CInt -> IO CInt-#elif ghcjs_HOST_OS+ CInt -> Prelude.IO CInt+#elif defined ghcjs_HOST_OS createPipe = error "createPipe"+ where+ _ = callStack #else createPipe = do (readfd, writefd) <- Posix.createPipe@@ -59,4 +72,6 @@ hSetEncoding readh localeEncoding hSetEncoding writeh localeEncoding return (readh, writeh)+ where+ _ = callStack #endif
+ Distribution/Compat/DList.hs view
@@ -0,0 +1,40 @@+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Compat.DList+-- Copyright : (c) Ben Gamari 2015-2019+-- License : BSD3+--+-- Maintainer : cabal-dev@haskell.org+-- Stability : experimental+-- Portability : portable+--+-- A very simple difference list.+module Distribution.Compat.DList (+ DList,+ runDList,+ singleton,+ snoc,+) where++import Prelude ()+import Distribution.Compat.Prelude++-- | Difference list.+newtype DList a = DList ([a] -> [a])++runDList :: DList a -> [a]+runDList (DList run) = run []++-- | Make 'DList' with containing single element.+singleton :: a -> DList a+singleton a = DList (a:)++snoc :: DList a -> a -> DList a+snoc xs x = xs <> singleton x++instance Monoid (DList a) where+ mempty = DList id+ mappend = (<>)++instance Semigroup (DList a) where+ DList a <> DList b = DList (a . b)
Distribution/Compat/Environment.hs view
@@ -1,21 +1,35 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-} {-# OPTIONS_HADDOCK hide #-} module Distribution.Compat.Environment- ( getEnvironment, lookupEnv, setEnv )+ ( getEnvironment, lookupEnv, setEnv, unsetEnv ) where +import Prelude ()+import qualified Prelude+import Distribution.Compat.Prelude++#ifndef mingw32_HOST_OS+#if __GLASGOW_HASKELL__ < 708+import Foreign.C.Error (throwErrnoIf_)+#endif+#endif+ import qualified System.Environment as System #if __GLASGOW_HASKELL__ >= 706 import System.Environment (lookupEnv)+#if __GLASGOW_HASKELL__ >= 708+import System.Environment (unsetEnv)+#endif #else import Distribution.Compat.Exception (catchIO) #endif +import Distribution.Compat.Stack+ #ifdef mingw32_HOST_OS-import Control.Monad-import qualified Data.Char as Char (toUpper) import Foreign.C import GHC.Windows #else@@ -25,7 +39,7 @@ import System.Posix.Internals ( withFilePath ) #endif /* mingw32_HOST_OS */ -getEnvironment :: IO [(String, String)]+getEnvironment :: NoCallStackIO [(String, String)] #ifdef mingw32_HOST_OS -- On Windows, the names of environment variables are case-insensitive, but are -- often given in mixed-case (e.g. "PATH" is "Path"), so we have to normalise@@ -33,7 +47,7 @@ getEnvironment = fmap upcaseVars System.getEnvironment where upcaseVars = map upcaseVar- upcaseVar (var, val) = (map Char.toUpper var, val)+ upcaseVar (var, val) = (map toUpper var, val) #else getEnvironment = System.getEnvironment #endif@@ -50,9 +64,7 @@ -- Throws `Control.Exception.IOException` if either @name@ or @value@ is the -- empty string or contains an equals sign. setEnv :: String -> String -> IO ()-setEnv key value_- | null value = error "Distribuiton.Compat.setEnv: empty string"- | otherwise = setEnv_ key value+setEnv key value_ = setEnv_ key value where -- NOTE: Anything that follows NUL is ignored on both POSIX and Windows. We -- still strip it manually so that the null check above succeeds if a value@@ -66,6 +78,8 @@ setEnv_ key value = withCWString key $ \k -> withCWString value $ \v -> do success <- c_SetEnvironmentVariable k v unless success (throwGetLastError "setEnv")+ where+ _ = callStack -- TODO: attach CallStack to exception # if defined(i386_HOST_ARCH) # define WINDOWS_CCONV stdcall@@ -76,14 +90,47 @@ # endif /* i386_HOST_ARCH */ foreign import WINDOWS_CCONV unsafe "windows.h SetEnvironmentVariableW"- c_SetEnvironmentVariable :: LPTSTR -> LPTSTR -> IO Bool+ c_SetEnvironmentVariable :: LPTSTR -> LPTSTR -> Prelude.IO Bool #else setEnv_ key value = do withFilePath key $ \ keyP -> withFilePath value $ \ valueP -> throwErrnoIfMinus1_ "setenv" $ c_setenv keyP valueP (fromIntegral (fromEnum True))+ where+ _ = callStack -- TODO: attach CallStack to exception foreign import ccall unsafe "setenv"- c_setenv :: CString -> CString -> CInt -> IO CInt+ c_setenv :: CString -> CString -> CInt -> Prelude.IO CInt #endif /* mingw32_HOST_OS */++#if __GLASGOW_HASKELL__ < 708++-- | @unsetEnv name@ removes the specified environment variable from the+-- environment of the current process.+--+-- Throws `Control.Exception.IOException` if @name@ is the empty string or+-- contains an equals sign.+--+-- @since 4.7.0.0+unsetEnv :: String -> IO ()+#ifdef mingw32_HOST_OS+unsetEnv key = withCWString key $ \k -> do+ success <- c_SetEnvironmentVariable k nullPtr+ unless success $ do+ -- We consider unsetting an environment variable that does not exist not as+ -- an error, hence we ignore eRROR_ENVVAR_NOT_FOUND.+ err <- c_GetLastError+ unless (err == eRROR_ENVVAR_NOT_FOUND) $ do+ throwGetLastError "unsetEnv"+#else+unsetEnv key = withFilePath key (throwErrnoIf_ (/= 0) "unsetEnv" . c_unsetenv)+#if __GLASGOW_HASKELL__ > 706+foreign import ccall unsafe "__hsbase_unsetenv" c_unsetenv :: CString -> Prelude.IO CInt+#else+-- HACK: We hope very hard that !UNSETENV_RETURNS_VOID+foreign import ccall unsafe "unsetenv" c_unsetenv :: CString -> Prelude.IO CInt+#endif+#endif++#endif
Distribution/Compat/Exception.hs view
@@ -1,11 +1,16 @@+{-# LANGUAGE CPP #-} module Distribution.Compat.Exception ( catchIO, catchExit, tryIO,+ displayException, ) where import System.Exit import qualified Control.Exception as Exception+#if __GLASGOW_HASKELL__ >= 710+import Control.Exception (displayException)+#endif tryIO :: IO a -> IO (Either Exception.IOException a) tryIO = Exception.try@@ -15,3 +20,8 @@ catchExit :: IO a -> (ExitCode -> IO a) -> IO a catchExit = Exception.catch++#if __GLASGOW_HASKELL__ < 710+displayException :: Exception.Exception e => e -> String+displayException = show+#endif
Distribution/Compat/GetShortPathName.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE CPP, ForeignFunctionInterface #-}+{-# LANGUAGE CPP #-} ----------------------------------------------------------------------------- -- |@@ -12,9 +12,12 @@ module Distribution.Compat.GetShortPathName ( getShortPathName ) where +import Prelude ()+import Distribution.Compat.Prelude+ #ifdef mingw32_HOST_OS-import Control.Monad (void) +import qualified Prelude import qualified System.Win32 as Win32 import System.Win32 (LPCTSTR, LPTSTR, DWORD) import Foreign.Marshal.Array (allocaArray)@@ -26,7 +29,7 @@ #endif foreign import WINAPI unsafe "windows.h GetShortPathNameW"- c_GetShortPathName :: LPCTSTR -> LPTSTR -> DWORD -> IO DWORD+ c_GetShortPathName :: LPCTSTR -> LPTSTR -> DWORD -> Prelude.IO DWORD -- | On Windows, retrieves the short path form of the specified path. On -- non-Windows, does nothing. See https://github.com/haskell/cabal/issues/3185.@@ -37,7 +40,7 @@ -- will always return the required buffer size for a -- specified lpszLongPath. ---getShortPathName :: FilePath -> IO FilePath+getShortPathName :: FilePath -> NoCallStackIO FilePath getShortPathName path = Win32.withTString path $ \c_path -> do c_len <- Win32.failIfZero "GetShortPathName #1 failed!" $@@ -50,7 +53,7 @@ #else -getShortPathName :: FilePath -> IO FilePath+getShortPathName :: FilePath -> NoCallStackIO FilePath getShortPathName path = return path #endif
+ Distribution/Compat/Graph.hs view
@@ -0,0 +1,417 @@+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE BangPatterns #-}+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Compat.Graph+-- Copyright : (c) Edward Z. Yang 2016+-- License : BSD3+--+-- Maintainer : cabal-dev@haskell.org+-- Stability : experimental+-- Portability : portable+--+-- A data type representing directed graphs, backed by "Data.Graph".+-- It is strict in the node type.+--+-- This is an alternative interface to "Data.Graph". In this interface,+-- nodes (identified by the 'IsNode' type class) are associated with a+-- key and record the keys of their neighbors. This interface is more+-- convenient than 'Data.Graph.Graph', which requires vertices to be+-- explicitly handled by integer indexes.+--+-- The current implementation has somewhat peculiar performance+-- characteristics. The asymptotics of all map-like operations mirror+-- their counterparts in "Data.Map". However, to perform a graph+-- operation, we first must build the "Data.Graph" representation, an+-- operation that takes /O(V + E log V)/. However, this operation can+-- be amortized across all queries on that particular graph.+--+-- Some nodes may be broken, i.e., refer to neighbors which are not+-- stored in the graph. In our graph algorithms, we transparently+-- ignore such edges; however, you can easily query for the broken+-- vertices of a graph using 'broken' (and should, e.g., to ensure that+-- a closure of a graph is well-formed.) It's possible to take a closed+-- subset of a broken graph and get a well-formed graph.+--+-----------------------------------------------------------------------------++module Distribution.Compat.Graph (+ -- * Graph type+ Graph,+ IsNode(..),+ -- * Query+ null,+ size,+ member,+ lookup,+ -- * Construction+ empty,+ insert,+ deleteKey,+ deleteLookup,+ -- * Combine+ unionLeft,+ unionRight,+ -- * Graph algorithms+ stronglyConnComp,+ SCC(..),+ cycles,+ broken,+ neighbors,+ revNeighbors,+ closure,+ revClosure,+ topSort,+ revTopSort,+ -- * Conversions+ -- ** Maps+ toMap,+ -- ** Lists+ fromDistinctList,+ toList,+ keys,+ -- ** Sets+ keysSet,+ -- ** Graphs+ toGraph,+ -- * Node type+ Node(..),+ nodeValue,+) where++-- For bootstrapping GHC+#ifdef MIN_VERSION_containers+#if MIN_VERSION_containers(0,5,0)+#define HAVE_containers_050+#endif+#endif++import Prelude ()+import qualified Distribution.Compat.Prelude as Prelude+import Distribution.Compat.Prelude hiding (lookup, null, empty)++import Data.Graph (SCC(..))+import qualified Data.Graph as G++#ifdef HAVE_containers_050+import qualified Data.Map.Strict as Map+#else+import qualified Data.Map as Map+#endif+import qualified Data.Set as Set+import qualified Data.Array as Array+import Data.Array ((!))+import qualified Data.Tree as Tree+import Data.Either (partitionEithers)+import qualified Data.Foldable as Foldable++-- | A graph of nodes @a@. The nodes are expected to have instance+-- of class 'IsNode'.+data Graph a+ = Graph {+ graphMap :: !(Map (Key a) a),+ -- Lazily cached graph representation+ graphForward :: G.Graph,+ graphAdjoint :: G.Graph,+ graphVertexToNode :: G.Vertex -> a,+ graphKeyToVertex :: Key a -> Maybe G.Vertex,+ graphBroken :: [(a, [Key a])]+ }+ deriving (Typeable)++-- NB: Not a Functor! (or Traversable), because you need+-- to restrict Key a ~ Key b. We provide our own mapping+-- functions.++-- General strategy is most operations are deferred to the+-- Map representation.++instance Show a => Show (Graph a) where+ show = show . toList++instance (IsNode a, Read a, Show (Key a)) => Read (Graph a) where+ readsPrec d s = map (\(a,r) -> (fromDistinctList a, r)) (readsPrec d s)++instance (IsNode a, Binary a, Show (Key a)) => Binary (Graph a) where+ put x = put (toList x)+ get = fmap fromDistinctList get++instance (Eq (Key a), Eq a) => Eq (Graph a) where+ g1 == g2 = graphMap g1 == graphMap g2++instance Foldable.Foldable Graph where+ fold = Foldable.fold . graphMap+ foldr f z = Foldable.foldr f z . graphMap+ foldl f z = Foldable.foldl f z . graphMap+ foldMap f = Foldable.foldMap f . graphMap+#ifdef MIN_VERSION_base+#if MIN_VERSION_base(4,6,0)+ foldl' f z = Foldable.foldl' f z . graphMap+ foldr' f z = Foldable.foldr' f z . graphMap+#endif+#if MIN_VERSION_base(4,8,0)+ length = Foldable.length . graphMap+ null = Foldable.null . graphMap+ toList = Foldable.toList . graphMap+ elem x = Foldable.elem x . graphMap+ maximum = Foldable.maximum . graphMap+ minimum = Foldable.minimum . graphMap+ sum = Foldable.sum . graphMap+ product = Foldable.product . graphMap+#endif+#endif++instance (NFData a, NFData (Key a)) => NFData (Graph a) where+ rnf Graph {+ graphMap = m,+ graphForward = gf,+ graphAdjoint = ga,+ graphVertexToNode = vtn,+ graphKeyToVertex = ktv,+ graphBroken = b+ } = gf `seq` ga `seq` vtn `seq` ktv `seq` b `seq` rnf m++-- TODO: Data instance?++-- | The 'IsNode' class is used for datatypes which represent directed+-- graph nodes. A node of type @a@ is associated with some unique key of+-- type @'Key' a@; given a node we can determine its key ('nodeKey')+-- and the keys of its neighbors ('nodeNeighbors').+class Ord (Key a) => IsNode a where+ type Key a :: *+ nodeKey :: a -> Key a+ nodeNeighbors :: a -> [Key a]++instance (IsNode a, IsNode b, Key a ~ Key b) => IsNode (Either a b) where+ type Key (Either a b) = Key a+ nodeKey (Left x) = nodeKey x+ nodeKey (Right x) = nodeKey x+ nodeNeighbors (Left x) = nodeNeighbors x+ nodeNeighbors (Right x) = nodeNeighbors x++-- | A simple, trivial data type which admits an 'IsNode' instance.+data Node k a = N a k [k]+ deriving (Show, Eq)++-- | Get the value from a 'Node'.+nodeValue :: Node k a -> a+nodeValue (N a _ _) = a++instance Functor (Node k) where+ fmap f (N a k ks) = N (f a) k ks++instance Ord k => IsNode (Node k a) where+ type Key (Node k a) = k+ nodeKey (N _ k _) = k+ nodeNeighbors (N _ _ ks) = ks++-- TODO: Maybe introduce a typeclass for items which just+-- keys (so, Key associated type, and nodeKey method). But+-- I didn't need it here, so I didn't introduce it.++-- Query++-- | /O(1)/. Is the graph empty?+null :: Graph a -> Bool+null = Map.null . toMap++-- | /O(1)/. The number of nodes in the graph.+size :: Graph a -> Int+size = Map.size . toMap++-- | /O(log V)/. Check if the key is in the graph.+member :: IsNode a => Key a -> Graph a -> Bool+member k g = Map.member k (toMap g)++-- | /O(log V)/. Lookup the node at a key in the graph.+lookup :: IsNode a => Key a -> Graph a -> Maybe a+lookup k g = Map.lookup k (toMap g)++-- Construction++-- | /O(1)/. The empty graph.+empty :: IsNode a => Graph a+empty = fromMap Map.empty++-- | /O(log V)/. Insert a node into a graph.+insert :: IsNode a => a -> Graph a -> Graph a+insert !n g = fromMap (Map.insert (nodeKey n) n (toMap g))++-- | /O(log V)/. Delete the node at a key from the graph.+deleteKey :: IsNode a => Key a -> Graph a -> Graph a+deleteKey k g = fromMap (Map.delete k (toMap g))++-- | /O(log V)/. Lookup and delete. This function returns the deleted+-- value if it existed.+deleteLookup :: IsNode a => Key a -> Graph a -> (Maybe a, Graph a)+deleteLookup k g =+ let (r, m') = Map.updateLookupWithKey (\_ _ -> Nothing) k (toMap g)+ in (r, fromMap m')++-- Combining++-- | /O(V + V')/. Right-biased union, preferring entries+-- from the second map when conflicts occur.+-- @'nodeKey' x = 'nodeKey' (f x)@.+unionRight :: IsNode a => Graph a -> Graph a -> Graph a+unionRight g g' = fromMap (Map.union (toMap g') (toMap g))++-- | /O(V + V')/. Left-biased union, preferring entries from+-- the first map when conflicts occur.+unionLeft :: IsNode a => Graph a -> Graph a -> Graph a+unionLeft = flip unionRight++-- Graph-like operations++-- | /Ω(V + E)/. Compute the strongly connected components of a graph.+-- Requires amortized construction of graph.+stronglyConnComp :: Graph a -> [SCC a]+stronglyConnComp g = map decode forest+ where+ forest = G.scc (graphForward g)+ decode (Tree.Node v [])+ | mentions_itself v = CyclicSCC [graphVertexToNode g v]+ | otherwise = AcyclicSCC (graphVertexToNode g v)+ decode other = CyclicSCC (dec other [])+ where dec (Tree.Node v ts) vs+ = graphVertexToNode g v : foldr dec vs ts+ mentions_itself v = v `elem` (graphForward g ! v)+-- Implementation copied from 'stronglyConnCompR' in 'Data.Graph'.++-- | /Ω(V + E)/. Compute the cycles of a graph.+-- Requires amortized construction of graph.+cycles :: Graph a -> [[a]]+cycles g = [ vs | CyclicSCC vs <- stronglyConnComp g ]++-- | /O(1)/. Return a list of nodes paired with their broken+-- neighbors (i.e., neighbor keys which are not in the graph).+-- Requires amortized construction of graph.+broken :: Graph a -> [(a, [Key a])]+broken g = graphBroken g++-- | Lookup the immediate neighbors from a key in the graph.+-- Requires amortized construction of graph.+neighbors :: Graph a -> Key a -> Maybe [a]+neighbors g k = do+ v <- graphKeyToVertex g k+ return (map (graphVertexToNode g) (graphForward g ! v))++-- | Lookup the immediate reverse neighbors from a key in the graph.+-- Requires amortized construction of graph.+revNeighbors :: Graph a -> Key a -> Maybe [a]+revNeighbors g k = do+ v <- graphKeyToVertex g k+ return (map (graphVertexToNode g) (graphAdjoint g ! v))++-- | Compute the subgraph which is the closure of some set of keys.+-- Returns @Nothing@ if one (or more) keys are not present in+-- the graph.+-- Requires amortized construction of graph.+closure :: Graph a -> [Key a] -> Maybe [a]+closure g ks = do+ vs <- traverse (graphKeyToVertex g) ks+ return (decodeVertexForest g (G.dfs (graphForward g) vs))++-- | Compute the reverse closure of a graph from some set+-- of keys. Returns @Nothing@ if one (or more) keys are not present in+-- the graph.+-- Requires amortized construction of graph.+revClosure :: Graph a -> [Key a] -> Maybe [a]+revClosure g ks = do+ vs <- traverse (graphKeyToVertex g) ks+ return (decodeVertexForest g (G.dfs (graphAdjoint g) vs))++flattenForest :: Tree.Forest a -> [a]+flattenForest = concatMap Tree.flatten++decodeVertexForest :: Graph a -> Tree.Forest G.Vertex -> [a]+decodeVertexForest g = map (graphVertexToNode g) . flattenForest++-- | Topologically sort the nodes of a graph.+-- Requires amortized construction of graph.+topSort :: Graph a -> [a]+topSort g = map (graphVertexToNode g) $ G.topSort (graphForward g)++-- | Reverse topologically sort the nodes of a graph.+-- Requires amortized construction of graph.+revTopSort :: Graph a -> [a]+revTopSort g = map (graphVertexToNode g) $ G.topSort (graphAdjoint g)++-- Conversions++-- | /O(1)/. Convert a map from keys to nodes into a graph.+-- The map must satisfy the invariant that+-- @'fromMap' m == 'fromList' ('Data.Map.elems' m)@;+-- if you can't fulfill this invariant use @'fromList' ('Data.Map.elems' m)@+-- instead. The values of the map are assumed to already+-- be in WHNF.+fromMap :: IsNode a => Map (Key a) a -> Graph a+fromMap m+ = Graph { graphMap = m+ -- These are lazily computed!+ , graphForward = g+ , graphAdjoint = G.transposeG g+ , graphVertexToNode = vertex_to_node+ , graphKeyToVertex = key_to_vertex+ , graphBroken = broke+ }+ where+ try_key_to_vertex k = maybe (Left k) Right (key_to_vertex k)++ (brokenEdges, edges)+ = unzip+ $ [ partitionEithers (map try_key_to_vertex (nodeNeighbors n))+ | n <- ns ]+ broke = filter (not . Prelude.null . snd) (zip ns brokenEdges)++ g = Array.listArray bounds edges++ ns = Map.elems m -- sorted ascending+ vertices = zip (map nodeKey ns) [0..]+ vertex_map = Map.fromAscList vertices+ key_to_vertex k = Map.lookup k vertex_map++ vertex_to_node vertex = nodeTable ! vertex++ nodeTable = Array.listArray bounds ns+ bounds = (0, Map.size m - 1)++-- | /O(V log V)/. Convert a list of nodes (with distinct keys) into a graph.+fromDistinctList :: (IsNode a, Show (Key a)) => [a] -> Graph a+fromDistinctList = fromMap+ . Map.fromListWith (\_ -> duplicateError)+ . map (\n -> n `seq` (nodeKey n, n))+ where+ duplicateError n = error $ "Graph.fromDistinctList: duplicate key: "+ ++ show (nodeKey n)++-- Map-like operations++-- | /O(V)/. Convert a graph into a list of nodes.+toList :: Graph a -> [a]+toList g = Map.elems (toMap g)++-- | /O(V)/. Convert a graph into a list of keys.+keys :: Graph a -> [Key a]+keys g = Map.keys (toMap g)++-- | /O(V)/. Convert a graph into a set of keys.+keysSet :: Graph a -> Set.Set (Key a)+keysSet g = Map.keysSet (toMap g)++-- | /O(1)/. Convert a graph into a map from keys to nodes.+-- The resulting map @m@ is guaranteed to have the property that+-- @'Prelude.all' (\(k,n) -> k == 'nodeKey' n) ('Data.Map.toList' m)@.+toMap :: Graph a -> Map (Key a) a+toMap = graphMap++-- Graph-like operations++-- | /O(1)/. Convert a graph into a 'Data.Graph.Graph'.+-- Requires amortized construction of graph.+toGraph :: Graph a -> (G.Graph, G.Vertex -> a, Key a -> Maybe G.Vertex)+toGraph g = (graphForward g, graphVertexToNode g, graphKeyToVertex g)
+ Distribution/Compat/Map/Strict.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE CPP #-}++-- For bootstrapping GHC+#ifdef MIN_VERSION_containers+#if MIN_VERSION_containers(0,5,0)+#define HAVE_containers_050+#endif+#endif++module Distribution.Compat.Map.Strict+ ( module X+#ifdef HAVE_containers_050+#else+ , insertWith+#endif+ ) where++#ifdef HAVE_containers_050+import Data.Map.Strict as X+#else+import Data.Map as X hiding (insertWith, insertWith')+import qualified Data.Map++insertWith :: Ord k => (a -> a -> a) -> k -> a -> Map k a -> Map k a+insertWith = Data.Map.insertWith'+#endif
Distribution/Compat/MonadFail.hs view
@@ -9,7 +9,7 @@ -- the following code corresponds to -- http://hackage.haskell.org/package/fail-4.9.0.0 import qualified Prelude as P-import Prelude hiding (fail)+import Distribution.Compat.Prelude hiding (fail) import Text.ParserCombinators.ReadP import Text.ParserCombinators.ReadPrec@@ -25,7 +25,7 @@ instance MonadFail [] where fail _ = [] -instance MonadFail IO where+instance MonadFail P.IO where fail = P.fail instance MonadFail ReadPrec where
+ Distribution/Compat/Parsec.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE FlexibleContexts #-}+module Distribution.Compat.Parsec (+ P.Parsec,+ P.ParsecT,+ P.Stream,+ (P.<?>),++ P.runParser,++ -- * Combinators+ P.between,+ P.option,+ P.optional,+ P.optionMaybe,+ P.try,+ P.sepBy,+ P.sepBy1,+ P.choice,++ -- * Char+ integral,+ P.char,+ P.anyChar,+ P.satisfy,+ P.space,+ P.spaces,+ P.string,+ munch,+ munch1,+ P.oneOf,+ ) where++import Distribution.Compat.Prelude+import Prelude ()++import qualified Text.Parsec as P+import qualified Text.Parsec.Pos as P++integral :: (P.Stream s m Char, Integral a) => P.ParsecT s u m a+integral = toNumber <$> some d P.<?> "integral"+ where+ toNumber = foldl' (\a b -> a * 10 + b) 0+ d = P.tokenPrim+ (\c -> show [c])+ (\pos c _cs -> P.updatePosChar pos c)+ f+ f '0' = Just 0+ f '1' = Just 1+ f '2' = Just 2+ f '3' = Just 3+ f '4' = Just 4+ f '5' = Just 5+ f '6' = Just 6+ f '7' = Just 7+ f '8' = Just 8+ f '9' = Just 9+ f _ = Nothing++-- | Greedily munch characters while predicate holds.+-- Require at least one character.+munch1+ :: P.Stream s m Char+ => (Char -> Bool)+ -> P.ParsecT s u m String+munch1 = some . P.satisfy++-- | Greedely munch characters while predicate holds.+-- Always succeeds.+munch+ :: P.Stream s m Char+ => (Char -> Bool)+ -> P.ParsecT s u m String+munch = many . P.satisfy
+ Distribution/Compat/Prelude.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE FlexibleContexts #-}++#ifdef MIN_VERSION_base+#define MINVER_base_48 MIN_VERSION_base(4,8,0)+#define MINVER_base_47 MIN_VERSION_base(4,7,0)+#define MINVER_base_46 MIN_VERSION_base(4,6,0)+#else+#define MINVER_base_48 (__GLASGOW_HASKELL__ >= 710)+#define MINVER_base_47 (__GLASGOW_HASKELL__ >= 708)+#define MINVER_base_46 (__GLASGOW_HASKELL__ >= 706)+#endif++-- | This module does two things:+--+-- * Acts as a compatiblity layer, like @base-compat@.+--+-- * Provides commonly used imports.+module Distribution.Compat.Prelude (+ -- * Prelude+ --+ -- Prelude is re-exported, following is hidden:+ module BasePrelude,++#if !MINVER_base_48+ -- * base 4.8 shim+ Applicative(..), (<$), (<$>),+ Monoid(..),+#endif++ -- * Common type-classes+ Semigroup (..),+ gmappend, gmempty,+ Typeable,+ Data,+ Generic,+ NFData (..), genericRnf,+ Binary (..),+ Alternative (..),+ MonadPlus (..),+ IsString (..),++ -- * Some types+ IO, NoCallStackIO,+ Map,++ -- * Data.Maybe+ catMaybes, mapMaybe,+ fromMaybe,+ maybeToList, listToMaybe,+ isNothing, isJust,++ -- * Data.List+ unfoldr,+ isPrefixOf, isSuffixOf,+ intercalate, intersperse,+ sort, sortBy,+ nub, nubBy,++ -- * Data.Foldable+ Foldable, foldMap, foldr,+ null, length,+ find, foldl',+ traverse_, for_,++ -- * Data.Traversable+ Traversable, traverse, sequenceA,+ for,++ -- * Control.Arrow+ first,++ -- * Control.Monad+ liftM, liftM2,+ unless, when,+ ap, void,+ foldM, filterM,++ -- * Data.Char+ isSpace, isDigit, isUpper, isAlpha, isAlphaNum,+ chr, ord,+ toLower, toUpper,++ -- * Data.Word & Data.Int+ Word,+ Word8, Word16, Word32, Word64,+ Int8, Int16, Int32, Int64,++ -- * Text.PrettyPrint+ (<<>>),+ ) where++-- We also could hide few partial function+import Prelude as BasePrelude hiding+ ( IO, mapM, mapM_, sequence, null, length, foldr+#if MINVER_base_48+ , Word+ -- We hide them, as we import only some members+ , Traversable, traverse, sequenceA+ , Foldable, foldMap+#endif+ )++#if !MINVER_base_48+import Control.Applicative (Applicative (..), (<$), (<$>))+import Distribution.Compat.Semigroup (Monoid (..))+#else+import Data.Foldable (length, null)+#endif++import Data.Foldable (Foldable (foldMap, foldr), find, foldl', for_, traverse_)+import Data.Traversable (Traversable (traverse, sequenceA), for)++import Control.Applicative (Alternative (..))+import Control.DeepSeq (NFData (..))+import Data.Data (Data)+import Data.Typeable (Typeable)+import Distribution.Compat.Binary (Binary (..))+import Distribution.Compat.Semigroup (Semigroup (..), gmappend, gmempty)+import GHC.Generics (Generic, Rep(..),+ V1, U1(U1), K1(unK1), M1(unM1),+ (:*:)((:*:)), (:+:)(L1,R1))++import Data.Map (Map)++import Control.Arrow (first)+import Control.Monad hiding (mapM)+import Data.Char+import Data.List (intercalate, intersperse, isPrefixOf,+ isSuffixOf, nub, nubBy, sort, sortBy,+ unfoldr)+import Data.Maybe+import Data.String (IsString (..))+import Data.Int+import Data.Word++import qualified Text.PrettyPrint as Disp++import qualified Prelude as OrigPrelude+import Distribution.Compat.Stack++type IO a = WithCallStack (OrigPrelude.IO a)+type NoCallStackIO a = OrigPrelude.IO a++-- | New name for 'Text.PrettyPrint.<>'+(<<>>) :: Disp.Doc -> Disp.Doc -> Disp.Doc+(<<>>) = (Disp.<>)++#if !MINVER_base_48+-- | Test whether the structure is empty. The default implementation is+-- optimized for structures that are similar to cons-lists, because there+-- is no general way to do better.+null :: Foldable t => t a -> Bool+null = foldr (\_ _ -> False) True++-- | Returns the size/length of a finite structure as an 'Int'. The+-- default implementation is optimized for structures that are similar to+-- cons-lists, because there is no general way to do better.+length :: Foldable t => t a -> Int+length = foldl' (\c _ -> c+1) 0+#endif+++-- | "GHC.Generics"-based 'rnf' implementation+--+-- This is needed in order to support @deepseq < 1.4@ which didn't+-- have a 'Generic'-based default 'rnf' implementation yet.+--+-- In order to define instances, use e.g.+--+-- > instance NFData MyType where rnf = genericRnf+--+-- The implementation has been taken from @deepseq-1.4.2@'s default+-- 'rnf' implementation.+genericRnf :: (Generic a, GNFData (Rep a)) => a -> ()+genericRnf = grnf . from++-- | Hidden internal type-class+class GNFData f where+ grnf :: f a -> ()++instance GNFData V1 where+ grnf = error "Control.DeepSeq.rnf: uninhabited type"++instance GNFData U1 where+ grnf U1 = ()++instance NFData a => GNFData (K1 i a) where+ grnf = rnf . unK1+ {-# INLINEABLE grnf #-}++instance GNFData a => GNFData (M1 i c a) where+ grnf = grnf . unM1+ {-# INLINEABLE grnf #-}++instance (GNFData a, GNFData b) => GNFData (a :*: b) where+ grnf (x :*: y) = grnf x `seq` grnf y+ {-# INLINEABLE grnf #-}++instance (GNFData a, GNFData b) => GNFData (a :+: b) where+ grnf (L1 x) = grnf x+ grnf (R1 x) = grnf x+ {-# INLINEABLE grnf #-}
+ Distribution/Compat/Prelude/Internal.hs view
@@ -0,0 +1,14 @@+-- | This module re-exports the non-exposed+-- "Distribution.Compat.Prelude" module for+-- reuse by @cabal-install@'s+-- "Distribution.Client.Compat.Prelude" module.+--+-- It is highly discouraged to rely on this module+-- for @Setup.hs@ scripts since its API is /not/+-- stable.+module Distribution.Compat.Prelude.Internal+ {-# WARNING "This modules' API is not stable. Use at your own risk, or better yet, use @base-compat@!" #-}+ ( module Distribution.Compat.Prelude+ ) where++import Distribution.Compat.Prelude
Distribution/Compat/ReadP.hs view
@@ -37,12 +37,14 @@ -- * Other operations pfail, -- :: ReadP a+ eof, -- :: ReadP () satisfy, -- :: (Char -> Bool) -> ReadP Char char, -- :: Char -> ReadP Char string, -- :: String -> ReadP String munch, -- :: (Char -> Bool) -> ReadP String munch1, -- :: (Char -> Bool) -> ReadP String skipSpaces, -- :: ReadP ()+ skipSpaces1,-- :: ReadP () choice, -- :: [ReadP a] -> ReadP a count, -- :: Int -> ReadP a -> ReadP [a] between, -- :: ReadP open -> ReadP close -> ReadP a -> ReadP a@@ -69,11 +71,12 @@ ) where +import Prelude ()+import Distribution.Compat.Prelude hiding (many, get)+ import qualified Distribution.Compat.MonadFail as Fail -import Control.Monad( MonadPlus(..), liftM, liftM2, replicateM, ap, (>=>) )-import Data.Char (isSpace)-import Control.Applicative as AP (Applicative(..), Alternative(empty, (<|>)))+import Control.Monad( replicateM, (>=>) ) infixr 5 +++, <++ @@ -98,7 +101,7 @@ (<*>) = ap instance Monad (P s) where- return = AP.pure+ return = pure (Get f) >>= k = Get (f >=> k) (Look f) >>= k = Look (f >=> k)@@ -160,7 +163,7 @@ (<*>) = ap instance Monad (Parser r s) where- return = AP.pure+ return = pure fail = Fail.fail R m >>= f = R (\k -> m (\a -> let R m' = f a in m' k)) @@ -203,6 +206,12 @@ -- ^ Always fails. pfail = R (const Fail) +eof :: ReadP r ()+-- ^ Succeeds iff we are at the end of input+eof = do { s <- look+ ; if null s then return ()+ else pfail }+ (+++) :: ReadP r a -> ReadP r a -> ReadP r a -- ^ Symmetric choice. R f1 +++ R f2 = R (\k -> f1 k `mplus` f2 k)@@ -288,6 +297,11 @@ where skip (c:s) | isSpace c = do _ <- get; skip s skip _ = do return ()++skipSpaces1 :: ReadP r ()+-- ^ Like 'skipSpaces' but succeeds only if there is at least one+-- whitespace character to skip.+skipSpaces1 = satisfy isSpace >> skipSpaces count :: Int -> ReadP r a -> ReadP r [a] -- ^ @ count n p @ parses @n@ occurrences of @p@ in sequence. A list of
+ Distribution/Compat/SnocList.hs view
@@ -0,0 +1,33 @@+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Compat.SnocList+-- License : BSD3+--+-- Maintainer : cabal-dev@haskell.org+-- Stability : experimental+-- Portability : portable+--+-- A very reversed list. Has efficient `snoc`+module Distribution.Compat.SnocList (+ SnocList,+ runSnocList,+ snoc,+) where++import Prelude ()+import Distribution.Compat.Prelude++newtype SnocList a = SnocList [a]++snoc :: SnocList a -> a -> SnocList a+snoc (SnocList xs) x = SnocList (x : xs)++runSnocList :: SnocList a -> [a]+runSnocList (SnocList xs) = reverse xs++instance Semigroup (SnocList a) where+ SnocList xs <> SnocList ys = SnocList (ys <> xs)++instance Monoid (SnocList a) where+ mempty = SnocList []+ mappend = (<>)
+ Distribution/Compat/Stack.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE ImplicitParams #-}+module Distribution.Compat.Stack (+ WithCallStack,+ CallStack,+ annotateCallStackIO,+ withFrozenCallStack,+ withLexicalCallStack,+ callStack,+ prettyCallStack,+ parentSrcLocPrefix+) where++import System.IO.Error++#ifdef MIN_VERSION_base+#if MIN_VERSION_base(4,8,1)+#define GHC_STACK_SUPPORTED 1+#endif+#endif++#ifdef GHC_STACK_SUPPORTED+import GHC.Stack+#endif++#ifdef GHC_STACK_SUPPORTED++#if MIN_VERSION_base(4,9,0)+type WithCallStack a = HasCallStack => a+#elif MIN_VERSION_base(4,8,1)+type WithCallStack a = (?callStack :: CallStack) => a+#endif++#if !MIN_VERSION_base(4,9,0)+-- NB: Can't say WithCallStack (WithCallStack a -> a);+-- Haskell doesn't support this kind of implicit parameter!+-- See https://mail.haskell.org/pipermail/ghc-devs/2016-January/011096.html+-- Since this function doesn't do anything, it's OK to+-- give it a less good type.+withFrozenCallStack :: WithCallStack (a -> a)+withFrozenCallStack x = x++callStack :: (?callStack :: CallStack) => CallStack+callStack = ?callStack++prettyCallStack :: CallStack -> String+prettyCallStack = showCallStack+#endif++-- | Give the *parent* of the person who invoked this;+-- so it's most suitable for being called from a utility function.+-- You probably want to call this using 'withFrozenCallStack'; otherwise+-- it's not very useful. We didn't implement this for base-4.8.1+-- because we cannot rely on freezing to have taken place.+--+parentSrcLocPrefix :: WithCallStack String+#if MIN_VERSION_base(4,9,0)+parentSrcLocPrefix =+ case getCallStack callStack of+ (_:(_, loc):_) -> showLoc loc+ [(_, loc)] -> showLoc loc+ [] -> error "parentSrcLocPrefix: empty call stack"+ where+ showLoc loc =+ srcLocFile loc ++ ":" ++ show (srcLocStartLine loc) ++ ": "+#else+parentSrcLocPrefix = "Call sites not available with base < 4.9.0.0 (GHC 8.0): "+#endif++-- Yeah, this uses skivvy implementation details.+withLexicalCallStack :: (a -> WithCallStack (IO b)) -> WithCallStack (a -> IO b)+withLexicalCallStack f =+ let stk = ?callStack+ in \x -> let ?callStack = stk in f x++#else++data CallStack = CallStack+ deriving (Eq, Show)++type WithCallStack a = a++withFrozenCallStack :: a -> a+withFrozenCallStack x = x++callStack :: CallStack+callStack = CallStack++prettyCallStack :: CallStack -> String+prettyCallStack _ = "Call stacks not available with base < 4.8.1.0 (GHC 7.10)"++parentSrcLocPrefix :: String+parentSrcLocPrefix = "Call sites not available with base < 4.9.0.0 (GHC 8.0): "++withLexicalCallStack :: (a -> IO b) -> a -> IO b+withLexicalCallStack f = f++#endif++-- | This function is for when you *really* want to add a call+-- stack to raised IO, but you don't have a+-- 'Distribution.Verbosity.Verbosity' so you can't use+-- 'Distribution.Simple.Utils.annotateIO'. If you have a 'Verbosity',+-- please use that function instead.+annotateCallStackIO :: WithCallStack (IO a -> IO a)+annotateCallStackIO = modifyIOError f+ where+ f ioe = ioeSetErrorString ioe+ . wrapCallStack+ $ ioeGetErrorString ioe+ wrapCallStack s =+ prettyCallStack callStack ++ "\n" ++ s
+ Distribution/Compat/Time.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Distribution.Compat.Time+ ( ModTime(..) -- Needed for testing+ , getModTime, getFileAge, getCurTime+ , posixSecondsToModTime+ , calibrateMtimeChangeDelay )+ where++import Prelude ()+import Distribution.Compat.Prelude++import System.Directory ( getModificationTime )++import Distribution.Simple.Utils ( withTempDirectory )+import Distribution.Verbosity ( silent )++import System.FilePath++import Data.Time.Clock.POSIX ( POSIXTime, getPOSIXTime )+import Data.Time ( diffUTCTime, getCurrentTime )+#if MIN_VERSION_directory(1,2,0)+import Data.Time.Clock.POSIX ( posixDayLength )+#else+import System.Time ( getClockTime, diffClockTimes+ , normalizeTimeDiff, tdDay, tdHour )+#endif++#if defined mingw32_HOST_OS++import qualified Prelude+import Data.Bits ((.|.), unsafeShiftL)+#if MIN_VERSION_base(4,7,0)+import Data.Bits (finiteBitSize)+#else+import Data.Bits (bitSize)+#endif++import Foreign ( allocaBytes, peekByteOff )+import System.IO.Error ( mkIOError, doesNotExistErrorType )+import System.Win32.Types ( BOOL, DWORD, LPCTSTR, LPVOID, withTString )++#else++import System.Posix.Files ( FileStatus, getFileStatus )++#if MIN_VERSION_unix(2,6,0)+import System.Posix.Files ( modificationTimeHiRes )+#else+import System.Posix.Files ( modificationTime )+#endif++#endif++-- | An opaque type representing a file's modification time, represented+-- internally as a 64-bit unsigned integer in the Windows UTC format.+newtype ModTime = ModTime Word64+ deriving (Binary, Bounded, Eq, Ord)++instance Show ModTime where+ show (ModTime x) = show x++instance Read ModTime where+ readsPrec p str = map (first ModTime) (readsPrec p str)++-- | Return modification time of the given file. Works around the low clock+-- resolution problem that 'getModificationTime' has on GHC < 7.8.+--+-- This is a modified version of the code originally written for Shake by Neil+-- Mitchell. See module Development.Shake.FileInfo.+getModTime :: FilePath -> NoCallStackIO ModTime++#if defined mingw32_HOST_OS++-- Directly against the Win32 API.+getModTime path = allocaBytes size_WIN32_FILE_ATTRIBUTE_DATA $ \info -> do+ res <- getFileAttributesEx path info+ if not res+ then do+ let err = mkIOError doesNotExistErrorType+ "Distribution.Compat.Time.getModTime"+ Nothing (Just path)+ ioError err+ else do+ dwLow <- peekByteOff info+ index_WIN32_FILE_ATTRIBUTE_DATA_ftLastWriteTime_dwLowDateTime+ dwHigh <- peekByteOff info+ index_WIN32_FILE_ATTRIBUTE_DATA_ftLastWriteTime_dwHighDateTime+#if MIN_VERSION_base(4,7,0)+ let qwTime =+ (fromIntegral (dwHigh :: DWORD) `unsafeShiftL` finiteBitSize dwHigh)+ .|. (fromIntegral (dwLow :: DWORD))+#else+ let qwTime =+ (fromIntegral (dwHigh :: DWORD) `unsafeShiftL` bitSize dwHigh)+ .|. (fromIntegral (dwLow :: DWORD))+#endif+ return $! ModTime (qwTime :: Word64)++#ifdef x86_64_HOST_ARCH+#define CALLCONV ccall+#else+#define CALLCONV stdcall+#endif++foreign import CALLCONV "windows.h GetFileAttributesExW"+ c_getFileAttributesEx :: LPCTSTR -> Int32 -> LPVOID -> Prelude.IO BOOL++getFileAttributesEx :: String -> LPVOID -> NoCallStackIO BOOL+getFileAttributesEx path lpFileInformation =+ withTString path $ \c_path ->+ c_getFileAttributesEx c_path getFileExInfoStandard lpFileInformation++getFileExInfoStandard :: Int32+getFileExInfoStandard = 0++size_WIN32_FILE_ATTRIBUTE_DATA :: Int+size_WIN32_FILE_ATTRIBUTE_DATA = 36++index_WIN32_FILE_ATTRIBUTE_DATA_ftLastWriteTime_dwLowDateTime :: Int+index_WIN32_FILE_ATTRIBUTE_DATA_ftLastWriteTime_dwLowDateTime = 20++index_WIN32_FILE_ATTRIBUTE_DATA_ftLastWriteTime_dwHighDateTime :: Int+index_WIN32_FILE_ATTRIBUTE_DATA_ftLastWriteTime_dwHighDateTime = 24++#else++-- Directly against the unix library.+getModTime path = do+ st <- getFileStatus path+ return $! (extractFileTime st)++extractFileTime :: FileStatus -> ModTime+#if MIN_VERSION_unix(2,6,0)+extractFileTime x = posixTimeToModTime (modificationTimeHiRes x)+#else+extractFileTime x = posixSecondsToModTime $ fromIntegral $ fromEnum $+ modificationTime x+#endif++#endif++windowsTick, secToUnixEpoch :: Word64+windowsTick = 10000000+secToUnixEpoch = 11644473600++-- | Convert POSIX seconds to ModTime.+posixSecondsToModTime :: Int64 -> ModTime+posixSecondsToModTime s =+ ModTime $ ((fromIntegral s :: Word64) + secToUnixEpoch) * windowsTick++-- | Convert 'POSIXTime' to 'ModTime'.+posixTimeToModTime :: POSIXTime -> ModTime+posixTimeToModTime p = ModTime $ (ceiling $ p * 1e7) -- 100 ns precision+ + (secToUnixEpoch * windowsTick)++-- | Return age of given file in days.+getFileAge :: FilePath -> NoCallStackIO Double+getFileAge file = do+ t0 <- getModificationTime file+#if MIN_VERSION_directory(1,2,0)+ t1 <- getCurrentTime+ return $ realToFrac (t1 `diffUTCTime` t0) / realToFrac posixDayLength+#else+ t1 <- getClockTime+ let dt = normalizeTimeDiff (t1 `diffClockTimes` t0)+ return $ fromIntegral ((24 * tdDay dt) + tdHour dt) / 24.0+#endif++-- | Return the current time as 'ModTime'.+getCurTime :: NoCallStackIO ModTime+getCurTime = posixTimeToModTime `fmap` getPOSIXTime -- Uses 'gettimeofday'.++-- | Based on code written by Neil Mitchell for Shake. See+-- 'sleepFileTimeCalibrate' in 'Test.Type'. Returns a pair+-- of microsecond values: first, the maximum delay seen, and the+-- recommended delay to use before testing for file modification change.+-- The returned delay is never smaller+-- than 10 ms, but never larger than 1 second.+calibrateMtimeChangeDelay :: IO (Int, Int)+calibrateMtimeChangeDelay =+ withTempDirectory silent "." "calibration-" $ \dir -> do+ let fileName = dir </> "probe"+ mtimes <- for [1..25] $ \(i::Int) -> time $ do+ writeFile fileName $ show i+ t0 <- getModTime fileName+ let spin j = do+ writeFile fileName $ show (i,j)+ t1 <- getModTime fileName+ unless (t0 < t1) (spin $ j + 1)+ spin (0::Int)+ let mtimeChange = maximum mtimes+ mtimeChange' = min 1000000 $ (max 10000 mtimeChange) * 2+ return (mtimeChange, mtimeChange')+ where+ time :: IO () -> IO Int+ time act = do+ t0 <- getCurrentTime+ act+ t1 <- getCurrentTime+ return . ceiling $! (t1 `diffUTCTime` t0) * 1e6 -- microseconds
Distribution/Compiler.hs view
@@ -15,8 +15,8 @@ -- case analysis on this compiler flavour enumeration like: -- -- > case compilerFlavor comp of--- > GHC -> GHC.getInstalledPackages verbosity packageDb progconf--- > JHC -> JHC.getInstalledPackages verbosity packageDb progconf+-- > GHC -> GHC.getInstalledPackages verbosity packageDb progdb+-- > JHC -> JHC.getInstalledPackages verbosity packageDb progdb -- -- Obviously it would be better to use the proper 'Compiler' abstraction -- because that would keep all the compiler-specific code together.@@ -32,6 +32,7 @@ buildCompilerFlavor, defaultCompilerFlavor, parseCompilerFlavorCompat,+ classifyCompilerFlavor, -- * Compiler id CompilerId(..),@@ -42,27 +43,22 @@ AbiTag(..), abiTagString ) where -import Distribution.Compat.Binary+import Prelude ()+import Distribution.Compat.Prelude+ import Language.Haskell.Extension -import Data.Data (Data)-import Data.Typeable (Typeable)-import Data.Maybe (fromMaybe)-import Distribution.Version (Version(..))-import GHC.Generics (Generic)+import Distribution.Version (Version, mkVersion', nullVersion) import qualified System.Info (compilerName, compilerVersion) import Distribution.Text (Text(..), display) import qualified Distribution.Compat.ReadP as Parse import qualified Text.PrettyPrint as Disp-import Text.PrettyPrint ((<>)) -import qualified Data.Char as Char (toLower, isDigit, isAlphaNum)-import Control.Monad (when)--data CompilerFlavor = GHC | GHCJS | NHC | YHC | Hugs | HBC | Helium | JHC | LHC | UHC- | HaskellSuite String -- string is the id of the actual compiler- | OtherCompiler String+data CompilerFlavor =+ GHC | GHCJS | NHC | YHC | Hugs | HBC | Helium | JHC | LHC | UHC+ | HaskellSuite String -- string is the id of the actual compiler+ | OtherCompiler String deriving (Generic, Show, Read, Eq, Ord, Typeable, Data) instance Binary CompilerFlavor@@ -77,8 +73,8 @@ disp other = Disp.text (lowercase (show other)) parse = do- comp <- Parse.munch1 Char.isAlphaNum- when (all Char.isDigit comp) Parse.pfail+ comp <- Parse.munch1 isAlphaNum+ when (all isDigit comp) Parse.pfail return (classifyCompilerFlavor comp) classifyCompilerFlavor :: String -> CompilerFlavor@@ -103,8 +99,8 @@ -- parseCompilerFlavorCompat :: Parse.ReadP r CompilerFlavor parseCompilerFlavorCompat = do- comp <- Parse.munch1 Char.isAlphaNum- when (all Char.isDigit comp) Parse.pfail+ comp <- Parse.munch1 isAlphaNum+ when (all isDigit comp) Parse.pfail case lookup comp compilerMap of Just compiler -> return compiler Nothing -> return (OtherCompiler comp)@@ -117,7 +113,7 @@ buildCompilerFlavor = classifyCompilerFlavor System.Info.compilerName buildCompilerVersion :: Version-buildCompilerVersion = System.Info.compilerVersion+buildCompilerVersion = mkVersion' System.Info.compilerVersion buildCompilerId :: CompilerId buildCompilerId = CompilerId buildCompilerFlavor buildCompilerVersion@@ -143,31 +139,35 @@ instance Binary CompilerId instance Text CompilerId where- disp (CompilerId f (Version [] _)) = disp f- disp (CompilerId f v) = disp f <> Disp.char '-' <> disp v+ disp (CompilerId f v)+ | v == nullVersion = disp f+ | otherwise = disp f <<>> Disp.char '-' <<>> disp v parse = do flavour <- parse- version <- (Parse.char '-' >> parse) Parse.<++ return (Version [] [])+ version <- (Parse.char '-' >> parse) Parse.<++ return nullVersion return (CompilerId flavour version) lowercase :: String -> String-lowercase = map Char.toLower+lowercase = map toLower -- ------------------------------------------------------------ -- * Compiler Info -- ------------------------------------------------------------ --- | Compiler information used for resolving configurations. Some fields can be--- set to Nothing to indicate that the information is unknown.+-- | Compiler information used for resolving configurations. Some+-- fields can be set to Nothing to indicate that the information is+-- unknown. data CompilerInfo = CompilerInfo { compilerInfoId :: CompilerId, -- ^ Compiler flavour and version. compilerInfoAbiTag :: AbiTag,- -- ^ Tag for distinguishing incompatible ABI's on the same architecture/os.+ -- ^ Tag for distinguishing incompatible ABI's on the same+ -- architecture/os. compilerInfoCompat :: Maybe [CompilerId],- -- ^ Other implementations that this compiler claims to be compatible with, if known.+ -- ^ Other implementations that this compiler claims to be+ -- compatible with, if known. compilerInfoLanguages :: Maybe [Language], -- ^ Supported language standards, if known. compilerInfoExtensions :: Maybe [Extension]@@ -189,7 +189,7 @@ disp (AbiTag tag) = Disp.text tag parse = do- tag <- Parse.munch (\c -> Char.isAlphaNum c || c == '_')+ tag <- Parse.munch (\c -> isAlphaNum c || c == '_') if null tag then return NoAbiTag else return (AbiTag tag) abiTagString :: AbiTag -> String
Distribution/GetOpt.hs view
@@ -7,36 +7,19 @@ -- Maintainer : libraries@haskell.org -- Portability : portable ----- This library provides facilities for parsing the command-line options--- in a standalone program. It is essentially a Haskell port of the GNU--- @getopt@ library.+-- This is a fork of "System.Console.GetOpt" with the following changes: ----------------------------------------------------------------------------------{--Sven Panne <Sven.Panne@informatik.uni-muenchen.de> Oct. 1996 (small-changes Dec. 1997)--Two rather obscure features are missing: The Bash 2.0 non-option hack-(if you don't already know it, you probably don't want to hear about-it...) and the recognition of long options with a single dash-(e.g. '-help' is recognised as '--help', as long as there is no short-option 'h').--Other differences between GNU's getopt and this implementation:--* To enforce a coherent description of options and arguments, there- are explanation fields in the option/argument descriptor.--* Error messages are now more informative, but no longer POSIX- compliant... :-(--And a final Haskell advertisement: The GNU C implementation uses well-over 1100 lines, we need only 195 here, including a 46 line example!-:-)--}--{-# OPTIONS_HADDOCK hide #-}+-- * Treat "cabal --flag command" as "cabal command --flag" e.g.+-- "cabal -v configure" to mean "cabal configure -v" For flags that are+-- not recognised as global flags, pass them on to the sub-command. See+-- the difference in 'shortOpt'.+--+-- * Line wrapping in the 'usageInfo' output, plus a more compact+-- rendering of short options, and slightly less padding.+--+-- If you want to take on the challenge of merging this with the GetOpt+-- from the base package then go for it!+-- module Distribution.GetOpt ( -- * GetOpt getOpt, getOpt',@@ -46,44 +29,13 @@ ArgDescr(..), -- * Example-- -- $example+ -- | See "System.Console.GetOpt" for examples ) where -import Data.List ( isPrefixOf, intercalate, find )-import Data.Maybe ( isJust )---- |What to do with options following non-options-data ArgOrder a- = RequireOrder -- ^ no option processing after first non-option- | Permute -- ^ freely intersperse options and non-options- | ReturnInOrder (String -> a) -- ^ wrap non-options into options--{-|-Each 'OptDescr' describes a single option.--The arguments to 'Option' are:--* list of short option characters--* list of long option strings (without \"--\")--* argument descriptor--* explanation of option for user--}-data OptDescr a = -- description of a single options:- Option [Char] -- list of short option characters- [String] -- list of long option strings (without "--")- (ArgDescr a) -- argument descriptor- String -- explanation of option for user---- |Describes whether an option takes an argument or not, and if so--- how the argument is injected into a value of type @a@.-data ArgDescr a- = NoArg a -- ^ no argument expected- | ReqArg (String -> a) String -- ^ option requires argument- | OptArg (Maybe String -> a) String -- ^ optional argument+import Prelude ()+import Distribution.Compat.Prelude+import System.Console.GetOpt+ ( ArgOrder(..), OptDescr(..), ArgDescr(..) ) data OptKind a -- kind of cmd line arg (internal use only): = Opt a -- an option@@ -123,6 +75,7 @@ fmtShort (NoArg _ ) so = "-" ++ [so] fmtShort (ReqArg _ _) so = "-" ++ [so] fmtShort (OptArg _ _) so = "-" ++ [so]+ -- unlike upstream GetOpt we omit the arg name for short options fmtLong :: ArgDescr a -> String -> String fmtLong (NoArg _ ) lo = "--" ++ lo@@ -234,6 +187,11 @@ short (OptArg f _:_) xs rest = (Opt (f (Just xs)),rest) short [] [] rest = (UnreqOpt optStr,rest) short [] xs rest = (UnreqOpt (optStr++xs),rest)+ -- This is different vs upstream = (UnreqOpt optStr,('-':xs):rest)+ -- Apparently this was part of the change so that flags that are+ -- not recognised as global flags are passed on to the sub-command.+ -- But why was no equivalent change required for longOpt? So could+ -- this change go upstream? -- miscellaneous error formatting @@ -249,87 +207,3 @@ errNoArg :: String -> OptKind a errNoArg optStr = OptErr ("option `" ++ optStr ++ "' doesn't allow an argument\n")--{---------------------------------------------------------------------------------------------- and here a small and hopefully enlightening example:--data Flag = Verbose | Version | Name String | Output String | Arg String deriving Show--options :: [OptDescr Flag]-options =- [Option ['v'] ["verbose"] (NoArg Verbose) "verbosely list files",- Option ['V','?'] ["version","release"] (NoArg Version) "show version info",- Option ['o'] ["output"] (OptArg out "FILE") "use FILE for dump",- Option ['n'] ["name"] (ReqArg Name "USER") "only dump USER's files"]--out :: Maybe String -> Flag-out Nothing = Output "stdout"-out (Just o) = Output o--test :: ArgOrder Flag -> [String] -> String-test order cmdline = case getOpt order options cmdline of- (o,n,[] ) -> "options=" ++ show o ++ " args=" ++ show n ++ "\n"- (_,_,errs) -> concat errs ++ usageInfo header options- where header = "Usage: foobar [OPTION...] files..."---- example runs:--- putStr (test RequireOrder ["foo","-v"])--- ==> options=[] args=["foo", "-v"]--- putStr (test Permute ["foo","-v"])--- ==> options=[Verbose] args=["foo"]--- putStr (test (ReturnInOrder Arg) ["foo","-v"])--- ==> options=[Arg "foo", Verbose] args=[]--- putStr (test Permute ["foo","--","-v"])--- ==> options=[] args=["foo", "-v"]--- putStr (test Permute ["-?o","--name","bar","--na=baz"])--- ==> options=[Version, Output "stdout", Name "bar", Name "baz"] args=[]--- putStr (test Permute ["--ver","foo"])--- ==> option `--ver' is ambiguous; could be one of:--- -v --verbose verbosely list files--- -V, -? --version, --release show version info--- Usage: foobar [OPTION...] files...--- -v --verbose verbosely list files--- -V, -? --version, --release show version info--- -o[FILE] --output[=FILE] use FILE for dump--- -n USER --name=USER only dump USER's files--------------------------------------------------------------------------------------------}--{- $example--To hopefully illuminate the role of the different data-structures, here\'s the command-line options for a (very simple)-compiler:--> module Opts where->-> import Distribution.GetOpt-> import Data.Maybe ( fromMaybe )->-> data Flag-> = Verbose | Version-> | Input String | Output String | LibDir String-> deriving Show->-> options :: [OptDescr Flag]-> options =-> [ Option ['v'] ["verbose"] (NoArg Verbose) "chatty output on stderr"-> , Option ['V','?'] ["version"] (NoArg Version) "show version number"-> , Option ['o'] ["output"] (OptArg outp "FILE") "output FILE"-> , Option ['c'] [] (OptArg inp "FILE") "input FILE"-> , Option ['L'] ["libdir"] (ReqArg LibDir "DIR") "library directory"-> ]->-> inp,outp :: Maybe String -> Flag-> outp = Output . fromMaybe "stdout"-> inp = Input . fromMaybe "stdin"->-> compilerOpts :: [String] -> IO ([Flag], [String])-> compilerOpts argv =-> case getOpt Permute options argv of-> (o,n,[] ) -> return (o,n)-> (_,_,errs) -> ioError (userError (concat errs ++ usageInfo header options))-> where header = "Usage: ic [OPTION...] files..."---}
Distribution/InstalledPackageInfo.hs view
@@ -1,4 +1,6 @@ {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE TypeFamilies #-} ----------------------------------------------------------------------------- -- |@@ -28,9 +30,13 @@ module Distribution.InstalledPackageInfo ( InstalledPackageInfo(..),- installedComponentId, installedPackageId,- OriginalModule(..), ExposedModule(..),+ installedComponentId,+ installedOpenUnitId,+ sourceComponentName,+ requiredSignatures,+ ExposedModule(..),+ AbiDependency(..), ParseResult(..), PError(..), PWarning, emptyInstalledPackageInfo, parseInstalledPackageInfo,@@ -40,19 +46,28 @@ fieldsInstalledPackageInfo, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.ParseUtils import Distribution.License import Distribution.Package hiding (installedUnitId, installedPackageId)+import Distribution.Backpack import qualified Distribution.Package as Package import Distribution.ModuleName import Distribution.Version import Distribution.Text import qualified Distribution.Compat.ReadP as Parse-import Distribution.Compat.Binary+import Distribution.Compat.Graph+import Distribution.Types.MungedPackageId+import Distribution.Types.ComponentName+import Distribution.Types.MungedPackageName+import Distribution.Types.UnqualComponentName import Text.PrettyPrint as Disp-import Data.Maybe (fromMaybe)-import GHC.Generics (Generic)+import qualified Data.Char as Char+import qualified Data.Map as Map+import Data.Set (Set) -- ----------------------------------------------------------------------------- -- The InstalledPackageInfo type@@ -64,6 +79,13 @@ -- these parts are exactly the same as PackageDescription sourcePackageId :: PackageId, installedUnitId :: UnitId,+ installedComponentId_ :: ComponentId,+ -- INVARIANT: if this package is definite, OpenModule's+ -- OpenUnitId directly records UnitId. If it is+ -- indefinite, OpenModule is always an OpenModuleVar+ -- with the same ModuleName as the key.+ instantiatedWith :: [(ModuleName, OpenModule)],+ sourceLibName :: Maybe UnqualComponentName, compatPackageKey :: String, license :: License, copyright :: String,@@ -77,20 +99,26 @@ category :: String, -- these parts are required by an installed package only: abiHash :: AbiHash,+ indefinite :: Bool, exposed :: Bool,+ -- INVARIANT: if the package is definite, OpenModule's+ -- OpenUnitId directly records UnitId. exposedModules :: [ExposedModule], hiddenModules :: [ModuleName], trusted :: Bool, importDirs :: [FilePath], libraryDirs :: [FilePath],- libraryDynDirs :: [FilePath],+ libraryDynDirs :: [FilePath], -- ^ overrides 'libraryDirs' dataDir :: FilePath, hsLibraries :: [String], extraLibraries :: [String], extraGHCiLibraries:: [String], -- overrides extraLibraries for GHCi includeDirs :: [FilePath], includes :: [String],+ -- INVARIANT: if the package is definite, UnitId is NOT+ -- a ComponentId of an indefinite package depends :: [UnitId],+ abiDepends :: [AbiDependency], ccOptions :: [String], ldOptions :: [String], frameworkDirs :: [FilePath],@@ -99,19 +127,42 @@ haddockHTMLs :: [FilePath], pkgRoot :: Maybe FilePath }- deriving (Eq, Generic, Read, Show)+ deriving (Eq, Generic, Typeable, Read, Show) installedComponentId :: InstalledPackageInfo -> ComponentId-installedComponentId ipi = case installedUnitId ipi of- SimpleUnitId cid -> cid+installedComponentId ipi =+ case unComponentId (installedComponentId_ ipi) of+ "" -> mkComponentId (unUnitId (installedUnitId ipi))+ _ -> installedComponentId_ ipi +-- | Get the indefinite unit identity representing this package.+-- This IS NOT guaranteed to give you a substitution; for+-- instantiated packages you will get @DefiniteUnitId (installedUnitId ipi)@.+-- For indefinite libraries, however, you will correctly get+-- an @OpenUnitId@ with the appropriate 'OpenModuleSubst'.+installedOpenUnitId :: InstalledPackageInfo -> OpenUnitId+installedOpenUnitId ipi+ = mkOpenUnitId (installedUnitId ipi) (installedComponentId ipi) (Map.fromList (instantiatedWith ipi))++-- | Returns the set of module names which need to be filled for+-- an indefinite package, or the empty set if the package is definite.+requiredSignatures :: InstalledPackageInfo -> Set ModuleName+requiredSignatures ipi = openModuleSubstFreeHoles (Map.fromList (instantiatedWith ipi))+ {-# DEPRECATED installedPackageId "Use installedUnitId instead" #-} -- | Backwards compatibility with Cabal pre-1.24.+--+-- This type synonym is slightly awful because in cabal-install+-- we define an 'InstalledPackageId' but it's a ComponentId,+-- not a UnitId! installedPackageId :: InstalledPackageInfo -> UnitId installedPackageId = installedUnitId instance Binary InstalledPackageInfo +instance Package.HasMungedPackageId InstalledPackageInfo where+ mungedId = mungedPackageId+ instance Package.Package InstalledPackageInfo where packageId = sourcePackageId @@ -121,11 +172,19 @@ instance Package.PackageInstalled InstalledPackageInfo where installedDepends = depends +instance IsNode InstalledPackageInfo where+ type Key InstalledPackageInfo = UnitId+ nodeKey = installedUnitId+ nodeNeighbors = depends+ emptyInstalledPackageInfo :: InstalledPackageInfo emptyInstalledPackageInfo = InstalledPackageInfo {- sourcePackageId = PackageIdentifier (PackageName "") (Version [] []),+ sourcePackageId = PackageIdentifier (mkPackageName "") nullVersion, installedUnitId = mkUnitId "",+ installedComponentId_ = mkComponentId "",+ instantiatedWith = [],+ sourceLibName = Nothing, compatPackageKey = "", license = UnspecifiedLicense, copyright = "",@@ -137,7 +196,8 @@ synopsis = "", description = "", category = "",- abiHash = AbiHash "",+ abiHash = mkAbiHash "",+ indefinite = False, exposed = False, exposedModules = [], hiddenModules = [],@@ -152,6 +212,7 @@ includeDirs = [], includes = [], depends = [],+ abiDepends = [], ccOptions = [], ldOptions = [], frameworkDirs = [],@@ -164,29 +225,13 @@ -- ----------------------------------------------------------------------------- -- Exposed modules -data OriginalModule- = OriginalModule {- originalPackageId :: UnitId,- originalModuleName :: ModuleName- }- deriving (Generic, Eq, Read, Show)- data ExposedModule = ExposedModule { exposedName :: ModuleName,- exposedReexport :: Maybe OriginalModule+ exposedReexport :: Maybe OpenModule } deriving (Eq, Generic, Read, Show) -instance Text OriginalModule where- disp (OriginalModule ipi m) =- disp ipi <> Disp.char ':' <> disp m- parse = do- ipi <- parse- _ <- Parse.char ':'- m <- parse- return (OriginalModule ipi m)- instance Text ExposedModule where disp (ExposedModule m reexport) = Disp.hsep [ disp m@@ -203,9 +248,6 @@ fmap Just parse return (ExposedModule m reexport) --instance Binary OriginalModule- instance Binary ExposedModule -- To maintain backwards-compatibility, we accept both comma/non-comma@@ -223,7 +265,90 @@ parseExposedModules :: Parse.ReadP r [ExposedModule] parseExposedModules = parseOptCommaList parse +dispMaybe :: Text a => Maybe a -> Disp.Doc+dispMaybe Nothing = Disp.empty+dispMaybe (Just x) = disp x++parseMaybe :: Text a => Parse.ReadP r (Maybe a)+parseMaybe = fmap Just parse Parse.<++ return Nothing+ -- -----------------------------------------------------------------------------+-- ABI dependency++-- | An ABI dependency is a dependency on a library which also+-- records the ABI hash ('abiHash') of the library it depends+-- on.+--+-- The primary utility of this is to enable an extra sanity when+-- GHC loads libraries: it can check if the dependency has a matching+-- ABI and if not, refuse to load this library. This information+-- is critical if we are shadowing libraries; differences in the+-- ABI hash let us know what packages get shadowed by the new version+-- of a package.+data AbiDependency = AbiDependency {+ depUnitId :: UnitId,+ depAbiHash :: AbiHash+ }+ deriving (Eq, Generic, Read, Show)++instance Text AbiDependency where+ disp (AbiDependency uid abi) =+ disp uid <<>> Disp.char '=' <<>> disp abi+ parse = do+ uid <- parse+ _ <- Parse.char '='+ abi <- parse+ return (AbiDependency uid abi)++instance Binary AbiDependency++-- -----------------------------------------------------------------------------+-- Munging++sourceComponentName :: InstalledPackageInfo -> ComponentName+sourceComponentName ipi =+ case sourceLibName ipi of+ Nothing -> CLibName+ Just qn -> CSubLibName qn++-- | Returns @Just@ if the @name@ field of the IPI record would not contain+-- the package name verbatim. This helps us avoid writing @package-name@+-- when it's redundant.+maybePackageName :: InstalledPackageInfo -> Maybe PackageName+maybePackageName ipi =+ case sourceLibName ipi of+ Nothing -> Nothing+ Just _ -> Just (packageName ipi)++-- | Setter for the @package-name@ field. It should be acceptable for this+-- to be a no-op.+setMaybePackageName :: Maybe PackageName -> InstalledPackageInfo -> InstalledPackageInfo+setMaybePackageName Nothing ipi = ipi+setMaybePackageName (Just pn) ipi = ipi {+ sourcePackageId=(sourcePackageId ipi){pkgName=pn}+ }++-- | Returns the munged package name, which we write into @name@ for+-- compatibility with old versions of GHC.+mungedPackageName :: InstalledPackageInfo -> MungedPackageName+mungedPackageName ipi =+ computeCompatPackageName+ (packageName ipi)+ (sourceLibName ipi)++setMungedPackageName :: MungedPackageName -> InstalledPackageInfo -> InstalledPackageInfo+setMungedPackageName mpn ipi =+ let (pn, mb_uqn) = decodeCompatPackageName mpn+ in ipi {+ sourcePackageId = (sourcePackageId ipi) {pkgName=pn},+ sourceLibName = mb_uqn+ }++mungedPackageId :: InstalledPackageInfo -> MungedPackageId+mungedPackageId ipi =+ MungedPackageId (mungedPackageName ipi) (packageVersion ipi)++-- ----------------------------------------------------------------------------- -- Parsing parseInstalledPackageInfo :: String -> ParseResult InstalledPackageInfo@@ -243,6 +368,13 @@ showSimpleInstalledPackageInfoField :: String -> Maybe (InstalledPackageInfo -> String) showSimpleInstalledPackageInfoField = showSimpleSingleNamedField fieldsInstalledPackageInfo +dispCompatPackageKey :: String -> Doc+dispCompatPackageKey = text++parseCompatPackageKey :: Parse.ReadP r String+parseCompatPackageKey = Parse.munch1 uid_char+ where uid_char c = Char.isAlphaNum c || c `elem` "-_.=[],:<>+"+ -- ----------------------------------------------------------------------------- -- Description of the fields, for parsing/printing @@ -252,17 +384,25 @@ basicFieldDescrs :: [FieldDescr InstalledPackageInfo] basicFieldDescrs = [ simpleField "name"- disp parsePackageNameQ- packageName (\name pkg -> pkg{sourcePackageId=(sourcePackageId pkg){pkgName=name}})+ disp (parseMaybeQuoted parse)+ mungedPackageName setMungedPackageName , simpleField "version" disp parseOptVersion packageVersion (\ver pkg -> pkg{sourcePackageId=(sourcePackageId pkg){pkgVersion=ver}}) , simpleField "id" disp parse- installedUnitId (\pk pkg -> pkg{installedUnitId=pk})- -- NB: parse these as component IDs+ installedUnitId (\pk pkg -> pkg{installedUnitId=pk})+ , simpleField "instantiated-with"+ (dispOpenModuleSubst . Map.fromList) (fmap Map.toList parseOpenModuleSubst)+ instantiatedWith (\iw pkg -> pkg{instantiatedWith=iw})+ , simpleField "package-name"+ dispMaybe parseMaybe+ maybePackageName setMaybePackageName+ , simpleField "lib-name"+ dispMaybe parseMaybe+ sourceLibName (\n pkg -> pkg{sourceLibName=n}) , simpleField "key"- (disp . ComponentId) (fmap (\(ComponentId s) -> s) parse)+ dispCompatPackageKey parseCompatPackageKey compatPackageKey (\pk pkg -> pkg{compatPackageKey=pk}) , simpleField "license" disp parseLicenseQ@@ -300,6 +440,8 @@ installedFieldDescrs = [ boolField "exposed" exposed (\val pkg -> pkg{exposed=val})+ , boolField "indefinite"+ indefinite (\val pkg -> pkg{indefinite=val}) , simpleField "exposed-modules" showExposedModules parseExposedModules exposedModules (\xs pkg -> pkg{exposedModules=xs})@@ -341,6 +483,9 @@ , listField "depends" disp parse depends (\xs pkg -> pkg{depends=xs})+ , listField "abi-depends"+ disp parse+ abiDepends (\xs pkg -> pkg{abiDepends=xs}) , listField "cc-options" showToken parseTokenQ ccOptions (\path pkg -> pkg{ccOptions=path})
Distribution/Lex.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE PatternGuards #-} ----------------------------------------------------------------------------- -- | -- Module : Distribution.Lex@@ -13,23 +12,9 @@ tokenizeQuotedWords ) where -import Data.Char (isSpace)-import Distribution.Compat.Semigroup as Semi--newtype DList a = DList ([a] -> [a])--runDList :: DList a -> [a]-runDList (DList run) = run []--singleton :: a -> DList a-singleton a = DList (a:)--instance Monoid (DList a) where- mempty = DList id- mappend = (Semi.<>)--instance Semigroup (DList a) where- DList a <> DList b = DList (a . b)+import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Compat.DList tokenizeQuotedWords :: String -> [String] tokenizeQuotedWords = filter (not . null) . go False mempty
Distribution/License.hs view
@@ -47,17 +47,13 @@ knownLicenses, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Version import Distribution.Text import qualified Distribution.Compat.ReadP as Parse-import Distribution.Compat.Binary- import qualified Text.PrettyPrint as Disp-import Text.PrettyPrint ((<>))-import qualified Data.Char as Char (isAlphaNum)-import Data.Data (Data)-import Data.Typeable (Typeable)-import GHC.Generics (Generic) -- | Indicates the license under which a package's source code is released. -- Versions of the licenses not listed here will be rejected by Hackage and@@ -133,24 +129,24 @@ , LGPL unversioned, LGPL (version [2, 1]), LGPL (version [3]) , AGPL unversioned, AGPL (version [3]) , BSD2, BSD3, MIT, ISC- , MPL (Version [2, 0] [])+ , MPL (mkVersion [2, 0]) , Apache unversioned, Apache (version [2, 0]) , PublicDomain, AllRightsReserved, OtherLicense] where unversioned = Nothing- version v = Just (Version v [])+ version = Just . mkVersion instance Text License where- disp (GPL version) = Disp.text "GPL" <> dispOptVersion version- disp (LGPL version) = Disp.text "LGPL" <> dispOptVersion version- disp (AGPL version) = Disp.text "AGPL" <> dispOptVersion version- disp (MPL version) = Disp.text "MPL" <> dispVersion version- disp (Apache version) = Disp.text "Apache" <> dispOptVersion version+ disp (GPL version) = Disp.text "GPL" <<>> dispOptVersion version+ disp (LGPL version) = Disp.text "LGPL" <<>> dispOptVersion version+ disp (AGPL version) = Disp.text "AGPL" <<>> dispOptVersion version+ disp (MPL version) = Disp.text "MPL" <<>> dispVersion version+ disp (Apache version) = Disp.text "Apache" <<>> dispOptVersion version disp (UnknownLicense other) = Disp.text other disp other = Disp.text (show other) parse = do- name <- Parse.munch1 (\c -> Char.isAlphaNum c && c /= '-')+ name <- Parse.munch1 (\c -> isAlphaNum c && c /= '-') version <- Parse.option Nothing (Parse.char '-' >> fmap Just parse) return $! case (name, version :: Maybe Version) of ("GPL", _ ) -> GPL version@@ -174,4 +170,4 @@ dispOptVersion (Just v) = dispVersion v dispVersion :: Version -> Disp.Doc-dispVersion v = Disp.char '-' <> disp v+dispVersion v = Disp.char '-' <<>> disp v
Distribution/Make.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Make@@ -56,10 +59,13 @@ module Distribution.Make ( module Distribution.Package,- License(..), Version(..),+ License(..), Version, defaultMain, defaultMainArgs, defaultMainNoRead ) where +import Prelude ()+import Distribution.Compat.Prelude+ -- local import Distribution.Compat.Exception import Distribution.Package@@ -112,7 +118,7 @@ printVersion = putStrLn $ "Cabal library version " ++ display cabalVersion - progs = defaultProgramConfiguration+ progs = defaultProgramDb commands = [configureCommand progs `commandAddAction` configureAction ,buildCommand progs `commandAddAction` buildAction
Distribution/ModuleName.hs view
@@ -13,61 +13,62 @@ -- Data type for Haskell module names. module Distribution.ModuleName (- ModuleName,+ ModuleName (..), -- TODO: move Parsec instance here, don't export constructor fromString,+ fromComponents, components, toFilePath, main, simple,+ -- * Internal+ validModuleComponent, ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Utils.ShortText import Distribution.Text-import Distribution.Compat.Binary import qualified Distribution.Compat.ReadP as Parse -import qualified Data.Char as Char- ( isAlphaNum, isUpper )-import Data.Data (Data)-import Data.Typeable (Typeable) import qualified Text.PrettyPrint as Disp-import Data.List- ( intercalate, intersperse )-import GHC.Generics (Generic)-import System.FilePath- ( pathSeparator )+import System.FilePath ( pathSeparator ) -- | A valid Haskell module name. ---newtype ModuleName = ModuleName [String]+newtype ModuleName = ModuleName ShortTextLst deriving (Eq, Generic, Ord, Read, Show, Typeable, Data) instance Binary ModuleName +instance NFData ModuleName where+ rnf (ModuleName ms) = rnf ms+ instance Text ModuleName where disp (ModuleName ms) =- Disp.hcat (intersperse (Disp.char '.') (map Disp.text ms))+ Disp.hcat (intersperse (Disp.char '.') (map Disp.text $ stlToStrings ms)) parse = do ms <- Parse.sepBy1 component (Parse.char '.')- return (ModuleName ms)+ return (ModuleName $ stlFromStrings ms) where component = do- c <- Parse.satisfy Char.isUpper+ c <- Parse.satisfy isUpper cs <- Parse.munch validModuleChar return (c:cs) validModuleChar :: Char -> Bool-validModuleChar c = Char.isAlphaNum c || c == '_' || c == '\''+validModuleChar c = isAlphaNum c || c == '_' || c == '\'' validModuleComponent :: String -> Bool validModuleComponent [] = False-validModuleComponent (c:cs) = Char.isUpper c+validModuleComponent (c:cs) = isUpper c && all validModuleChar cs {-# DEPRECATED simple "use ModuleName.fromString instead" #-} simple :: String -> ModuleName-simple str = ModuleName [str]+simple str = ModuleName (stlFromStrings [str]) -- | Construct a 'ModuleName' from a valid module name 'String'. --@@ -75,30 +76,35 @@ -- an error if it is used with a string that is not a valid module name. If you -- are parsing user input then use 'Distribution.Text.simpleParse' instead. ---fromString :: String -> ModuleName-fromString string- | all validModuleComponent components' = ModuleName components'- | otherwise = error badName+instance IsString ModuleName where+ fromString string = fromComponents (split string)+ where+ split cs = case break (=='.') cs of+ (chunk,[]) -> chunk : []+ (chunk,_:rest) -> chunk : split rest +-- | Construct a 'ModuleName' from valid module components, i.e. parts+-- separated by dots.+fromComponents :: [String] -> ModuleName+fromComponents components'+ | null components' = error zeroComponents+ | all validModuleComponent components' = ModuleName (stlFromStrings components')+ | otherwise = error badName where- components' = split string- badName = "ModuleName.fromString: invalid module name " ++ show string-- split cs = case break (=='.') cs of- (chunk,[]) -> chunk : []- (chunk,_:rest) -> chunk : split rest+ zeroComponents = "ModuleName.fromComponents: zero components"+ badName = "ModuleName.fromComponents: invalid components " ++ show components' -- | The module name @Main@. -- main :: ModuleName-main = ModuleName ["Main"]+main = ModuleName (stlFromStrings ["Main"]) -- | The individual components of a hierarchical module name. For example -- -- > components (fromString "A.B.C") = ["A", "B", "C"] -- components :: ModuleName -> [String]-components (ModuleName ms) = ms+components (ModuleName ms) = stlToStrings ms -- | Convert a module name to a file path, but without any file extension. -- For example:@@ -107,3 +113,39 @@ -- toFilePath :: ModuleName -> FilePath toFilePath = intercalate [pathSeparator] . components++----------------------------------------------------------------------------+-- internal helper++-- | Strict/unpacked representation of @[ShortText]@+data ShortTextLst = STLNil+ | STLCons !ShortText !ShortTextLst+ deriving (Eq, Generic, Ord, Typeable, Data)++instance NFData ShortTextLst where+ rnf = flip seq ()++instance Show ShortTextLst where+ showsPrec p = showsPrec p . stlToList+++instance Read ShortTextLst where+ readsPrec p = map (first stlFromList) . readsPrec p++instance Binary ShortTextLst where+ put = put . stlToList+ get = stlFromList <$> get++stlToList :: ShortTextLst -> [ShortText]+stlToList STLNil = []+stlToList (STLCons st next) = st : stlToList next++stlToStrings :: ShortTextLst -> [String]+stlToStrings = map fromShortText . stlToList++stlFromList :: [ShortText] -> ShortTextLst+stlFromList [] = STLNil+stlFromList (x:xs) = STLCons x (stlFromList xs)++stlFromStrings :: [String] -> ShortTextLst+stlFromStrings = stlFromList . map toShortText
Distribution/Package.hs view
@@ -16,179 +16,38 @@ -- a 'Dependency' data type. A dependency is a package name and a version -- range, like @\"foo >= 1.2 && < 2\"@. -module Distribution.Package (- -- * Package ids- PackageName(..),- PackageIdentifier(..),- PackageId,-- -- * Package keys/installed package IDs (used for linker symbols)- ComponentId(..),- UnitId(..),- mkUnitId,- mkLegacyUnitId,- getHSLibraryName,- InstalledPackageId, -- backwards compat-- -- * ABI hash- AbiHash(..),-- -- * Package source dependencies- Dependency(..),- thisPackageVersion,- notThisPackageVersion,- simplifyDependency,-- -- * Package classes- Package(..), packageName, packageVersion,- HasUnitId(..),- installedPackageId,- PackageInstalled(..),+module Distribution.Package+ ( module Distribution.Types.AbiHash+ , module Distribution.Types.ComponentId+ , module Distribution.Types.PackageId+ , module Distribution.Types.UnitId+ , module Distribution.Types.Module+ , module Distribution.Types.PackageName+ , module Distribution.Types.PkgconfigName+ , module Distribution.Types.Dependency+ , Package(..), packageName, packageVersion+ , HasMungedPackageId(..), mungedName', mungedVersion'+ , HasUnitId(..)+ , installedPackageId+ , PackageInstalled(..) ) where -import Distribution.Version- ( Version(..), VersionRange, anyVersion, thisVersion- , notThisVersion, simplifyVersionRange )--import qualified Distribution.Compat.ReadP as Parse-import qualified Text.PrettyPrint as Disp-import Distribution.Compat.ReadP-import Distribution.Compat.Binary-import Distribution.Text--import Control.DeepSeq (NFData(..))-import qualified Data.Char as Char- ( isDigit, isAlphaNum, )-import Data.Data ( Data )-import Data.List ( intercalate )-import Data.Typeable ( Typeable )-import GHC.Generics (Generic)-import Text.PrettyPrint ((<>), (<+>), text)--newtype PackageName = PackageName { unPackageName :: String }- deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)--instance Binary PackageName--instance Text PackageName where- disp (PackageName n) = Disp.text n- parse = do- ns <- Parse.sepBy1 component (Parse.char '-')- return (PackageName (intercalate "-" ns))- where- component = do- cs <- Parse.munch1 Char.isAlphaNum- if all Char.isDigit cs then Parse.pfail else return cs- -- each component must contain an alphabetic character, to avoid- -- ambiguity in identifiers like foo-1 (the 1 is the version number).--instance NFData PackageName where- rnf (PackageName pkg) = rnf pkg---- | Type alias so we can use the shorter name PackageId.-type PackageId = PackageIdentifier---- | The name and version of a package.-data PackageIdentifier- = PackageIdentifier {- pkgName :: PackageName, -- ^The name of this package, eg. foo- pkgVersion :: Version -- ^the version of this package, eg 1.2- }- deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)--instance Binary PackageIdentifier--instance Text PackageIdentifier where- disp (PackageIdentifier n v) = case v of- Version [] _ -> disp n -- if no version, don't show version.- _ -> disp n <> Disp.char '-' <> disp v-- parse = do- n <- parse- v <- (Parse.char '-' >> parse) <++ return (Version [] [])- return (PackageIdentifier n v)--instance NFData PackageIdentifier where- rnf (PackageIdentifier name version) = rnf name `seq` rnf version---- --------------------------------------------------------------- * Component Source Hash--- ---------------------------------------------------------------- | A 'ComponentId' uniquely identifies the transitive source--- code closure of a component. For non-Backpack components, it also--- serves as the basis for install paths, symbols, etc.----data ComponentId- = ComponentId String- deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)--{-# DEPRECATED InstalledPackageId "Use UnitId instead" #-}-type InstalledPackageId = UnitId--instance Binary ComponentId--instance Text ComponentId where- disp (ComponentId str) = text str-- parse = ComponentId `fmap` Parse.munch1 abi_char- where abi_char c = Char.isAlphaNum c || c `elem` "-_."--instance NFData ComponentId where- rnf (ComponentId pk) = rnf pk---- | Returns library name prefixed with HS, suitable for filenames-getHSLibraryName :: UnitId -> String-getHSLibraryName (SimpleUnitId (ComponentId s)) = "HS" ++ s---- | For now, there is no distinction between component IDs--- and unit IDs in Cabal.-newtype UnitId = SimpleUnitId ComponentId- deriving (Generic, Read, Show, Eq, Ord, Typeable, Data, Binary, Text, NFData)---- | Makes a simple-style UnitId from a string.-mkUnitId :: String -> UnitId-mkUnitId = SimpleUnitId . ComponentId---- | Make an old-style UnitId from a package identifier-mkLegacyUnitId :: PackageId -> UnitId-mkLegacyUnitId = SimpleUnitId . ComponentId . display---- --------------------------------------------------------------- * Package source dependencies--- ---------------------------------------------------------------- | Describes a dependency on a source package (API)----data Dependency = Dependency PackageName VersionRange- deriving (Generic, Read, Show, Eq, Typeable, Data)--instance Binary Dependency--instance Text Dependency where- disp (Dependency name ver) =- disp name <+> disp ver-- parse = do name <- parse- Parse.skipSpaces- ver <- parse <++ return anyVersion- Parse.skipSpaces- return (Dependency name ver)--thisPackageVersion :: PackageIdentifier -> Dependency-thisPackageVersion (PackageIdentifier n v) =- Dependency n (thisVersion v)+import Prelude ()+import Distribution.Compat.Prelude -notThisPackageVersion :: PackageIdentifier -> Dependency-notThisPackageVersion (PackageIdentifier n v) =- Dependency n (notThisVersion v)+import Distribution.Version+ ( Version ) --- | Simplify the 'VersionRange' expression in a 'Dependency'.--- See 'simplifyVersionRange'.----simplifyDependency :: Dependency -> Dependency-simplifyDependency (Dependency name range) =- Dependency name (simplifyVersionRange range)+import Distribution.Types.AbiHash+import Distribution.Types.ComponentId+import Distribution.Types.Dependency+import Distribution.Types.MungedPackageId+import Distribution.Types.PackageId+import Distribution.Types.UnitId+import Distribution.Types.Module+import Distribution.Types.MungedPackageName+import Distribution.Types.PackageName+import Distribution.Types.PkgconfigName -- | Class of things that have a 'PackageIdentifier' --@@ -201,18 +60,30 @@ -- many installed instances of the same source package. -- class Package pkg where- packageId :: pkg -> PackageIdentifier+ packageId :: pkg -> PackageIdentifier +mungedName' :: HasMungedPackageId pkg => pkg -> MungedPackageName+mungedName' = mungedName . mungedId++mungedVersion' :: HasMungedPackageId munged => munged -> Version+mungedVersion' = mungedVersion . mungedId++class HasMungedPackageId pkg where+ mungedId :: pkg -> MungedPackageId++instance Package PackageIdentifier where+ packageId = id+ packageName :: Package pkg => pkg -> PackageName packageName = pkgName . packageId packageVersion :: Package pkg => pkg -> Version packageVersion = pkgVersion . packageId -instance Package PackageIdentifier where- packageId = id+instance HasMungedPackageId MungedPackageId where+ mungedId = id --- | Packages that have an installed package ID+-- | Packages that have an installed unit ID class Package pkg => HasUnitId pkg where installedUnitId :: pkg -> UnitId @@ -229,14 +100,3 @@ -- Installed packages have exact dependencies 'installedDepends'. class (HasUnitId pkg) => PackageInstalled pkg where installedDepends :: pkg -> [UnitId]---- -------------------------------------------------------------------------------- ABI hash--newtype AbiHash = AbiHash String- deriving (Eq, Show, Read, Generic)-instance Binary AbiHash--instance Text AbiHash where- disp (AbiHash abi) = Disp.text abi- parse = fmap AbiHash (Parse.munch Char.isAlphaNum)
Distribution/PackageDescription.hs view
@@ -10,1280 +10,125 @@ -- Maintainer : cabal-devel@haskell.org -- Portability : portable ----- This defines the data structure for the @.cabal@ file format. There are--- several parts to this structure. It has top level info and then 'Library',--- 'Executable', 'TestSuite', and 'Benchmark' sections each of which have--- associated 'BuildInfo' data that's used to build the library, exe, test, or--- benchmark. To further complicate things there is both a 'PackageDescription'--- and a 'GenericPackageDescription'. This distinction relates to cabal--- configurations. When we initially read a @.cabal@ file we get a--- 'GenericPackageDescription' which has all the conditional sections.--- Before actually building a package we have to decide--- on each conditional. Once we've done that we get a 'PackageDescription'.--- It was done this way initially to avoid breaking too much stuff when the--- feature was introduced. It could probably do with being rationalised at some--- point to make it simpler.--module Distribution.PackageDescription (- -- * Package descriptions- PackageDescription(..),- emptyPackageDescription,- specVersion,- descCabalVersion,- BuildType(..),- knownBuildTypes,-- -- ** Renaming- ModuleRenaming(..),- defaultRenaming,- lookupRenaming,-- -- ** Libraries- Library(..),- ModuleReexport(..),- emptyLibrary,- withLib,- hasLibs,- libModules,-- -- ** Executables- Executable(..),- emptyExecutable,- withExe,- hasExes,- exeModules,-- -- * Tests- TestSuite(..),- TestSuiteInterface(..),- TestType(..),- testType,- knownTestTypes,- emptyTestSuite,- hasTests,- withTest,- testModules,- enabledTests,-- -- * Benchmarks- Benchmark(..),- BenchmarkInterface(..),- BenchmarkType(..),- benchmarkType,- knownBenchmarkTypes,- emptyBenchmark,- hasBenchmarks,- withBenchmark,- benchmarkModules,- enabledBenchmarks,-- -- * Build information- BuildInfo(..),- emptyBuildInfo,- allBuildInfo,- allLanguages,- allExtensions,- usedExtensions,- hcOptions,- hcProfOptions,- hcSharedOptions,-- -- ** Supplementary build information- HookedBuildInfo,- emptyHookedBuildInfo,- updatePackageDescription,-- -- * package configuration- GenericPackageDescription(..),- Flag(..), FlagName(..), FlagAssignment,- CondTree(..), ConfVar(..), Condition(..),- cNot, cAnd, cOr,-- -- * Source repositories- SourceRepo(..),- RepoKind(..),- RepoType(..),- knownRepoTypes,-- -- * Custom setup build information- SetupBuildInfo(..),- ) where--import Distribution.Compat.Binary-import qualified Distribution.Compat.Semigroup as Semi ((<>))-import Distribution.Compat.Semigroup as Semi (Monoid(..), Semigroup, gmempty)-import qualified Distribution.Compat.ReadP as Parse-import Distribution.Compat.ReadP ((<++))-import Distribution.Package-import Distribution.ModuleName-import Distribution.Version-import Distribution.License-import Distribution.Compiler-import Distribution.System-import Distribution.Text-import Language.Haskell.Extension--import Data.Data (Data)-import Data.Foldable (traverse_)-import Data.List (nub, intercalate)-import Data.Maybe (fromMaybe, maybeToList)-import Data.Foldable as Fold (Foldable(foldMap))-import Data.Traversable as Trav (Traversable(traverse))-import Data.Typeable ( Typeable )-import Control.Applicative as AP (Alternative(..), Applicative(..))-import Control.Monad (MonadPlus(mplus,mzero), ap)-import GHC.Generics (Generic)-import Text.PrettyPrint as Disp-import qualified Data.Char as Char (isAlphaNum, isDigit, toLower)-import qualified Data.Map as Map-import Data.Map (Map)---- -------------------------------------------------------------------------------- The PackageDescription type---- | This data type is the internal representation of the file @pkg.cabal@.--- It contains two kinds of information about the package: information--- which is needed for all packages, such as the package name and version, and--- information which is needed for the simple build system only, such as--- the compiler options and library name.----data PackageDescription- = PackageDescription {- -- the following are required by all packages:- package :: PackageIdentifier,- license :: License,- licenseFiles :: [FilePath],- copyright :: String,- maintainer :: String,- author :: String,- stability :: String,- testedWith :: [(CompilerFlavor,VersionRange)],- homepage :: String,- pkgUrl :: String,- bugReports :: String,- sourceRepos :: [SourceRepo],- synopsis :: String, -- ^A one-line summary of this package- description :: String, -- ^A more verbose description of this package- category :: String,- customFieldsPD :: [(String,String)], -- ^Custom fields starting- -- with x-, stored in a- -- simple assoc-list.-- -- | YOU PROBABLY DON'T WANT TO USE THIS FIELD. This field is- -- special! Depending on how far along processing the- -- PackageDescription we are, the contents of this field are- -- either nonsense, or the collected dependencies of *all* the- -- components in this package. buildDepends is initialized by- -- 'finalizePackageDescription' and 'flattenPackageDescription';- -- prior to that, dependency info is stored in the 'CondTree'- -- built around a 'GenericPackageDescription'. When this- -- resolution is done, dependency info is written to the inner- -- 'BuildInfo' and this field. This is all horrible, and #2066- -- tracks progress to get rid of this field.- buildDepends :: [Dependency],- -- | The version of the Cabal spec that this package description uses.- -- For historical reasons this is specified with a version range but- -- only ranges of the form @>= v@ make sense. We are in the process of- -- transitioning to specifying just a single version, not a range.- specVersionRaw :: Either Version VersionRange,- buildType :: Maybe BuildType,- setupBuildInfo :: Maybe SetupBuildInfo,- -- components- library :: Maybe Library,- executables :: [Executable],- testSuites :: [TestSuite],- benchmarks :: [Benchmark],- dataFiles :: [FilePath],- dataDir :: FilePath,- extraSrcFiles :: [FilePath],- extraTmpFiles :: [FilePath],- extraDocFiles :: [FilePath]- }- deriving (Generic, Show, Read, Eq, Typeable, Data)--instance Binary PackageDescription--instance Package PackageDescription where- packageId = package---- | The version of the Cabal spec that this package should be interpreted--- against.------ Historically we used a version range but we are switching to using a single--- version. Currently we accept either. This function converts into a single--- version by ignoring upper bounds in the version range.----specVersion :: PackageDescription -> Version-specVersion pkg = case specVersionRaw pkg of- Left version -> version- Right versionRange -> case asVersionIntervals versionRange of- [] -> Version [0] []- ((LowerBound version _, _):_) -> version---- | The range of versions of the Cabal tools that this package is intended to--- work with.------ This function is deprecated and should not be used for new purposes, only to--- support old packages that rely on the old interpretation.----descCabalVersion :: PackageDescription -> VersionRange-descCabalVersion pkg = case specVersionRaw pkg of- Left version -> orLaterVersion version- Right versionRange -> versionRange-{-# DEPRECATED descCabalVersion "Use specVersion instead" #-}--emptyPackageDescription :: PackageDescription-emptyPackageDescription- = PackageDescription {- package = PackageIdentifier (PackageName "")- (Version [] []),- license = UnspecifiedLicense,- licenseFiles = [],- specVersionRaw = Right anyVersion,- buildType = Nothing,- copyright = "",- maintainer = "",- author = "",- stability = "",- testedWith = [],- buildDepends = [],- homepage = "",- pkgUrl = "",- bugReports = "",- sourceRepos = [],- synopsis = "",- description = "",- category = "",- customFieldsPD = [],- setupBuildInfo = Nothing,- library = Nothing,- executables = [],- testSuites = [],- benchmarks = [],- dataFiles = [],- dataDir = "",- extraSrcFiles = [],- extraTmpFiles = [],- extraDocFiles = []- }---- | The type of build system used by this package.-data BuildType- = Simple -- ^ calls @Distribution.Simple.defaultMain@- | Configure -- ^ calls @Distribution.Simple.defaultMainWithHooks defaultUserHooks@,- -- which invokes @configure@ to generate additional build- -- information used by later phases.- | Make -- ^ calls @Distribution.Make.defaultMain@- | Custom -- ^ uses user-supplied @Setup.hs@ or @Setup.lhs@ (default)- | UnknownBuildType String- -- ^ a package that uses an unknown build type cannot actually- -- be built. Doing it this way rather than just giving a- -- parse error means we get better error messages and allows- -- you to inspect the rest of the package description.- deriving (Generic, Show, Read, Eq, Typeable, Data)--instance Binary BuildType--knownBuildTypes :: [BuildType]-knownBuildTypes = [Simple, Configure, Make, Custom]--instance Text BuildType where- disp (UnknownBuildType other) = Disp.text other- disp other = Disp.text (show other)-- parse = do- name <- Parse.munch1 Char.isAlphaNum- return $ case name of- "Simple" -> Simple- "Configure" -> Configure- "Custom" -> Custom- "Make" -> Make- _ -> UnknownBuildType name---- ------------------------------------------------------------------------------ The SetupBuildInfo type---- One can see this as a very cut-down version of BuildInfo below.--- To keep things simple for tools that compile Setup.hs we limit the--- options authors can specify to just Haskell package dependencies.--data SetupBuildInfo = SetupBuildInfo {- setupDepends :: [Dependency],- defaultSetupDepends :: Bool- -- ^ Is this a default 'custom-setup' section added by the cabal-install- -- code (as opposed to user-provided)? This field is only used- -- internally, and doesn't correspond to anything in the .cabal- -- file. See #3199.- }- deriving (Generic, Show, Eq, Read, Typeable, Data)--instance Binary SetupBuildInfo--instance Semi.Monoid SetupBuildInfo where- mempty = SetupBuildInfo [] False- mappend = (Semi.<>)--instance Semigroup SetupBuildInfo where- a <> b = SetupBuildInfo (setupDepends a Semi.<> setupDepends b)- (defaultSetupDepends a || defaultSetupDepends b)---- ------------------------------------------------------------------------------ Module renaming---- | Renaming applied to the modules provided by a package.--- The boolean indicates whether or not to also include all of the--- original names of modules. Thus, @ModuleRenaming False []@ is--- "don't expose any modules, and @ModuleRenaming True [("Data.Bool", "Bool")]@--- is, "expose all modules, but also expose @Data.Bool@ as @Bool@".----data ModuleRenaming = ModuleRenaming Bool [(ModuleName, ModuleName)]- deriving (Show, Read, Eq, Ord, Typeable, Data, Generic)--defaultRenaming :: ModuleRenaming-defaultRenaming = ModuleRenaming True []--lookupRenaming :: Package pkg => pkg -> Map PackageName ModuleRenaming -> ModuleRenaming-lookupRenaming = Map.findWithDefault defaultRenaming . packageName--instance Binary ModuleRenaming where--instance Monoid ModuleRenaming where- mempty = ModuleRenaming False []- mappend = (Semi.<>)--instance Semigroup ModuleRenaming where- ModuleRenaming b rns <> ModuleRenaming b' rns'- = ModuleRenaming (b || b') (rns ++ rns') -- ToDo: dedupe?---- NB: parentheses are mandatory, because later we may extend this syntax--- to allow "hiding (A, B)" or other modifier words.-instance Text ModuleRenaming where- disp (ModuleRenaming True []) = Disp.empty- disp (ModuleRenaming b vs) = (if b then text "with" else Disp.empty) <+> dispRns- where dispRns = Disp.parens- (Disp.hsep- (Disp.punctuate Disp.comma (map dispEntry vs)))- dispEntry (orig, new)- | orig == new = disp orig- | otherwise = disp orig <+> text "as" <+> disp new-- parse = do Parse.string "with" >> Parse.skipSpaces- fmap (ModuleRenaming True) parseRns- <++ fmap (ModuleRenaming False) parseRns- <++ return (ModuleRenaming True [])- where parseRns = do- rns <- Parse.between (Parse.char '(') (Parse.char ')') parseList- Parse.skipSpaces- return rns- parseList =- Parse.sepBy parseEntry (Parse.char ',' >> Parse.skipSpaces)- parseEntry :: Parse.ReadP r (ModuleName, ModuleName)- parseEntry = do- orig <- parse- Parse.skipSpaces- (do _ <- Parse.string "as"- Parse.skipSpaces- new <- parse- Parse.skipSpaces- return (orig, new)- <++- return (orig, orig))---- ------------------------------------------------------------------------------ The Library type--data Library = Library {- exposedModules :: [ModuleName],- reexportedModules :: [ModuleReexport],- requiredSignatures:: [ModuleName], -- ^ What sigs need implementations?- exposedSignatures:: [ModuleName], -- ^ What sigs are visible to users?- libExposed :: Bool, -- ^ Is the lib to be exposed by default?- libBuildInfo :: BuildInfo- }- deriving (Generic, Show, Eq, Read, Typeable, Data)--instance Binary Library--instance Monoid Library where- mempty = Library {- exposedModules = mempty,- reexportedModules = mempty,- requiredSignatures = mempty,- exposedSignatures = mempty,- libExposed = True,- libBuildInfo = mempty- }- mappend = (Semi.<>)--instance Semigroup Library where- a <> b = Library {- exposedModules = combine exposedModules,- reexportedModules = combine reexportedModules,- requiredSignatures = combine requiredSignatures,- exposedSignatures = combine exposedSignatures,- libExposed = libExposed a && libExposed b, -- so False propagates- libBuildInfo = combine libBuildInfo- }- where combine field = field a `mappend` field b--emptyLibrary :: Library-emptyLibrary = mempty---- |does this package have any libraries?-hasLibs :: PackageDescription -> Bool-hasLibs p = maybe False (buildable . libBuildInfo) (library p)---- |'Maybe' version of 'hasLibs'-maybeHasLibs :: PackageDescription -> Maybe Library-maybeHasLibs p =- library p >>= \lib -> if buildable (libBuildInfo lib)- then Just lib- else Nothing---- |If the package description has a library section, call the given--- function with the library build info as argument.-withLib :: PackageDescription -> (Library -> IO ()) -> IO ()-withLib pkg_descr f =- traverse_ f (maybeHasLibs pkg_descr)---- | Get all the module names from the library (exposed and internal modules)--- which need to be compiled. (This does not include reexports, which--- do not need to be compiled.)-libModules :: Library -> [ModuleName]-libModules lib = exposedModules lib- ++ otherModules (libBuildInfo lib)- ++ exposedSignatures lib- ++ requiredSignatures lib---- -------------------------------------------------------------------------------- Module re-exports--data ModuleReexport = ModuleReexport {- moduleReexportOriginalPackage :: Maybe PackageName,- moduleReexportOriginalName :: ModuleName,- moduleReexportName :: ModuleName- }- deriving (Eq, Generic, Read, Show, Typeable, Data)--instance Binary ModuleReexport--instance Text ModuleReexport where- disp (ModuleReexport mpkgname origname newname) =- maybe Disp.empty (\pkgname -> disp pkgname <> Disp.char ':') mpkgname- <> disp origname- <+> if newname == origname- then Disp.empty- else Disp.text "as" <+> disp newname-- parse = do- mpkgname <- Parse.option Nothing $ do- pkgname <- parse- _ <- Parse.char ':'- return (Just pkgname)- origname <- parse- newname <- Parse.option origname $ do- Parse.skipSpaces- _ <- Parse.string "as"- Parse.skipSpaces- parse- return (ModuleReexport mpkgname origname newname)---- ------------------------------------------------------------------------------ The Executable type--data Executable = Executable {- exeName :: String,- modulePath :: FilePath,- buildInfo :: BuildInfo- }- deriving (Generic, Show, Read, Eq, Typeable, Data)--instance Binary Executable--instance Monoid Executable where- mempty = gmempty- mappend = (Semi.<>)--instance Semigroup Executable where- a <> b = Executable{- exeName = combine' exeName,- modulePath = combine modulePath,- buildInfo = combine buildInfo- }- where combine field = field a `mappend` field b- combine' field = case (field a, field b) of- ("","") -> ""- ("", x) -> x- (x, "") -> x- (x, y) -> error $ "Ambiguous values for executable field: '"- ++ x ++ "' and '" ++ y ++ "'"--emptyExecutable :: Executable-emptyExecutable = mempty---- |does this package have any executables?-hasExes :: PackageDescription -> Bool-hasExes p = any (buildable . buildInfo) (executables p)---- | Perform the action on each buildable 'Executable' in the package--- description.-withExe :: PackageDescription -> (Executable -> IO ()) -> IO ()-withExe pkg_descr f =- sequence_ [f exe | exe <- executables pkg_descr, buildable (buildInfo exe)]---- | Get all the module names from an exe-exeModules :: Executable -> [ModuleName]-exeModules exe = otherModules (buildInfo exe)---- ------------------------------------------------------------------------------ The TestSuite type---- | A \"test-suite\" stanza in a cabal file.----data TestSuite = TestSuite {- testName :: String,- testInterface :: TestSuiteInterface,- testBuildInfo :: BuildInfo,- testEnabled :: Bool- -- TODO: By having a 'testEnabled' field in the PackageDescription, we- -- are mixing build status information (i.e., arguments to 'configure')- -- with static package description information. This is undesirable, but- -- a better solution is waiting on the next overhaul to the- -- GenericPackageDescription -> PackageDescription resolution process.- }- deriving (Generic, Show, Read, Eq, Typeable, Data)--instance Binary TestSuite---- | The test suite interfaces that are currently defined. Each test suite must--- specify which interface it supports.------ More interfaces may be defined in future, either new revisions or totally--- new interfaces.----data TestSuiteInterface =-- -- | Test interface \"exitcode-stdio-1.0\". The test-suite takes the form- -- of an executable. It returns a zero exit code for success, non-zero for- -- failure. The stdout and stderr channels may be logged. It takes no- -- command line parameters and nothing on stdin.- --- TestSuiteExeV10 Version FilePath-- -- | Test interface \"detailed-0.9\". The test-suite takes the form of a- -- library containing a designated module that exports \"tests :: [Test]\".- --- | TestSuiteLibV09 Version ModuleName-- -- | A test suite that does not conform to one of the above interfaces for- -- the given reason (e.g. unknown test type).- --- | TestSuiteUnsupported TestType- deriving (Eq, Generic, Read, Show, Typeable, Data)--instance Binary TestSuiteInterface--instance Monoid TestSuite where- mempty = TestSuite {- testName = mempty,- testInterface = mempty,- testBuildInfo = mempty,- testEnabled = False- }- mappend = (Semi.<>)--instance Semigroup TestSuite where- a <> b = TestSuite {- testName = combine' testName,- testInterface = combine testInterface,- testBuildInfo = combine testBuildInfo,- testEnabled = testEnabled a || testEnabled b- }- where combine field = field a `mappend` field b- combine' f = case (f a, f b) of- ("", x) -> x- (x, "") -> x- (x, y) -> error "Ambiguous values for test field: '"- ++ x ++ "' and '" ++ y ++ "'"--instance Monoid TestSuiteInterface where- mempty = TestSuiteUnsupported (TestTypeUnknown mempty (Version [] []))- mappend = (Semi.<>)--instance Semigroup TestSuiteInterface where- a <> (TestSuiteUnsupported _) = a- _ <> b = b--emptyTestSuite :: TestSuite-emptyTestSuite = mempty---- | Does this package have any test suites?-hasTests :: PackageDescription -> Bool-hasTests = any (buildable . testBuildInfo) . testSuites---- | Get all the enabled test suites from a package.-enabledTests :: PackageDescription -> [TestSuite]-enabledTests = filter testEnabled . testSuites---- | Perform an action on each buildable 'TestSuite' in a package.-withTest :: PackageDescription -> (TestSuite -> IO ()) -> IO ()-withTest pkg_descr f =- mapM_ f $ filter (buildable . testBuildInfo) $ enabledTests pkg_descr---- | Get all the module names from a test suite.-testModules :: TestSuite -> [ModuleName]-testModules test = (case testInterface test of- TestSuiteLibV09 _ m -> [m]- _ -> [])- ++ otherModules (testBuildInfo test)---- | The \"test-type\" field in the test suite stanza.----data TestType = TestTypeExe Version -- ^ \"type: exitcode-stdio-x.y\"- | TestTypeLib Version -- ^ \"type: detailed-x.y\"- | TestTypeUnknown String Version -- ^ Some unknown test type e.g. \"type: foo\"- deriving (Generic, Show, Read, Eq, Typeable, Data)--instance Binary TestType--knownTestTypes :: [TestType]-knownTestTypes = [ TestTypeExe (Version [1,0] [])- , TestTypeLib (Version [0,9] []) ]--stdParse :: Text ver => (ver -> String -> res) -> Parse.ReadP r res-stdParse f = do- cs <- Parse.sepBy1 component (Parse.char '-')- _ <- Parse.char '-'- ver <- parse- let name = intercalate "-" cs- return $! f ver (lowercase name)- where- component = do- cs <- Parse.munch1 Char.isAlphaNum- if all Char.isDigit cs then Parse.pfail else return cs- -- each component must contain an alphabetic character, to avoid- -- ambiguity in identifiers like foo-1 (the 1 is the version number).--instance Text TestType where- disp (TestTypeExe ver) = text "exitcode-stdio-" <> disp ver- disp (TestTypeLib ver) = text "detailed-" <> disp ver- disp (TestTypeUnknown name ver) = text name <> char '-' <> disp ver-- parse = stdParse $ \ver name -> case name of- "exitcode-stdio" -> TestTypeExe ver- "detailed" -> TestTypeLib ver- _ -> TestTypeUnknown name ver---testType :: TestSuite -> TestType-testType test = case testInterface test of- TestSuiteExeV10 ver _ -> TestTypeExe ver- TestSuiteLibV09 ver _ -> TestTypeLib ver- TestSuiteUnsupported testtype -> testtype---- ------------------------------------------------------------------------------ The Benchmark type---- | A \"benchmark\" stanza in a cabal file.----data Benchmark = Benchmark {- benchmarkName :: String,- benchmarkInterface :: BenchmarkInterface,- benchmarkBuildInfo :: BuildInfo,- benchmarkEnabled :: Bool- -- TODO: See TODO for 'testEnabled'.- }- deriving (Generic, Show, Read, Eq, Typeable, Data)--instance Binary Benchmark---- | The benchmark interfaces that are currently defined. Each--- benchmark must specify which interface it supports.------ More interfaces may be defined in future, either new revisions or--- totally new interfaces.----data BenchmarkInterface =-- -- | Benchmark interface \"exitcode-stdio-1.0\". The benchmark- -- takes the form of an executable. It returns a zero exit code- -- for success, non-zero for failure. The stdout and stderr- -- channels may be logged. It takes no command line parameters- -- and nothing on stdin.- --- BenchmarkExeV10 Version FilePath-- -- | A benchmark that does not conform to one of the above- -- interfaces for the given reason (e.g. unknown benchmark type).- --- | BenchmarkUnsupported BenchmarkType- deriving (Eq, Generic, Read, Show, Typeable, Data)--instance Binary BenchmarkInterface--instance Monoid Benchmark where- mempty = Benchmark {- benchmarkName = mempty,- benchmarkInterface = mempty,- benchmarkBuildInfo = mempty,- benchmarkEnabled = False- }- mappend = (Semi.<>)--instance Semigroup Benchmark where- a <> b = Benchmark {- benchmarkName = combine' benchmarkName,- benchmarkInterface = combine benchmarkInterface,- benchmarkBuildInfo = combine benchmarkBuildInfo,- benchmarkEnabled = benchmarkEnabled a || benchmarkEnabled b- }- where combine field = field a `mappend` field b- combine' f = case (f a, f b) of- ("", x) -> x- (x, "") -> x- (x, y) -> error "Ambiguous values for benchmark field: '"- ++ x ++ "' and '" ++ y ++ "'"--instance Monoid BenchmarkInterface where- mempty = BenchmarkUnsupported (BenchmarkTypeUnknown mempty (Version [] []))- mappend = (Semi.<>)--instance Semigroup BenchmarkInterface where- a <> (BenchmarkUnsupported _) = a- _ <> b = b--emptyBenchmark :: Benchmark-emptyBenchmark = mempty---- | Does this package have any benchmarks?-hasBenchmarks :: PackageDescription -> Bool-hasBenchmarks = any (buildable . benchmarkBuildInfo) . benchmarks---- | Get all the enabled benchmarks from a package.-enabledBenchmarks :: PackageDescription -> [Benchmark]-enabledBenchmarks = filter benchmarkEnabled . benchmarks---- | Perform an action on each buildable 'Benchmark' in a package.-withBenchmark :: PackageDescription -> (Benchmark -> IO ()) -> IO ()-withBenchmark pkg_descr f =- mapM_ f $ filter (buildable . benchmarkBuildInfo) $ enabledBenchmarks pkg_descr---- | Get all the module names from a benchmark.-benchmarkModules :: Benchmark -> [ModuleName]-benchmarkModules benchmark = otherModules (benchmarkBuildInfo benchmark)---- | The \"benchmark-type\" field in the benchmark stanza.----data BenchmarkType = BenchmarkTypeExe Version- -- ^ \"type: exitcode-stdio-x.y\"- | BenchmarkTypeUnknown String Version- -- ^ Some unknown benchmark type e.g. \"type: foo\"- deriving (Generic, Show, Read, Eq, Typeable, Data)--instance Binary BenchmarkType--knownBenchmarkTypes :: [BenchmarkType]-knownBenchmarkTypes = [ BenchmarkTypeExe (Version [1,0] []) ]--instance Text BenchmarkType where- disp (BenchmarkTypeExe ver) = text "exitcode-stdio-" <> disp ver- disp (BenchmarkTypeUnknown name ver) = text name <> char '-' <> disp ver-- parse = stdParse $ \ver name -> case name of- "exitcode-stdio" -> BenchmarkTypeExe ver- _ -> BenchmarkTypeUnknown name ver---benchmarkType :: Benchmark -> BenchmarkType-benchmarkType benchmark = case benchmarkInterface benchmark of- BenchmarkExeV10 ver _ -> BenchmarkTypeExe ver- BenchmarkUnsupported benchmarktype -> benchmarktype---- ------------------------------------------------------------------------------ The BuildInfo type---- Consider refactoring into executable and library versions.-data BuildInfo = BuildInfo {- buildable :: Bool, -- ^ component is buildable here- buildTools :: [Dependency], -- ^ tools needed to build this bit- cppOptions :: [String], -- ^ options for pre-processing Haskell code- ccOptions :: [String], -- ^ options for C compiler- ldOptions :: [String], -- ^ options for linker- pkgconfigDepends :: [Dependency], -- ^ pkg-config packages that are used- frameworks :: [String], -- ^support frameworks for Mac OS X- extraFrameworkDirs:: [String], -- ^ extra locations to find frameworks.- cSources :: [FilePath],- jsSources :: [FilePath],- hsSourceDirs :: [FilePath], -- ^ where to look for the Haskell module hierarchy- otherModules :: [ModuleName], -- ^ non-exposed or non-main modules-- defaultLanguage :: Maybe Language,-- ^ language used when not explicitly specified- otherLanguages :: [Language], -- ^ other languages used within the package- defaultExtensions :: [Extension], -- ^ language extensions used by all modules- otherExtensions :: [Extension], -- ^ other language extensions used within the package- oldExtensions :: [Extension], -- ^ the old extensions field, treated same as 'defaultExtensions'-- extraLibs :: [String], -- ^ what libraries to link with when compiling a program that uses your package- extraGHCiLibs :: [String], -- ^ if present, overrides extraLibs when package is loaded with GHCi.- extraLibDirs :: [String],- includeDirs :: [FilePath], -- ^directories to find .h files- includes :: [FilePath], -- ^ The .h files to be found in includeDirs- installIncludes :: [FilePath], -- ^ .h files to install with the package- options :: [(CompilerFlavor,[String])],- profOptions :: [(CompilerFlavor,[String])],- sharedOptions :: [(CompilerFlavor,[String])],- customFieldsBI :: [(String,String)], -- ^Custom fields starting- -- with x-, stored in a- -- simple assoc-list.- targetBuildDepends :: [Dependency], -- ^ Dependencies specific to a library or executable target- targetBuildRenaming :: Map PackageName ModuleRenaming- }- deriving (Generic, Show, Read, Eq, Typeable, Data)--instance Binary BuildInfo--instance Monoid BuildInfo where- mempty = BuildInfo {- buildable = True,- buildTools = [],- cppOptions = [],- ccOptions = [],- ldOptions = [],- pkgconfigDepends = [],- frameworks = [],- extraFrameworkDirs = [],- cSources = [],- jsSources = [],- hsSourceDirs = [],- otherModules = [],- defaultLanguage = Nothing,- otherLanguages = [],- defaultExtensions = [],- otherExtensions = [],- oldExtensions = [],- extraLibs = [],- extraGHCiLibs = [],- extraLibDirs = [],- includeDirs = [],- includes = [],- installIncludes = [],- options = [],- profOptions = [],- sharedOptions = [],- customFieldsBI = [],- targetBuildDepends = [],- targetBuildRenaming = Map.empty- }- mappend = (Semi.<>)--instance Semigroup BuildInfo where- a <> b = BuildInfo {- buildable = buildable a && buildable b,- buildTools = combine buildTools,- cppOptions = combine cppOptions,- ccOptions = combine ccOptions,- ldOptions = combine ldOptions,- pkgconfigDepends = combine pkgconfigDepends,- frameworks = combineNub frameworks,- extraFrameworkDirs = combineNub extraFrameworkDirs,- cSources = combineNub cSources,- jsSources = combineNub jsSources,- hsSourceDirs = combineNub hsSourceDirs,- otherModules = combineNub otherModules,- defaultLanguage = combineMby defaultLanguage,- otherLanguages = combineNub otherLanguages,- defaultExtensions = combineNub defaultExtensions,- otherExtensions = combineNub otherExtensions,- oldExtensions = combineNub oldExtensions,- extraLibs = combine extraLibs,- extraGHCiLibs = combine extraGHCiLibs,- extraLibDirs = combineNub extraLibDirs,- includeDirs = combineNub includeDirs,- includes = combineNub includes,- installIncludes = combineNub installIncludes,- options = combine options,- profOptions = combine profOptions,- sharedOptions = combine sharedOptions,- customFieldsBI = combine customFieldsBI,- targetBuildDepends = combineNub targetBuildDepends,- targetBuildRenaming = combineMap targetBuildRenaming- }- where- combine field = field a `mappend` field b- combineNub field = nub (combine field)- combineMby field = field b `mplus` field a- combineMap field = Map.unionWith mappend (field a) (field b)--emptyBuildInfo :: BuildInfo-emptyBuildInfo = mempty---- | The 'BuildInfo' for the library (if there is one and it's buildable), and--- all buildable executables, test suites and benchmarks. Useful for gathering--- dependencies.-allBuildInfo :: PackageDescription -> [BuildInfo]-allBuildInfo pkg_descr = [ bi | Just lib <- [library pkg_descr]- , let bi = libBuildInfo lib- , buildable bi ]- ++ [ bi | exe <- executables pkg_descr- , let bi = buildInfo exe- , buildable bi ]- ++ [ bi | tst <- testSuites pkg_descr- , let bi = testBuildInfo tst- , buildable bi- , testEnabled tst ]- ++ [ bi | tst <- benchmarks pkg_descr- , let bi = benchmarkBuildInfo tst- , buildable bi- , benchmarkEnabled tst ]- --FIXME: many of the places where this is used, we actually want to look at- -- unbuildable bits too, probably need separate functions---- | The 'Language's used by this component----allLanguages :: BuildInfo -> [Language]-allLanguages bi = maybeToList (defaultLanguage bi)- ++ otherLanguages bi---- | The 'Extension's that are used somewhere by this component----allExtensions :: BuildInfo -> [Extension]-allExtensions bi = usedExtensions bi- ++ otherExtensions bi---- | The 'Extensions' that are used by all modules in this component----usedExtensions :: BuildInfo -> [Extension]-usedExtensions bi = oldExtensions bi- ++ defaultExtensions bi--type HookedBuildInfo = (Maybe BuildInfo, [(String, BuildInfo)])--emptyHookedBuildInfo :: HookedBuildInfo-emptyHookedBuildInfo = (Nothing, [])---- |Select options for a particular Haskell compiler.-hcOptions :: CompilerFlavor -> BuildInfo -> [String]-hcOptions = lookupHcOptions options--hcProfOptions :: CompilerFlavor -> BuildInfo -> [String]-hcProfOptions = lookupHcOptions profOptions--hcSharedOptions :: CompilerFlavor -> BuildInfo -> [String]-hcSharedOptions = lookupHcOptions sharedOptions--lookupHcOptions :: (BuildInfo -> [(CompilerFlavor,[String])])- -> CompilerFlavor -> BuildInfo -> [String]-lookupHcOptions f hc bi = [ opt | (hc',opts) <- f bi- , hc' == hc- , opt <- opts ]---- --------------------------------------------------------------- * Source repos--- ---------------------------------------------------------------- | Information about the source revision control system for a package.------ When specifying a repo it is useful to know the meaning or intention of the--- information as doing so enables automation. There are two obvious common--- purposes: one is to find the repo for the latest development version, the--- other is to find the repo for this specific release. The 'ReopKind'--- specifies which one we mean (or another custom one).------ A package can specify one or the other kind or both. Most will specify just--- a head repo but some may want to specify a repo to reconstruct the sources--- for this package release.------ The required information is the 'RepoType' which tells us if it's using--- 'Darcs', 'Git' for example. The 'repoLocation' and other details are--- interpreted according to the repo type.----data SourceRepo = SourceRepo {- -- | The kind of repo. This field is required.- repoKind :: RepoKind,-- -- | The type of the source repository system for this repo, eg 'Darcs' or- -- 'Git'. This field is required.- repoType :: Maybe RepoType,-- -- | The location of the repository. For most 'RepoType's this is a URL.- -- This field is required.- repoLocation :: Maybe String,-- -- | 'CVS' can put multiple \"modules\" on one server and requires a- -- module name in addition to the location to identify a particular repo.- -- Logically this is part of the location but unfortunately has to be- -- specified separately. This field is required for the 'CVS' 'RepoType' and- -- should not be given otherwise.- repoModule :: Maybe String,-- -- | The name or identifier of the branch, if any. Many source control- -- systems have the notion of multiple branches in a repo that exist in the- -- same location. For example 'Git' and 'CVS' use this while systems like- -- 'Darcs' use different locations for different branches. This field is- -- optional but should be used if necessary to identify the sources,- -- especially for the 'RepoThis' repo kind.- repoBranch :: Maybe String,-- -- | The tag identify a particular state of the repository. This should be- -- given for the 'RepoThis' repo kind and not for 'RepoHead' kind.- --- repoTag :: Maybe String,-- -- | Some repositories contain multiple projects in different subdirectories- -- This field specifies the subdirectory where this packages sources can be- -- found, eg the subdirectory containing the @.cabal@ file. It is interpreted- -- relative to the root of the repository. This field is optional. If not- -- given the default is \".\" ie no subdirectory.- repoSubdir :: Maybe FilePath-}- deriving (Eq, Generic, Read, Show, Typeable, Data)--instance Binary SourceRepo---- | What this repo info is for, what it represents.----data RepoKind =- -- | The repository for the \"head\" or development version of the project.- -- This repo is where we should track the latest development activity or- -- the usual repo people should get to contribute patches.- RepoHead-- -- | The repository containing the sources for this exact package version- -- or release. For this kind of repo a tag should be given to give enough- -- information to re-create the exact sources.- | RepoThis-- | RepoKindUnknown String- deriving (Eq, Generic, Ord, Read, Show, Typeable, Data)--instance Binary RepoKind---- | An enumeration of common source control systems. The fields used in the--- 'SourceRepo' depend on the type of repo. The tools and methods used to--- obtain and track the repo depend on the repo type.----data RepoType = Darcs | Git | SVN | CVS- | Mercurial | GnuArch | Bazaar | Monotone- | OtherRepoType String- deriving (Eq, Generic, Ord, Read, Show, Typeable, Data)--instance Binary RepoType--knownRepoTypes :: [RepoType]-knownRepoTypes = [Darcs, Git, SVN, CVS- ,Mercurial, GnuArch, Bazaar, Monotone]--repoTypeAliases :: RepoType -> [String]-repoTypeAliases Bazaar = ["bzr"]-repoTypeAliases Mercurial = ["hg"]-repoTypeAliases GnuArch = ["arch"]-repoTypeAliases _ = []--instance Text RepoKind where- disp RepoHead = Disp.text "head"- disp RepoThis = Disp.text "this"- disp (RepoKindUnknown other) = Disp.text other-- parse = do- name <- ident- return $ case lowercase name of- "head" -> RepoHead- "this" -> RepoThis- _ -> RepoKindUnknown name--instance Text RepoType where- disp (OtherRepoType other) = Disp.text other- disp other = Disp.text (lowercase (show other))- parse = fmap classifyRepoType ident--classifyRepoType :: String -> RepoType-classifyRepoType s =- fromMaybe (OtherRepoType s) $ lookup (lowercase s) repoTypeMap- where- repoTypeMap = [ (name, repoType')- | repoType' <- knownRepoTypes- , name <- display repoType' : repoTypeAliases repoType' ]--ident :: Parse.ReadP r String-ident = Parse.munch1 (\c -> Char.isAlphaNum c || c == '_' || c == '-')--lowercase :: String -> String-lowercase = map Char.toLower---- --------------------------------------------------------------- * Utils--- --------------------------------------------------------------updatePackageDescription :: HookedBuildInfo -> PackageDescription -> PackageDescription-updatePackageDescription (mb_lib_bi, exe_bi) p- = p{ executables = updateExecutables exe_bi (executables p)- , library = updateLibrary mb_lib_bi (library p)- }- where- updateLibrary :: Maybe BuildInfo -> Maybe Library -> Maybe Library- updateLibrary (Just bi) (Just lib) = Just (lib{libBuildInfo = bi `mappend` libBuildInfo lib})- updateLibrary Nothing mb_lib = mb_lib- updateLibrary (Just _) Nothing = Nothing-- updateExecutables :: [(String, BuildInfo)] -- ^[(exeName, new buildinfo)]- -> [Executable] -- ^list of executables to update- -> [Executable] -- ^list with exeNames updated- updateExecutables exe_bi' executables' = foldr updateExecutable executables' exe_bi'-- updateExecutable :: (String, BuildInfo) -- ^(exeName, new buildinfo)- -> [Executable] -- ^list of executables to update- -> [Executable] -- ^list with exeName updated- updateExecutable _ [] = []- updateExecutable exe_bi'@(name,bi) (exe:exes)- | exeName exe == name = exe{buildInfo = bi `mappend` buildInfo exe} : exes- | otherwise = exe : updateExecutable exe_bi' exes---- ------------------------------------------------------------------------------ The GenericPackageDescription type--data GenericPackageDescription =- GenericPackageDescription {- packageDescription :: PackageDescription,- genPackageFlags :: [Flag],- condLibrary :: Maybe (CondTree ConfVar [Dependency] Library),- condExecutables :: [(String, CondTree ConfVar [Dependency] Executable)],- condTestSuites :: [(String, CondTree ConfVar [Dependency] TestSuite)],- condBenchmarks :: [(String, CondTree ConfVar [Dependency] Benchmark)]- }- deriving (Show, Eq, Typeable, Data, Generic)--instance Package GenericPackageDescription where- packageId = packageId . packageDescription--instance Binary GenericPackageDescription---- | A flag can represent a feature to be included, or a way of linking--- a target against its dependencies, or in fact whatever you can think of.-data Flag = MkFlag- { flagName :: FlagName- , flagDescription :: String- , flagDefault :: Bool- , flagManual :: Bool- }- deriving (Show, Eq, Typeable, Data, Generic)--instance Binary Flag---- | A 'FlagName' is the name of a user-defined configuration flag-newtype FlagName = FlagName String- deriving (Eq, Generic, Ord, Show, Read, Typeable, Data)--instance Binary FlagName---- | A 'FlagAssignment' is a total or partial mapping of 'FlagName's to--- 'Bool' flag values. It represents the flags chosen by the user or--- discovered during configuration. For example @--flags=foo --flags=-bar@--- becomes @[("foo", True), ("bar", False)]@----type FlagAssignment = [(FlagName, Bool)]---- | A @ConfVar@ represents the variable type used.-data ConfVar = OS OS- | Arch Arch- | Flag FlagName- | Impl CompilerFlavor VersionRange- deriving (Eq, Show, Typeable, Data, Generic)--instance Binary ConfVar---- | A boolean expression parameterized over the variable type used.-data Condition c = Var c- | Lit Bool- | CNot (Condition c)- | COr (Condition c) (Condition c)- | CAnd (Condition c) (Condition c)- deriving (Show, Eq, Typeable, Data, Generic)---- | Boolean negation of a 'Condition' value.-cNot :: Condition a -> Condition a-cNot (Lit b) = Lit (not b)-cNot (CNot c) = c-cNot c = CNot c---- | Boolean AND of two 'Condtion' values.-cAnd :: Condition a -> Condition a -> Condition a-cAnd (Lit False) _ = Lit False-cAnd _ (Lit False) = Lit False-cAnd (Lit True) x = x-cAnd x (Lit True) = x-cAnd x y = CAnd x y---- | Boolean OR of two 'Condition' values.-cOr :: Eq v => Condition v -> Condition v -> Condition v-cOr (Lit True) _ = Lit True-cOr _ (Lit True) = Lit True-cOr (Lit False) x = x-cOr x (Lit False) = x-cOr c (CNot d)- | c == d = Lit True-cOr (CNot c) d- | c == d = Lit True-cOr x y = COr x y--instance Functor Condition where- f `fmap` Var c = Var (f c)- _ `fmap` Lit c = Lit c- f `fmap` CNot c = CNot (fmap f c)- f `fmap` COr c d = COr (fmap f c) (fmap f d)- f `fmap` CAnd c d = CAnd (fmap f c) (fmap f d)--instance Foldable Condition where- f `foldMap` Var c = f c- _ `foldMap` Lit _ = mempty- f `foldMap` CNot c = Fold.foldMap f c- f `foldMap` COr c d = foldMap f c `mappend` foldMap f d- f `foldMap` CAnd c d = foldMap f c `mappend` foldMap f d--instance Traversable Condition where- f `traverse` Var c = Var `fmap` f c- _ `traverse` Lit c = pure $ Lit c- f `traverse` CNot c = CNot `fmap` Trav.traverse f c- f `traverse` COr c d = COr `fmap` traverse f c <*> traverse f d- f `traverse` CAnd c d = CAnd `fmap` traverse f c <*> traverse f d--instance Applicative Condition where- pure = Var- (<*>) = ap--instance Monad Condition where- return = AP.pure- -- Terminating cases- (>>=) (Lit x) _ = Lit x- (>>=) (Var x) f = f x- -- Recursing cases- (>>=) (CNot x ) f = CNot (x >>= f)- (>>=) (COr x y) f = COr (x >>= f) (y >>= f)- (>>=) (CAnd x y) f = CAnd (x >>= f) (y >>= f)--instance Monoid (Condition a) where- mempty = Lit False- mappend = (Semi.<>)--instance Semigroup (Condition a) where- (<>) = COr--instance Alternative Condition where- empty = mempty- (<|>) = mappend--instance MonadPlus Condition where- mzero = mempty- mplus = mappend--instance Binary c => Binary (Condition c)--data CondTree v c a = CondNode- { condTreeData :: a- , condTreeConstraints :: c- , condTreeComponents :: [( Condition v- , CondTree v c a- , Maybe (CondTree v c a))]- }- deriving (Show, Eq, Typeable, Data, Generic)--instance (Binary v, Binary c, Binary a) => Binary (CondTree v c a)+-- Backwards compatibility reexport of everything you need to know+-- about @.cabal@ files.++module Distribution.PackageDescription (+ -- * Package descriptions+ PackageDescription(..),+ emptyPackageDescription,+ specVersion,+ descCabalVersion,+ BuildType(..),+ knownBuildTypes,+ allLibraries,++ -- ** Renaming (syntactic)+ ModuleRenaming(..),+ defaultRenaming,++ -- ** Libraries+ Library(..),+ ModuleReexport(..),+ emptyLibrary,+ withLib,+ hasPublicLib,+ hasLibs,+ explicitLibModules,+ libModulesAutogen,+ libModules,++ -- ** Executables+ Executable(..),+ emptyExecutable,+ withExe,+ hasExes,+ exeModules,+ exeModulesAutogen,++ -- * Tests+ TestSuite(..),+ TestSuiteInterface(..),+ TestType(..),+ testType,+ knownTestTypes,+ emptyTestSuite,+ hasTests,+ withTest,+ testModules,+ testModulesAutogen,++ -- * Benchmarks+ Benchmark(..),+ BenchmarkInterface(..),+ BenchmarkType(..),+ benchmarkType,+ knownBenchmarkTypes,+ emptyBenchmark,+ hasBenchmarks,+ withBenchmark,+ benchmarkModules,+ benchmarkModulesAutogen,++ -- * Build information+ BuildInfo(..),+ emptyBuildInfo,+ allBuildInfo,+ allLanguages,+ allExtensions,+ usedExtensions,+ hcOptions,+ hcProfOptions,+ hcSharedOptions,++ -- ** Supplementary build information+ ComponentName(..),+ defaultLibName,+ HookedBuildInfo,+ emptyHookedBuildInfo,+ updatePackageDescription,++ -- * package configuration+ GenericPackageDescription(..),+ Flag(..), emptyFlag,+ FlagName, mkFlagName, unFlagName,+ FlagAssignment,+ showFlagValue,+ dispFlagAssignment, parseFlagAssignment,+ CondTree(..), ConfVar(..), Condition(..),+ cNot, cAnd, cOr,++ -- * Source repositories+ SourceRepo(..),+ RepoKind(..),+ RepoType(..),+ knownRepoTypes,+ emptySourceRepo,++ -- * Custom setup build information+ SetupBuildInfo(..),+ ) where++import Prelude ()+--import Distribution.Compat.Prelude++import Distribution.Types.Library+import Distribution.Types.TestSuite+import Distribution.Types.Executable+import Distribution.Types.Benchmark+import Distribution.Types.TestType+import Distribution.Types.TestSuiteInterface+import Distribution.Types.BenchmarkType+import Distribution.Types.BenchmarkInterface+import Distribution.Types.ModuleRenaming+import Distribution.Types.ModuleReexport+import Distribution.Types.BuildInfo+import Distribution.Types.SetupBuildInfo+import Distribution.Types.BuildType+import Distribution.Types.GenericPackageDescription+import Distribution.Types.CondTree+import Distribution.Types.Condition+import Distribution.Types.PackageDescription+import Distribution.Types.ComponentName+import Distribution.Types.HookedBuildInfo+import Distribution.Types.SourceRepo
Distribution/PackageDescription/Check.hs view
@@ -33,38 +33,47 @@ checkPackageFileNames, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.PackageDescription import Distribution.PackageDescription.Configuration import Distribution.Compiler import Distribution.System import Distribution.License+import Distribution.Simple.BuildPaths (autogenPathsModuleName)+import Distribution.Simple.BuildToolDepends import Distribution.Simple.CCompiler+import Distribution.Types.ComponentRequestedSpec+import Distribution.Types.CondTree+import Distribution.Types.Dependency+import Distribution.Types.ExeDependency+import Distribution.Types.PackageName+import Distribution.Types.ExecutableScope+import Distribution.Types.UnqualComponentName import Distribution.Simple.Utils hiding (findPackageDesc, notice) import Distribution.Version import Distribution.Package import Distribution.Text import Language.Haskell.Extension -import Data.Maybe- ( isNothing, isJust, catMaybes, mapMaybe, maybeToList, fromMaybe )-import Data.List (sort, group, isPrefixOf, nub, find)-import Control.Monad- ( filterM, liftM )+import Control.Monad (mapM)+import Data.List (group) import qualified System.Directory as System ( doesFileExist, doesDirectoryExist ) import qualified Data.Map as Map import qualified Text.PrettyPrint as Disp-import Text.PrettyPrint ((<>), (<+>))+import Text.PrettyPrint ((<+>)) import qualified System.Directory (getDirectoryContents) import System.IO (openBinaryFile, IOMode(ReadMode), hGetContents) import System.FilePath- ( (</>), takeExtension, isRelative, isAbsolute- , splitDirectories, splitPath, splitExtension )+ ( (</>), takeExtension, splitDirectories, splitPath, splitExtension ) import System.FilePath.Windows as FilePath.Windows ( isValid ) + -- | Results of some kind of failed package check. -- -- There are a range of severities, from merely dubious to totally insane.@@ -111,7 +120,7 @@ checkSpecVersion :: PackageDescription -> [Int] -> Bool -> PackageCheck -> Maybe PackageCheck checkSpecVersion pkg specver cond pc- | specVersion pkg >= Version specver [] = Nothing+ | specVersion pkg >= mkVersion specver = Nothing | otherwise = check cond pc -- ------------------------------------------------------------@@ -164,28 +173,45 @@ checkSanity pkg = catMaybes [ - check (null . (\(PackageName n) -> n) . packageName $ pkg) $+ check (null . unPackageName . packageName $ pkg) $ PackageBuildImpossible "No 'name' field." - , check (null . versionBranch . packageVersion $ pkg) $+ , check (nullVersion == packageVersion pkg) $ PackageBuildImpossible "No 'version' field." , check (all ($ pkg) [ null . executables , null . testSuites , null . benchmarks- , isNothing . library ]) $+ , null . allLibraries+ , null . foreignLibs ]) $ PackageBuildImpossible "No executables, libraries, tests, or benchmarks found. Nothing to do." + , check (any isNothing (map libName $ subLibraries pkg)) $+ PackageBuildImpossible $ "Found one or more unnamed internal libraries. "+ ++ "Only the non-internal library can have the same name as the package."+ , check (not (null duplicateNames)) $- PackageBuildImpossible $ "Duplicate sections: " ++ commaSep duplicateNames- ++ ". The name of every executable, test suite, and benchmark section in"+ PackageBuildImpossible $ "Duplicate sections: "+ ++ commaSep (map unUnqualComponentName duplicateNames)+ ++ ". The name of every library, executable, test suite,"+ ++ " and benchmark section in" ++ " the package must be unique."++ -- NB: but it's OK for executables to have the same name!+ -- TODO shouldn't need to compare on the string level+ , check (any (== display (packageName pkg)) (display <$> subLibNames)) $+ PackageBuildImpossible $ "Illegal internal library name "+ ++ display (packageName pkg)+ ++ ". Internal libraries cannot have the same name as the package."+ ++ " Maybe you wanted a non-internal library?"+ ++ " If so, rewrite the section stanza"+ ++ " from 'library: '" ++ display (packageName pkg) ++ "' to 'library'." ] --TODO: check for name clashes case insensitively: windows file systems cannot --cope. - ++ maybe [] (checkLibrary pkg) (library pkg)+ ++ concatMap (checkLibrary pkg) (allLibraries pkg) ++ concatMap (checkExecutable pkg) (executables pkg) ++ concatMap (checkTestSuite pkg) (testSuites pkg) ++ concatMap (checkBenchmark pkg) (benchmarks pkg)@@ -199,10 +225,14 @@ ++ "tool only supports up to version " ++ display cabalVersion ++ "." ] where+ -- The public 'library' gets special dispensation, because it+ -- is common practice to export a library and name the executable+ -- the same as the package.+ subLibNames = catMaybes . map libName $ subLibraries pkg exeNames = map exeName $ executables pkg testNames = map testName $ testSuites pkg bmNames = map benchmarkName $ benchmarks pkg- duplicateNames = dups $ exeNames ++ testNames ++ bmNames+ duplicateNames = dups $ subLibNames ++ exeNames ++ testNames ++ bmNames checkLibrary :: PackageDescription -> Library -> [PackageCheck] checkLibrary pkg lib =@@ -213,25 +243,37 @@ "Duplicate modules in library: " ++ commaSep (map display moduleDuplicates) - -- check use of required-signatures/exposed-signatures sections- , checkVersion [1,21] (not (null (requiredSignatures lib))) $- PackageDistInexcusable $- "To use the 'required-signatures' field the package needs to specify "- ++ "at least 'cabal-version: >= 1.21'."+ -- TODO: This check is bogus if a required-signature was passed through+ , check (null (explicitLibModules lib) && null (reexportedModules lib)) $+ PackageDistSuspiciousWarn $+ "Library " ++ (case libName lib of+ Nothing -> ""+ Just n -> display n+ ) ++ "does not expose any modules" - , checkVersion [1,21] (not (null (exposedSignatures lib))) $+ -- check use of signatures sections+ , checkVersion [1,25] (not (null (signatures lib))) $ PackageDistInexcusable $- "To use the 'exposed-signatures' field the package needs to specify "- ++ "at least 'cabal-version: >= 1.21'."+ "To use the 'signatures' field the package needs to specify "+ ++ "at least 'cabal-version: >= 1.25'."++ -- check that all autogen-modules appear on other-modules or exposed-modules+ , check+ (not $ and $ map (flip elem (explicitLibModules lib)) (libModulesAutogen lib)) $+ PackageBuildImpossible $+ "An 'autogen-module' is neither on 'exposed-modules' or "+ ++ "'other-modules'."+ ] where checkVersion :: [Int] -> Bool -> PackageCheck -> Maybe PackageCheck checkVersion ver cond pc- | specVersion pkg >= Version ver [] = Nothing+ | specVersion pkg >= mkVersion ver = Nothing | otherwise = check cond pc - moduleDuplicates = dups (libModules lib +++ -- TODO: not sure if this check is always right in Backpack+ moduleDuplicates = dups (explicitLibModules lib ++ map moduleReexportName (reexportedModules lib)) checkExecutable :: PackageDescription -> Executable -> [PackageCheck]@@ -240,7 +282,7 @@ check (null (modulePath exe)) $ PackageBuildImpossible $- "No 'main-is' field found for executable " ++ exeName exe+ "No 'main-is' field found for executable " ++ display (exeName exe) , check (not (null (modulePath exe)) && (not $ fileExtensionSupportedLanguage $ modulePath exe)) $@@ -258,8 +300,21 @@ , check (not (null moduleDuplicates)) $ PackageBuildImpossible $- "Duplicate modules in executable '" ++ exeName exe ++ "': "+ "Duplicate modules in executable '" ++ display (exeName exe) ++ "': " ++ commaSep (map display moduleDuplicates)++ -- check that all autogen-modules appear on other-modules+ , check+ (not $ and $ map (flip elem (exeModules exe)) (exeModulesAutogen exe)) $+ PackageBuildImpossible $+ "On executable '" ++ display (exeName exe) ++ "' an 'autogen-module' is not "+ ++ "on 'other-modules'"++ , checkSpecVersion pkg [1,25] (exeScope exe /= ExecutableScopeUnknown) $+ PackageDistInexcusable $+ "To use the 'scope' field the package needs to specify "+ ++ "at least 'cabal-version: >= 1.25'."+ ] where moduleDuplicates = dups (exeModules exe)@@ -284,7 +339,7 @@ , check (not $ null moduleDuplicates) $ PackageBuildImpossible $- "Duplicate modules in test suite '" ++ testName test ++ "': "+ "Duplicate modules in test suite '" ++ display (testName test) ++ "': " ++ commaSep (map display moduleDuplicates) , check mainIsWrongExt $@@ -297,6 +352,16 @@ PackageDistInexcusable $ "The package uses a C/C++/obj-C source file for the 'main-is' field. " ++ "To use this feature you must specify 'cabal-version: >= 1.18'."++ -- check that all autogen-modules appear on other-modules+ , check+ (not $ and $ map+ (flip elem (testModules test))+ (testModulesAutogen test)+ ) $+ PackageBuildImpossible $+ "On test suite '" ++ display (testName test) ++ "' an 'autogen-module' is not "+ ++ "on 'other-modules'" ] where moduleDuplicates = dups $ testModules test@@ -329,13 +394,23 @@ , check (not $ null moduleDuplicates) $ PackageBuildImpossible $- "Duplicate modules in benchmark '" ++ benchmarkName bm ++ "': "+ "Duplicate modules in benchmark '" ++ display (benchmarkName bm) ++ "': " ++ commaSep (map display moduleDuplicates) , check mainIsWrongExt $ PackageBuildImpossible $ "The 'main-is' field must specify a '.hs' or '.lhs' file " ++ "(even if it is generated by a preprocessor)."++ -- check that all autogen-modules appear on other-modules+ , check+ (not $ and $ map+ (flip elem (benchmarkModules bm))+ (benchmarkModulesAutogen bm)+ ) $+ PackageBuildImpossible $+ "On benchmark '" ++ display (benchmarkName bm) ++ "' an 'autogen-module' is "+ ++ "not on 'other-modules'" ] where moduleDuplicates = dups $ benchmarkModules bm@@ -359,6 +434,11 @@ ++ "need to convert package names to file names so using this name " ++ "would cause problems." + , check ((isPrefixOf "z-") . display . packageName $ pkg) $+ PackageDistInexcusable $+ "Package names with the prefix 'z-' are reserved by Cabal and "+ ++ "cannot be used."+ , check (isNothing (buildType pkg)) $ PackageBuildWarning $ "No 'build-type' specified. If you do not need a custom Setup.hs or "@@ -430,6 +510,22 @@ PackageDistSuspicious "The 'synopsis' field is rather long (max 80 chars is recommended)." + -- See also https://github.com/haskell/cabal/pull/3479+ , check (not (null (description pkg))+ && length (description pkg) <= length (synopsis pkg)) $+ PackageDistSuspicious $+ "The 'description' field should be longer than the 'synopsis' "+ ++ "field. "+ ++ "It's useful to provide an informative 'description' to allow "+ ++ "Haskell programmers who have never heard about your package to "+ ++ "understand the purpose of your package. "+ ++ "The 'description' field content is typically shown by tooling "+ ++ "(e.g. 'cabal info', Haddock, Hackage) below the 'synopsis' which "+ ++ "serves as a headline. "+ ++ "Please refer to <https://www.haskell.org/"+ ++ "cabal/users-guide/developing-packages.html#package-properties>"+ ++ " for more details."+ -- check use of impossible constraints "tested-with: GHC== 6.10 && ==6.12" , check (not (null testedWithImpossibleRanges)) $ PackageDistInexcusable $@@ -439,6 +535,43 @@ ++ "different versions of the same compiler use multiple entries, " ++ "for example 'tested-with: GHC==6.10.4, GHC==6.12.3' and not " ++ "'tested-with: GHC==6.10.4 && ==6.12.3'."++ , check (not (null depInternalLibraryWithExtraVersion)) $+ PackageBuildWarning $+ "The package has an extraneous version range for a dependency on an "+ ++ "internal library: "+ ++ commaSep (map display depInternalLibraryWithExtraVersion)+ ++ ". This version range includes the current package but isn't needed "+ ++ "as the current package's library will always be used."++ , check (not (null depInternalLibraryWithImpossibleVersion)) $+ PackageBuildImpossible $+ "The package has an impossible version range for a dependency on an "+ ++ "internal library: "+ ++ commaSep (map display depInternalLibraryWithImpossibleVersion)+ ++ ". This version range does not include the current package, and must "+ ++ "be removed as the current package's library will always be used."++ , check (not (null depInternalExecutableWithExtraVersion)) $+ PackageBuildWarning $+ "The package has an extraneous version range for a dependency on an "+ ++ "internal executable: "+ ++ commaSep (map display depInternalExecutableWithExtraVersion)+ ++ ". This version range includes the current package but isn't needed "+ ++ "as the current package's executable will always be used."++ , check (not (null depInternalExecutableWithImpossibleVersion)) $+ PackageBuildImpossible $+ "The package has an impossible version range for a dependency on an "+ ++ "internal executable: "+ ++ commaSep (map display depInternalExecutableWithImpossibleVersion)+ ++ ". This version range does not include the current package, and must "+ ++ "be removed as the current package's executable will always be used."++ , check (not (null depMissingInternalExecutable)) $+ PackageBuildImpossible $+ "The package depends on a missing internal executable: "+ ++ commaSep (map display depInternalExecutableWithImpossibleVersion) ] where unknownCompilers = [ name | (OtherCompiler name, _) <- testedWith pkg ]@@ -457,11 +590,63 @@ , name `elem` map display knownLanguages ] testedWithImpossibleRanges =- [ Dependency (PackageName (display compiler)) vr+ [ Dependency (mkPackageName (display compiler)) vr | (compiler, vr) <- testedWith pkg , isNoVersion vr ] + internalLibraries =+ map (maybe (packageName pkg) (unqualComponentNameToPackageName) . libName)+ (allLibraries pkg) + internalExecutables = map exeName $ executables pkg++ internalLibDeps =+ [ dep+ | bi <- allBuildInfo pkg+ , dep@(Dependency name _) <- targetBuildDepends bi+ , name `elem` internalLibraries+ ]++ internalExeDeps =+ [ dep+ | bi <- allBuildInfo pkg+ , dep <- getAllToolDependencies pkg bi+ , isInternal pkg dep+ ]++ depInternalLibraryWithExtraVersion =+ [ dep+ | dep@(Dependency _ versionRange) <- internalLibDeps+ , not $ isAnyVersion versionRange+ , packageVersion pkg `withinRange` versionRange+ ]++ depInternalLibraryWithImpossibleVersion =+ [ dep+ | dep@(Dependency _ versionRange) <- internalLibDeps+ , not $ packageVersion pkg `withinRange` versionRange+ ]++ depInternalExecutableWithExtraVersion =+ [ dep+ | dep@(ExeDependency _ _ versionRange) <- internalExeDeps+ , not $ isAnyVersion versionRange+ , packageVersion pkg `withinRange` versionRange+ ]++ depInternalExecutableWithImpossibleVersion =+ [ dep+ | dep@(ExeDependency _ _ versionRange) <- internalExeDeps+ , not $ packageVersion pkg `withinRange` versionRange+ ]++ depMissingInternalExecutable =+ [ dep+ | dep@(ExeDependency _ eName _) <- internalExeDeps+ , not $ eName `elem` internalExecutables+ ]++ checkLicense :: PackageDescription -> [PackageCheck] checkLicense pkg = catMaybes [@@ -547,7 +732,7 @@ ++ "field. It should specify the tag corresponding to this version " ++ "or release of the package." - , check (maybe False System.FilePath.isAbsolute (repoSubdir repo)) $+ , check (maybe False isAbsoluteOnAnyPlatform (repoSubdir repo)) $ PackageDistInexcusable "The 'subdir' field of a source-repository must be a relative path." ]@@ -681,7 +866,8 @@ where all_ghc_options = concatMap get_ghc_options (allBuildInfo pkg)- lib_ghc_options = maybe [] (get_ghc_options . libBuildInfo) (library pkg)+ lib_ghc_options = concatMap (get_ghc_options . libBuildInfo)+ (allLibraries pkg) get_ghc_options bi = hcOptions GHC bi ++ hcProfOptions GHC bi ++ hcSharedOptions GHC bi @@ -770,7 +956,8 @@ where all_cppOptions = [ opts | bi <- allBuildInfo pkg , opts <- cppOptions bi ] -checkAlternatives :: String -> String -> [(String, String)] -> Maybe PackageCheck+checkAlternatives :: String -> String -> [(String, String)]+ -> Maybe PackageCheck checkAlternatives badField goodField flags = check (not (null badFlags)) $ PackageBuildWarning $@@ -791,7 +978,7 @@ [ PackageDistInexcusable $ quote (kind ++ ": " ++ path) ++ " is an absolute path." | (path, kind) <- relPaths- , isAbsolute path ]+ , isAbsoluteOnAnyPlatform path ] ++ [ PackageDistInexcusable $ quote (kind ++ ": " ++ path) ++ " points inside the 'dist' "@@ -856,7 +1043,7 @@ catMaybes [ -- check syntax of cabal-version field- check (specVersion pkg >= Version [1,10] []+ check (specVersion pkg >= mkVersion [1,10] && not simpleSpecVersionRangeSyntax) $ PackageBuildWarning $ "Packages relying on Cabal 1.10 or later must only specify a "@@ -864,7 +1051,7 @@ ++ "'cabal-version: >= " ++ display (specVersion pkg) ++ "'." -- check syntax of cabal-version field- , check (specVersion pkg < Version [1,9] []+ , check (specVersion pkg < mkVersion [1,9] && not simpleSpecVersionRangeSyntax) $ PackageDistSuspicious $ "It is recommended that the 'cabal-version' field only specify a "@@ -895,7 +1082,7 @@ "To use the 'default-language' field the package needs to specify " ++ "at least 'cabal-version: >= 1.10'." - , check (specVersion pkg >= Version [1,10] []+ , check (specVersion pkg >= mkVersion [1,10] && (any isNothing (buildInfoField defaultLanguage))) $ PackageBuildWarning $ "Packages using 'cabal-version: >= 1.10' must specify the "@@ -904,21 +1091,30 @@ ++ "different modules then list the other ones in the " ++ "'other-languages' field." + , checkVersion [1,18]+ (not . null $ extraDocFiles pkg) $+ PackageDistInexcusable $+ "To use the 'extra-doc-files' field the package needs to specify "+ ++ "at least 'cabal-version: >= 1.18'."++ , checkVersion [1,23]+ (not (null (subLibraries pkg))) $+ PackageDistInexcusable $+ "To use multiple 'library' sections or a named library section "+ ++ "the package needs to specify at least 'cabal-version >= 1.23'."+ -- check use of reexported-modules sections , checkVersion [1,21]- (maybe False (not.null.reexportedModules) (library pkg)) $+ (any (not.null.reexportedModules) (allLibraries pkg)) $ PackageDistInexcusable $ "To use the 'reexported-module' field the package needs to specify " ++ "at least 'cabal-version: >= 1.21'." -- check use of thinning and renaming- , checkVersion [1,21] (not (null depsUsingThinningRenamingSyntax)) $+ , checkVersion [1,25] usesBackpackIncludes $ PackageDistInexcusable $- "The package uses "- ++ "thinning and renaming in the 'build-depends' field: "- ++ commaSep (map display depsUsingThinningRenamingSyntax)- ++ ". To use this new syntax, the package needs to specify at least"- ++ "'cabal-version: >= 1.21'."+ "To use the 'mixins' field the package needs to specify "+ ++ "at least 'cabal-version: >= 1.25'." -- check use of 'extra-framework-dirs' field , checkVersion [1,23] (any (not . null) (buildInfoField extraFrameworkDirs)) $@@ -935,7 +1131,7 @@ ++ "at least 'cabal-version: >= 1.10'." -- check use of extensions field- , check (specVersion pkg >= Version [1,10] []+ , check (specVersion pkg >= mkVersion [1,10] && (any (not . null) (buildInfoField oldExtensions))) $ PackageBuildWarning $ "For packages using 'cabal-version: >= 1.10' the 'extensions' "@@ -966,6 +1162,18 @@ [ display (Dependency name (eliminateWildcardSyntax versionRange)) | Dependency name versionRange <- depsUsingWildcardSyntax ] + -- check use of "build-depends: foo ^>= 1.2.3" syntax+ , checkVersion [2,0] (not (null depsUsingMajorBoundSyntax)) $+ PackageDistInexcusable $+ "The package uses major bounded version syntax in the "+ ++ "'build-depends' field: "+ ++ commaSep (map display depsUsingMajorBoundSyntax)+ ++ ". To use this new syntax the package need to specify at least "+ ++ "'cabal-version: >= 2.0'. Alternatively, if broader compatibility "+ ++ "is important then use: " ++ commaSep+ [ display (Dependency name (eliminateMajorBoundSyntax versionRange))+ | Dependency name versionRange <- depsUsingMajorBoundSyntax ]+ -- check use of "tested-with: GHC (>= 1.0 && < 1.4) || >=1.8 " syntax , checkVersion [1,8] (not (null testedWithVersionRangeExpressions)) $ PackageDistInexcusable $@@ -1039,7 +1247,7 @@ ++ "compatibility with earlier Cabal versions then you may be able to " ++ "use an equivalent compiler-specific flag." - , check (specVersion pkg >= Version [1,23] []+ , check (specVersion pkg >= mkVersion [1,23] && isNothing (setupBuildInfo pkg) && buildType pkg == Just Custom) $ PackageBuildWarning $@@ -1049,7 +1257,7 @@ ++ "The 'setup-depends' field uses the same syntax as 'build-depends', " ++ "so a simple example would be 'setup-depends: base, Cabal'." - , check (specVersion pkg < Version [1,23] []+ , check (specVersion pkg < mkVersion [1,23] && isNothing (setupBuildInfo pkg) && buildType pkg == Just Custom) $ PackageDistSuspiciousWarn $@@ -1059,6 +1267,18 @@ ++ "that specifies the dependencies of the Setup.hs script itself. " ++ "The 'setup-depends' field uses the same syntax as 'build-depends', " ++ "so a simple example would be 'setup-depends: base, Cabal'."++ , check (specVersion pkg >= mkVersion [1,25]+ && elem (autogenPathsModuleName pkg) allModuleNames+ && not (elem (autogenPathsModuleName pkg) allModuleNamesAutogen) ) $+ PackageDistInexcusable $+ "Packages using 'cabal-version: >= 1.25' and the autogenerated "+ ++ "module Paths_* must include it also on the 'autogen-modules' field "+ ++ "besides 'exposed-modules' and 'other-modules'. This specifies that "+ ++ "the module does not come with the package and is generated on "+ ++ "setup. Modules built with a custom Setup.hs script also go here "+ ++ "to ensure that commands like sdist don't fail."+ ] where -- Perform a check on packages that use a version of the spec less than@@ -1067,7 +1287,7 @@ -- version. checkVersion :: [Int] -> Bool -> PackageCheck -> Maybe PackageCheck checkVersion ver cond pc- | specVersion pkg >= Version ver [] = Nothing+ | specVersion pkg >= mkVersion ver = Nothing | otherwise = check cond pc buildInfoField field = map field (allBuildInfo pkg)@@ -1082,7 +1302,7 @@ , usesNewVersionRangeSyntax vr ] testedWithVersionRangeExpressions =- [ Dependency (PackageName (display compiler)) vr+ [ Dependency (mkPackageName (display compiler)) vr | (compiler, vr) <- testedWith pkg , usesNewVersionRangeSyntax vr ] @@ -1095,6 +1315,7 @@ (\_ -> True) -- >= (\_ -> False) (\_ _ -> False)+ (\_ _ -> False) (\_ _ -> False) (\_ _ -> False) id) (specVersionRaw pkg)@@ -1112,22 +1333,20 @@ (const 1) (const 1) (const 1) (const 1) (const (const 1))+ (const (const 1)) (+) (+) (const 3) -- uses new ()'s syntax depsUsingWildcardSyntax = [ dep | dep@(Dependency _ vr) <- buildDepends pkg , usesWildcardSyntax vr ] - -- TODO: If the user writes build-depends: foo with (), this is- -- indistinguishable from build-depends: foo, so there won't be an- -- error even though there should be- depsUsingThinningRenamingSyntax =- [ name- | bi <- allBuildInfo pkg- , (name, _) <- Map.toList (targetBuildRenaming bi) ]+ depsUsingMajorBoundSyntax = [ dep | dep@(Dependency _ vr) <- buildDepends pkg+ , usesMajorBoundSyntax vr ] + usesBackpackIncludes = any (not . null . mixins) (allBuildInfo pkg)+ testedWithUsingWildcardSyntax =- [ Dependency (PackageName (display compiler)) vr+ [ Dependency (mkPackageName (display compiler)) vr | (compiler, vr) <- testedWith pkg , usesWildcardSyntax vr ] @@ -1138,16 +1357,40 @@ (const False) (const False) (const False) (const False) (\_ _ -> True) -- the wildcard case+ (\_ _ -> False) (||) (||) id + -- NB: this eliminates both, WildcardVersion and MajorBoundVersion+ -- because when WildcardVersion is not support, neither is MajorBoundVersion eliminateWildcardSyntax = foldVersionRange' anyVersion thisVersion laterVersion earlierVersion orLaterVersion orEarlierVersion (\v v' -> intersectVersionRanges (orLaterVersion v) (earlierVersion v'))+ (\v v' -> intersectVersionRanges (orLaterVersion v) (earlierVersion v')) intersectVersionRanges unionVersionRanges id + usesMajorBoundSyntax :: VersionRange -> Bool+ usesMajorBoundSyntax =+ foldVersionRange'+ False (const False)+ (const False) (const False)+ (const False) (const False)+ (\_ _ -> False)+ (\_ _ -> True) -- MajorBoundVersion+ (||) (||) id++ eliminateMajorBoundSyntax =+ foldVersionRange'+ anyVersion thisVersion+ laterVersion earlierVersion+ orLaterVersion orEarlierVersion+ (\v _ -> withinVersion v)+ (\v v' -> intersectVersionRanges (orLaterVersion v) (earlierVersion v'))+ intersectVersionRanges unionVersionRanges id++ compatLicenses = [ GPL Nothing, LGPL Nothing, AGPL Nothing, BSD3, BSD4 , PublicDomain, AllRightsReserved , UnspecifiedLicense, OtherLicense ]@@ -1193,6 +1436,15 @@ map DisableExtension [MonoPatBinds] + allModuleNames =+ (case library pkg of+ Nothing -> []+ (Just lib) -> explicitLibModules lib+ )+ ++ concatMap otherModules (allBuildInfo pkg)++ allModuleNamesAutogen = concatMap autogenModules (allBuildInfo pkg)+ -- | A variation on the normal 'Text' instance, shows any ()'s in the original -- textual syntax. We need to show these otherwise it's confusing to users when -- we complain of their presence but do not pretty print them!@@ -1204,12 +1456,13 @@ . foldVersionRange' -- precedence: -- All the same as the usual pretty printer, except for the parens ( Disp.text "-any" , 0 :: Int)- (\v -> (Disp.text "==" <> disp v , 0))- (\v -> (Disp.char '>' <> disp v , 0))- (\v -> (Disp.char '<' <> disp v , 0))- (\v -> (Disp.text ">=" <> disp v , 0))- (\v -> (Disp.text "<=" <> disp v , 0))- (\v _ -> (Disp.text "==" <> dispWild v , 0))+ (\v -> (Disp.text "==" <<>> disp v , 0))+ (\v -> (Disp.char '>' <<>> disp v , 0))+ (\v -> (Disp.char '<' <<>> disp v , 0))+ (\v -> (Disp.text ">=" <<>> disp v , 0))+ (\v -> (Disp.text "<=" <<>> disp v , 0))+ (\v _ -> (Disp.text "==" <<>> dispWild v , 0))+ (\v _ -> (Disp.text "^>=" <<>> disp v , 0)) (\(r1, p1) (r2, p2) -> (punct 2 p1 r1 <+> Disp.text "||" <+> punct 2 p2 r2 , 2)) (\(r1, p1) (r2, p2) ->@@ -1217,9 +1470,10 @@ (\(r, _ ) -> (Disp.parens r, 0)) -- parens where- dispWild (Version b _) =- Disp.hcat (Disp.punctuate (Disp.char '.') (map Disp.int b))- <> Disp.text ".*"+ dispWild v =+ Disp.hcat (Disp.punctuate (Disp.char '.')+ (map Disp.int $ versionNumbers v))+ <<>> Disp.text ".*" punct p p' | p < p' = Disp.parens | otherwise = id @@ -1264,19 +1518,22 @@ -- pick a single "typical" configuration and check if that has an -- open upper bound. To get a typical configuration we finalise -- using no package index and the current platform.- finalised = finalizePackageDescription- [] (const True) buildPlatform+ finalised = finalizePD+ [] defaultComponentRequestedSpec (const True)+ buildPlatform (unknownCompilerInfo- (CompilerId buildCompilerFlavor (Version [] [])) NoAbiTag)+ (CompilerId buildCompilerFlavor nullVersion)+ NoAbiTag) [] pkg baseDependency = case finalised of Right (pkg', _) | not (null baseDeps) -> foldr intersectVersionRanges anyVersion baseDeps where baseDeps =- [ vr | Dependency (PackageName "base") vr <- buildDepends pkg' ]+ [ vr | Dependency pname vr <- buildDepends pkg'+ , pname == mkPackageName "base" ] - -- Just in case finalizePackageDescription fails for any reason,+ -- Just in case finalizePD fails for any reason, -- or if the package doesn't depend on the base package at all, -- then we will just skip the check, since boundedAbove noVersion = True _ -> noVersion@@ -1312,10 +1569,13 @@ unknownOSs = [ os | OS (OtherOS os) <- conditions ] unknownArches = [ arch | Arch (OtherArch arch) <- conditions ] unknownImpls = [ impl | Impl (OtherCompiler impl) _ <- conditions ]- conditions = maybe [] fvs (condLibrary pkg)+ conditions = concatMap fvs (maybeToList (condLibrary pkg))+ ++ concatMap (fvs . snd) (condSubLibraries pkg) ++ concatMap (fvs . snd) (condExecutables pkg)+ ++ concatMap (fvs . snd) (condTestSuites pkg)+ ++ concatMap (fvs . snd) (condBenchmarks pkg) fvs (CondNode _ _ ifs) = concatMap compfv ifs -- free variables- compfv (c, ct, mct) = condfv c ++ fvs ct ++ maybe [] fvs mct+ compfv (CondBranch c ct mct) = condfv c ++ fvs ct ++ maybe [] fvs mct condfv c = case c of Var v -> [v] Lit _ -> []@@ -1359,7 +1619,7 @@ "-fprof-cafs", "-fno-prof-count-entries", "-auto-all", "-auto", "-caf-all"] $ PackageDistSuspicious $- "'ghc-options: -fprof*' profiling flags are typically not "+ "'ghc-options/ghc-prof-options: -fprof*' profiling flags are typically not " ++ "appropriate for a distributed library package. These flags are " ++ "useful to profile this package, but when profiling other packages " ++ "that use this one these flags clutter the profile output with "@@ -1419,6 +1679,9 @@ concatMap (collectCondTreePaths libBuildInfo) (maybeToList (condLibrary pkg)) + ++ concatMap (collectCondTreePaths libBuildInfo . snd)+ (condSubLibraries pkg)+ ++ concatMap (collectCondTreePaths buildInfo . snd) (condExecutables pkg) @@ -1441,11 +1704,11 @@ : concat [ go (condition:conditions) ifThen- | (condition, ifThen, _) <- condTreeComponents condNode ]+ | (CondBranch condition ifThen _) <- condTreeComponents condNode ] ++ concat [ go (condition:conditions) elseThen- | (condition, _, Just elseThen) <- condTreeComponents condNode ]+ | (CondBranch condition _ (Just elseThen)) <- condTreeComponents condNode ] -- ------------------------------------------------------------@@ -1455,14 +1718,15 @@ -- | Sanity check things that requires IO. It looks at the files in the -- package and expects to find the package unpacked in at the given file path. ---checkPackageFiles :: PackageDescription -> FilePath -> IO [PackageCheck]+checkPackageFiles :: PackageDescription -> FilePath -> NoCallStackIO [PackageCheck] checkPackageFiles pkg root = checkPackageContent checkFilesIO pkg where checkFilesIO = CheckPackageContentOps { doesFileExist = System.doesFileExist . relative, doesDirectoryExist = System.doesDirectoryExist . relative, getDirectoryContents = System.Directory.getDirectoryContents . relative,- getFileContents = \f -> openBinaryFile (relative f) ReadMode >>= hGetContents+ getFileContents = \f -> openBinaryFile (relative f) ReadMode+ >>= hGetContents } relative path = root </> path @@ -1504,10 +1768,18 @@ checkCabalFileBOM ops = do epdfile <- findPackageDesc ops case epdfile of- Left pc -> return $ Just pc- Right pdfile -> (flip check pc . startsWithBOM . fromUTF8) `liftM` (getFileContents ops pdfile)- where pc = PackageDistInexcusable $- pdfile ++ " starts with an Unicode byte order mark (BOM). This may cause problems with older cabal versions."+ -- MASSIVE HACK. If the Cabal file doesn't exist, that is+ -- a very strange situation to be in, because the driver code+ -- in 'Distribution.Setup' ought to have noticed already!+ -- But this can be an issue, see #3552 and also when+ -- --cabal-file is specified. So if you can't find the file,+ -- just don't bother with this check.+ Left _ -> return $ Nothing+ Right pdfile -> (flip check pc . startsWithBOM . fromUTF8)+ `liftM` (getFileContents ops pdfile)+ where pc = PackageDistInexcusable $+ pdfile ++ " starts with an Unicode byte order mark (BOM)."+ ++ " This may cause problems with older cabal versions." -- |Find a package description file in the given directory. Looks for -- @.cabal@ files. Like 'Distribution.Simple.Utils.findPackageDesc',@@ -1527,7 +1799,8 @@ case cabalFiles of [] -> return (Left $ PackageBuildImpossible noDesc) [cabalFile] -> return (Right cabalFile)- multiple -> return (Left $ PackageBuildImpossible $ multiDesc multiple)+ multiple -> return (Left $ PackageBuildImpossible+ $ multiDesc multiple) where noDesc :: String@@ -1535,7 +1808,7 @@ ++ "Please create a package description file <pkgname>.cabal" multiDesc :: [String] -> String- multiDesc l = "Multiple cabal files found.\n"+ multiDesc l = "Multiple cabal files found while checking.\n" ++ "Please use only one of: " ++ intercalate ", " l @@ -1587,7 +1860,7 @@ | dir <- extraFrameworkDirs bi ] ++ [ (dir, "include-dirs") | dir <- includeDirs bi ] ++ [ (dir, "hs-source-dirs") | dir <- hsSourceDirs bi ]- , isRelative dir ]+ , isRelativeOnAnyPlatform dir ] missing <- filterM (liftM not . doesDirectoryExist ops . fst) dirs return [ PackageBuildWarning { explanation = quote (kind ++ ": " ++ dir)@@ -1666,13 +1939,13 @@ | otherwise = case pack nameMax (reverse (splitPath path)) of Left err -> Just err Right [] -> Nothing- Right (first:rest) -> case pack prefixMax remainder of+ Right (h:rest) -> case pack prefixMax remainder of Left err -> Just err Right [] -> Nothing Right (_:_) -> Just noSplit where -- drop the '/' between the name and prefix:- remainder = init first : rest+ remainder = init h : rest where nameMax, prefixMax :: Int
Distribution/PackageDescription/Configuration.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP #-} -- -fno-warn-deprecations for use of Map.foldWithKey {-# OPTIONS_GHC -fno-warn-deprecations #-} -----------------------------------------------------------------------------@@ -11,12 +10,13 @@ -- Portability : portable -- -- This is about the cabal configurations feature. It exports--- 'finalizePackageDescription' and 'flattenPackageDescription' which are+-- 'finalizePD' and 'flattenPackageDescription' which are -- functions for converting 'GenericPackageDescription's down to -- 'PackageDescription's. It has code for working with the tree of conditions -- and resolving or flattening conditions. module Distribution.PackageDescription.Configuration (+ finalizePD, finalizePackageDescription, flattenPackageDescription, @@ -34,10 +34,9 @@ transformAllBuildDepends, ) where -import Control.Applicative -- 7.10 -Werror workaround.-import Prelude+import Prelude ()+import Distribution.Compat.Prelude -import Distribution.Package import Distribution.PackageDescription import Distribution.PackageDescription.Utils import Distribution.Version@@ -47,51 +46,21 @@ import Distribution.Text import Distribution.Compat.ReadP as ReadP hiding ( char ) import qualified Distribution.Compat.ReadP as ReadP ( char )-import Distribution.Compat.Semigroup as Semi+import Distribution.Types.ComponentRequestedSpec+import Distribution.Types.ForeignLib+import Distribution.Types.Component+import Distribution.Types.Dependency+import Distribution.Types.PackageName+import Distribution.Types.UnqualComponentName+import Distribution.Types.CondTree+import Distribution.Types.Condition+import Distribution.Types.DependencyMap -import Control.Arrow (first)-import Data.Char ( isAlphaNum )-import Data.Maybe ( mapMaybe, maybeToList )-import Data.Map ( Map, fromListWith, toList ) import qualified Data.Map as Map import Data.Tree ( Tree(Node) ) ------------------------------------------------------------------------------ --- | Simplify the condition and return its free variables.-simplifyCondition :: Condition c- -> (c -> Either d Bool) -- ^ (partial) variable assignment- -> (Condition d, [d])-simplifyCondition cond i = fv . walk $ cond- where- walk cnd = case cnd of- Var v -> either Var Lit (i v)- Lit b -> Lit b- CNot c -> case walk c of- Lit True -> Lit False- Lit False -> Lit True- c' -> CNot c'- COr c d -> case (walk c, walk d) of- (Lit False, d') -> d'- (Lit True, _) -> Lit True- (c', Lit False) -> c'- (_, Lit True) -> Lit True- (c',d') -> COr c' d'- CAnd c d -> case (walk c, walk d) of- (Lit False, _) -> Lit False- (Lit True, d') -> d'- (_, Lit False) -> Lit False- (c', Lit True) -> c'- (c',d') -> CAnd c' d'- -- gather free vars- fv c = (c, fv' c)- fv' c = case c of- Var v -> [v]- Lit _ -> []- CNot c' -> fv' c'- COr c1 c2 -> fv' c1 ++ fv' c2- CAnd c1 c2 -> fv' c1 ++ fv' c2- -- | Simplify a configuration condition using the OS and arch names. Returns -- the names of all the flags occurring in the condition. simplifyWithSysParams :: OS -> Arch -> CompilerInfo -> Condition ConfVar@@ -146,7 +115,7 @@ boolLiteral = fmap Lit parse archIdent = fmap Arch parse osIdent = fmap OS parse- flagIdent = fmap (Flag . FlagName . lowercase) (munch1 isIdentChar)+ flagIdent = fmap (Flag . mkFlagName . lowercase) (munch1 isIdentChar) isIdentChar c = isAlphaNum c || c == '_' || c == '-' oper s = sp >> string s >> sp sp = skipSpaces@@ -156,30 +125,13 @@ ------------------------------------------------------------------------------ -mapCondTree :: (a -> b) -> (c -> d) -> (Condition v -> Condition w)- -> CondTree v c a -> CondTree w d b-mapCondTree fa fc fcnd (CondNode a c ifs) =- CondNode (fa a) (fc c) (map g ifs)- where- g (cnd, t, me) = (fcnd cnd, mapCondTree fa fc fcnd t,- fmap (mapCondTree fa fc fcnd) me)--mapTreeConstrs :: (c -> d) -> CondTree v c a -> CondTree v d a-mapTreeConstrs f = mapCondTree id f id--mapTreeConds :: (Condition v -> Condition w) -> CondTree v c a -> CondTree w c a-mapTreeConds f = mapCondTree id id f--mapTreeData :: (a -> b) -> CondTree v c a -> CondTree v c b-mapTreeData f = mapCondTree f id id- -- | Result of dependency test. Isomorphic to @Maybe d@ but renamed for -- clarity. data DepTestRslt d = DepOk | MissingDeps d instance Semigroup d => Monoid (DepTestRslt d) where mempty = DepOk- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup d => Semigroup (DepTestRslt d) where DepOk <> x = x@@ -211,6 +163,7 @@ resolveWithFlags :: [(FlagName,[Bool])] -- ^ Domain for each flag name, will be tested in order.+ -> ComponentRequestedSpec -> OS -- ^ OS as returned by Distribution.System.buildOS -> Arch -- ^ Arch as returned by Distribution.System.buildArch -> CompilerInfo -- ^ Compiler information@@ -220,7 +173,7 @@ -> Either [Dependency] (TargetSet PDTagged, FlagAssignment) -- ^ Either the missing dependencies (error case), or a pair of -- (set of build targets with dependencies, chosen flag assignments)-resolveWithFlags dom os arch impl constrs trees checkDeps =+resolveWithFlags dom enabled os arch impl constrs trees checkDeps = either (Left . fromDepMapUnion) Right $ explore (build [] dom) where extraConstrs = toDepMap constrs@@ -245,7 +198,7 @@ -- apply additional constraints to all dependencies first (`constrainBy` extraConstrs) . simplifyCondTree (env flags)- deps = overallDependencies targetSet+ deps = overallDependencies enabled targetSet in case checkDeps (fromDepMap deps) of DepOk | null ts -> Right (targetSet, flags) | otherwise -> tryAll $ map explore ts@@ -289,7 +242,7 @@ case extractCondition (buildable . getInfo) t of Lit True -> t Lit False -> CondNode mempty mempty []- c -> CondNode mempty mempty [(c, t, Nothing)]+ c -> CondNode mempty mempty [condIfThen c t] -- | This is a special version of 'addBuildableCondition' for the 'PDTagged' -- type.@@ -308,15 +261,13 @@ case extractCondition (buildable . getInfo) t of Lit True -> t Lit False -> deleteConstraints t- c -> CondNode mempty mempty [(c, t, Just (deleteConstraints t))]+ c -> CondNode mempty mempty [condIfThenElse c t (deleteConstraints t)] where deleteConstraints = mapTreeConstrs (const mempty) getInfo :: PDTagged -> BuildInfo getInfo (Lib l) = libBuildInfo l- getInfo (Exe _ e) = buildInfo e- getInfo (Test _ test) = testBuildInfo test- getInfo (Bench _ b) = benchmarkBuildInfo b+ getInfo (SubComp _ c) = componentBuildInfo c getInfo PDNull = mempty @@ -333,35 +284,17 @@ -- extract the condition under which Buildable is True. The predicate determines -- whether data under a 'CondTree' is buildable. ---- | Extract the condition matched by the given predicate from a cond tree.------ We use this mainly for extracting buildable conditions (see the Note above),--- but the function is in fact more general.-extractCondition :: Eq v => (a -> Bool) -> CondTree v c a -> Condition v-extractCondition p = go- where- go (CondNode x _ cs) | not (p x) = Lit False- | otherwise = goList cs-- goList [] = Lit True- goList ((c, t, e) : cs) =- let- ct = go t- ce = maybe (Lit True) go e- in- ((c `cAnd` ct) `cOr` (CNot c `cAnd` ce)) `cAnd` goList cs- -- | Extract conditions matched by the given predicate from all cond trees in a -- 'GenericPackageDescription'. extractConditions :: (BuildInfo -> Bool) -> GenericPackageDescription -> [Condition ConfVar] extractConditions f gpkg = concat [- maybeToList $ extractCondition (f . libBuildInfo) <$> condLibrary gpkg- , extractCondition (f . buildInfo) . snd <$> condExecutables gpkg- , extractCondition (f . testBuildInfo) . snd <$> condTestSuites gpkg- , extractCondition (f . benchmarkBuildInfo) . snd <$> condBenchmarks gpkg+ extractCondition (f . libBuildInfo) <$> maybeToList (condLibrary gpkg)+ , extractCondition (f . libBuildInfo) . snd <$> condSubLibraries gpkg+ , extractCondition (f . buildInfo) . snd <$> condExecutables gpkg+ , extractCondition (f . testBuildInfo) . snd <$> condTestSuites gpkg+ , extractCondition (f . benchmarkBuildInfo) . snd <$> condBenchmarks gpkg ] @@ -370,59 +303,16 @@ toDepMapUnion :: [Dependency] -> DepMapUnion toDepMapUnion ds =- DepMapUnion $ fromListWith unionVersionRanges [ (p,vr) | Dependency p vr <- ds ]+ DepMapUnion $ Map.fromListWith unionVersionRanges [ (p,vr) | Dependency p vr <- ds ] fromDepMapUnion :: DepMapUnion -> [Dependency]-fromDepMapUnion m = [ Dependency p vr | (p,vr) <- toList (unDepMapUnion m) ]---- | A map of dependencies. Newtyped since the default monoid instance is not--- appropriate. The monoid instance uses 'intersectVersionRanges'.-newtype DependencyMap = DependencyMap { unDependencyMap :: Map PackageName VersionRange }- deriving (Show, Read)--instance Monoid DependencyMap where- mempty = DependencyMap Map.empty- mappend = (Semi.<>)--instance Semigroup DependencyMap where- (DependencyMap a) <> (DependencyMap b) =- DependencyMap (Map.unionWith intersectVersionRanges a b)--toDepMap :: [Dependency] -> DependencyMap-toDepMap ds =- DependencyMap $ fromListWith intersectVersionRanges [ (p,vr) | Dependency p vr <- ds ]--fromDepMap :: DependencyMap -> [Dependency]-fromDepMap m = [ Dependency p vr | (p,vr) <- toList (unDependencyMap m) ]---- | Flattens a CondTree using a partial flag assignment. When a condition--- cannot be evaluated, both branches are ignored.-simplifyCondTree :: (Monoid a, Monoid d) =>- (v -> Either v Bool)- -> CondTree v d a- -> (d, a)-simplifyCondTree env (CondNode a d ifs) =- mconcat $ (d, a) : mapMaybe simplifyIf ifs- where- simplifyIf (cnd, t, me) =- case simplifyCondition cnd env of- (Lit True, _) -> Just $ simplifyCondTree env t- (Lit False, _) -> fmap (simplifyCondTree env) me- _ -> Nothing---- | Flatten a CondTree. This will resolve the CondTree by taking all--- possible paths into account. Note that since branches represent exclusive--- choices this may not result in a \"sane\" result.-ignoreConditions :: (Monoid a, Monoid c) => CondTree v c a -> (a, c)-ignoreConditions (CondNode a c ifs) = (a, c) `mappend` mconcat (concatMap f ifs)- where f (_, t, me) = ignoreConditions t- : maybeToList (fmap ignoreConditions me)+fromDepMapUnion m = [ Dependency p vr | (p,vr) <- Map.toList (unDepMapUnion m) ] freeVars :: CondTree ConfVar c a -> [FlagName] freeVars t = [ f | Flag f <- freeVars' t ] where freeVars' (CondNode _ _ ifs) = concatMap compfv ifs- compfv (c, ct, mct) = condfv c ++ freeVars' ct ++ maybe [] freeVars' mct+ compfv (CondBranch c ct mct) = condfv c ++ freeVars' ct ++ maybe [] freeVars' mct condfv c = case c of Var v -> [v] Lit _ -> []@@ -438,85 +328,39 @@ -- | Combine the target-specific dependencies in a TargetSet to give the -- dependencies for the package as a whole.-overallDependencies :: TargetSet PDTagged -> DependencyMap-overallDependencies (TargetSet targets) = mconcat depss+overallDependencies :: ComponentRequestedSpec -> TargetSet PDTagged -> DependencyMap+overallDependencies enabled (TargetSet targets) = mconcat depss where (depss, _) = unzip $ filter (removeDisabledSections . snd) targets removeDisabledSections :: PDTagged -> Bool- removeDisabledSections (Lib l) = buildable (libBuildInfo l)- removeDisabledSections (Exe _ e) = buildable (buildInfo e)- removeDisabledSections (Test _ t) = testEnabled t && buildable (testBuildInfo t)- removeDisabledSections (Bench _ b) = benchmarkEnabled b && buildable (benchmarkBuildInfo b)+ -- UGH. The embedded componentName in the 'Component's here is+ -- BLANK. I don't know whose fault this is but I'll use the tag+ -- instead. -- ezyang+ removeDisabledSections (Lib _) = componentNameRequested enabled CLibName+ removeDisabledSections (SubComp t c)+ -- Do NOT use componentName+ = componentNameRequested enabled+ $ case c of+ CLib _ -> CSubLibName t+ CFLib _ -> CFLibName t+ CExe _ -> CExeName t+ CTest _ -> CTestName t+ CBench _ -> CBenchName t removeDisabledSections PDNull = True --- Apply extra constraints to a dependency map.--- Combines dependencies where the result will only contain keys from the left--- (first) map. If a key also exists in the right map, both constraints will--- be intersected.-constrainBy :: DependencyMap -- ^ Input map- -> DependencyMap -- ^ Extra constraints- -> DependencyMap-constrainBy left extra =- DependencyMap $- Map.foldWithKey tightenConstraint (unDependencyMap left)- (unDependencyMap extra)- where tightenConstraint n c l =- case Map.lookup n l of- Nothing -> l- Just vr -> Map.insert n (intersectVersionRanges vr c) l- -- | Collect up the targets in a TargetSet of tagged targets, storing the -- dependencies as we go.-flattenTaggedTargets :: TargetSet PDTagged ->- (Maybe Library, [(String, Executable)], [(String, TestSuite)]- , [(String, Benchmark)])-flattenTaggedTargets (TargetSet targets) = foldr untag (Nothing, [], [], []) targets+flattenTaggedTargets :: TargetSet PDTagged -> (Maybe Library, [(UnqualComponentName, Component)])+flattenTaggedTargets (TargetSet targets) = foldr untag (Nothing, []) targets where- untag (_, Lib _) (Just _, _, _, _) = userBug "Only one library expected"- untag (deps, Lib l) (Nothing, exes, tests, bms) =- (Just l', exes, tests, bms)- where- l' = l {- libBuildInfo = (libBuildInfo l) { targetBuildDepends = fromDepMap deps }- }- untag (deps, Exe n e) (mlib, exes, tests, bms)- | any ((== n) . fst) exes =- userBug $ "There exist several exes with the same name: '" ++ n ++ "'"- | any ((== n) . fst) tests =- userBug $ "There exists a test with the same name as an exe: '" ++ n ++ "'"- | any ((== n) . fst) bms =- userBug $ "There exists a benchmark with the same name as an exe: '" ++ n ++ "'"- | otherwise = (mlib, (n, e'):exes, tests, bms)- where- e' = e {- buildInfo = (buildInfo e) { targetBuildDepends = fromDepMap deps }- }- untag (deps, Test n t) (mlib, exes, tests, bms)- | any ((== n) . fst) tests =- userBug $ "There exist several tests with the same name: '" ++ n ++ "'"- | any ((== n) . fst) exes =- userBug $ "There exists an exe with the same name as the test: '" ++ n ++ "'"- | any ((== n) . fst) bms =- userBug $ "There exists a benchmark with the same name as the test: '" ++ n ++ "'"- | otherwise = (mlib, exes, (n, t'):tests, bms)- where- t' = t {- testBuildInfo = (testBuildInfo t)- { targetBuildDepends = fromDepMap deps }- }- untag (deps, Bench n b) (mlib, exes, tests, bms)- | any ((== n) . fst) bms =- userBug $ "There exist several benchmarks with the same name: '" ++ n ++ "'"- | any ((== n) . fst) exes =- userBug $ "There exists an exe with the same name as the benchmark: '" ++ n ++ "'"- | any ((== n) . fst) tests =- userBug $ "There exists a test with the same name as the benchmark: '" ++ n ++ "'"- | otherwise = (mlib, exes, tests, (n, b'):bms)- where- b' = b {- benchmarkBuildInfo = (benchmarkBuildInfo b)- { targetBuildDepends = fromDepMap deps }- }+ untag (_, Lib _) (Just _, _) = userBug "Only one library expected"+ untag (_, Lib l) (Nothing, comps) = (Just l, comps)+ untag (_, SubComp n c) (mb_lib, comps)+ | any ((== n) . fst) comps =+ userBug $ "There exist several components with the same name: '" ++ unUnqualComponentName n ++ "'"++ | otherwise = (mb_lib, (n, c) : comps)+ untag (_, PDNull) x = x -- actually this should not happen, but let's be liberal @@ -525,23 +369,19 @@ -- data PDTagged = Lib Library- | Exe String Executable- | Test String TestSuite- | Bench String Benchmark+ | SubComp UnqualComponentName Component | PDNull deriving Show instance Monoid PDTagged where mempty = PDNull- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup PDTagged where PDNull <> x = x x <> PDNull = x Lib l <> Lib l' = Lib (l <> l')- Exe n e <> Exe n' e' | n == n' = Exe n (e <> e')- Test n t <> Test n' t' | n == n' = Test n (t <> t')- Bench n b <> Bench n' b' | n == n' = Bench n (b <> b')+ SubComp n x <> SubComp n' x' | n == n' = SubComp n (x <> x') _ <> _ = cabalBug "Cannot combine incompatible tags" -- | Create a package description with all configurations resolved.@@ -566,8 +406,13 @@ -- On success, it will return the package description and the full flag -- assignment chosen. ---finalizePackageDescription ::+-- Note that this drops any stanzas which have @buildable: False@. While+-- this is arguably the right thing to do, it means we give bad error+-- messages in some situations, see #3858.+--+finalizePD :: FlagAssignment -- ^ Explicitly specified flag assignments+ -> ComponentRequestedSpec -> (Dependency -> Bool) -- ^ Is a given dependency satisfiable from the set of -- available packages? If this is unknown then use -- True.@@ -579,37 +424,40 @@ (PackageDescription, FlagAssignment) -- ^ Either missing dependencies or the resolved package -- description along with the flag assignments chosen.-finalizePackageDescription userflags satisfyDep+finalizePD userflags enabled satisfyDep (Platform arch os) impl constraints- (GenericPackageDescription pkg flags mlib0 exes0 tests0 bms0) =- case resolveFlags of- Right ((mlib, exes', tests', bms'), targetSet, flagVals) ->- Right ( pkg { library = mlib- , executables = exes'- , testSuites = tests'- , benchmarks = bms'- , buildDepends = fromDepMap (overallDependencies targetSet)- }- , flagVals )-- Left missing -> Left missing+ (GenericPackageDescription pkg flags mb_lib0 sub_libs0 flibs0 exes0 tests0 bms0) = do+ (targetSet, flagVals) <-+ resolveWithFlags flagChoices enabled os arch impl constraints condTrees check+ let+ (mb_lib, comps) = flattenTaggedTargets targetSet+ mb_lib' = fmap libFillInDefaults mb_lib+ comps' = flip map comps $ \(n,c) -> foldComponent+ (\l -> CLib (libFillInDefaults l) { libName = Just n+ , libExposed = False })+ (\l -> CFLib (flibFillInDefaults l) { foreignLibName = n })+ (\e -> CExe (exeFillInDefaults e) { exeName = n })+ (\t -> CTest (testFillInDefaults t) { testName = n })+ (\b -> CBench (benchFillInDefaults b) { benchmarkName = n })+ c+ (sub_libs', flibs', exes', tests', bms') = partitionComponents comps'+ return ( pkg { library = mb_lib'+ , subLibraries = sub_libs'+ , foreignLibs = flibs'+ , executables = exes'+ , testSuites = tests'+ , benchmarks = bms'+ , buildDepends = fromDepMap (overallDependencies enabled targetSet)+ }+ , flagVals ) where -- Combine lib, exes, and tests into one list of @CondTree@s with tagged data- condTrees = maybeToList (fmap (mapTreeData Lib) mlib0 )- ++ map (\(name,tree) -> mapTreeData (Exe name) tree) exes0- ++ map (\(name,tree) -> mapTreeData (Test name) tree) tests0- ++ map (\(name,tree) -> mapTreeData (Bench name) tree) bms0-- resolveFlags =- case resolveWithFlags flagChoices os arch impl constraints condTrees check of- Right (targetSet, fs) ->- let (mlib, exes, tests, bms) = flattenTaggedTargets targetSet in- Right ( (fmap libFillInDefaults mlib,- map (\(n,e) -> (exeFillInDefaults e) { exeName = n }) exes,- map (\(n,t) -> (testFillInDefaults t) { testName = n }) tests,- map (\(n,b) -> (benchFillInDefaults b) { benchmarkName = n }) bms),- targetSet, fs)- Left missing -> Left missing+ condTrees = maybeToList (fmap (mapTreeData Lib) mb_lib0)+ ++ map (\(name,tree) -> mapTreeData (SubComp name . CLib) tree) sub_libs0+ ++ map (\(name,tree) -> mapTreeData (SubComp name . CFLib) tree) flibs0+ ++ map (\(name,tree) -> mapTreeData (SubComp name . CExe) tree) exes0+ ++ map (\(name,tree) -> mapTreeData (SubComp name . CTest) tree) tests0+ ++ map (\(name,tree) -> mapTreeData (SubComp name . CBench) tree) bms0 flagChoices = map (\(MkFlag n _ d manual) -> (n, d2c manual n d)) flags d2c manual n b = case lookup n userflags of@@ -623,6 +471,20 @@ then DepOk else MissingDeps missingDeps +{-# DEPRECATED finalizePackageDescription "This function now always assumes tests and benchmarks are disabled; use finalizePD with ComponentRequestedSpec to specify something more specific." #-}+finalizePackageDescription ::+ FlagAssignment -- ^ Explicitly specified flag assignments+ -> (Dependency -> Bool) -- ^ Is a given dependency satisfiable from the set of+ -- available packages? If this is unknown then use+ -- True.+ -> Platform -- ^ The 'Arch' and 'OS'+ -> CompilerInfo -- ^ Compiler information+ -> [Dependency] -- ^ Additional constraints+ -> GenericPackageDescription+ -> Either [Dependency]+ (PackageDescription, FlagAssignment)+finalizePackageDescription flags = finalizePD flags defaultComponentRequestedSpec+ {- let tst_p = (CondNode [1::Int] [Distribution.Package.Dependency "a" AnyVersion] []) let tst_p2 = (CondNode [1::Int] [Distribution.Package.Dependency "a" (EarlierVersion (Version [1,0] [])), Distribution.Package.Dependency "a" (LaterVersion (Version [2,0] []))] [])@@ -647,21 +509,37 @@ -- default path will be missing from the package description returned by this -- function. flattenPackageDescription :: GenericPackageDescription -> PackageDescription-flattenPackageDescription (GenericPackageDescription pkg _ mlib0 exes0 tests0 bms0) =- pkg { library = mlib- , executables = reverse exes- , testSuites = reverse tests- , benchmarks = reverse bms- , buildDepends = ldeps ++ reverse edeps ++ reverse tdeps ++ reverse bdeps+flattenPackageDescription+ (GenericPackageDescription pkg _ mlib0 sub_libs0 flibs0 exes0 tests0 bms0) =+ pkg { library = mlib+ , subLibraries = reverse sub_libs+ , foreignLibs = reverse flibs+ , executables = reverse exes+ , testSuites = reverse tests+ , benchmarks = reverse bms+ , buildDepends = ldeps+ ++ reverse sub_ldeps+ ++ reverse pldeps+ ++ reverse edeps+ ++ reverse tdeps+ ++ reverse bdeps } where (mlib, ldeps) = case mlib0 of Just lib -> let (l,ds) = ignoreConditions lib in- (Just (libFillInDefaults l), ds)+ (Just ((libFillInDefaults l) { libName = Nothing }), ds) Nothing -> (Nothing, [])- (exes, edeps) = foldr flattenExe ([],[]) exes0- (tests, tdeps) = foldr flattenTst ([],[]) tests0- (bms, bdeps) = foldr flattenBm ([],[]) bms0+ (sub_libs, sub_ldeps) = foldr flattenLib ([],[]) sub_libs0+ (flibs, pldeps) = foldr flattenFLib ([],[]) flibs0+ (exes, edeps) = foldr flattenExe ([],[]) exes0+ (tests, tdeps) = foldr flattenTst ([],[]) tests0+ (bms, bdeps) = foldr flattenBm ([],[]) bms0+ flattenLib (n, t) (es, ds) =+ let (e, ds') = ignoreConditions t in+ ( (libFillInDefaults $ e { libName = Just n, libExposed = False }) : es, ds' ++ ds )+ flattenFLib (n, t) (es, ds) =+ let (e, ds') = ignoreConditions t in+ ( (flibFillInDefaults $ e { foreignLibName = n }) : es, ds' ++ ds ) flattenExe (n, t) (es, ds) = let (e, ds') = ignoreConditions t in ( (exeFillInDefaults $ e { exeName = n }) : es, ds' ++ ds )@@ -683,6 +561,10 @@ libFillInDefaults lib@(Library { libBuildInfo = bi }) = lib { libBuildInfo = biFillInDefaults bi } +flibFillInDefaults :: ForeignLib -> ForeignLib+flibFillInDefaults flib@(ForeignLib { foreignLibBuildInfo = bi }) =+ flib { foreignLibBuildInfo = biFillInDefaults bi }+ exeFillInDefaults :: Executable -> Executable exeFillInDefaults exe@(Executable { buildInfo = bi }) = exe { buildInfo = biFillInDefaults bi }@@ -718,6 +600,7 @@ pd = packageDescription gpd pd' = pd { library = fmap onLibrary (library pd),+ subLibraries = map onLibrary (subLibraries pd), executables = map onExecutable (executables pd), testSuites = map onTestSuite (testSuites pd), benchmarks = map onBenchmark (benchmarks pd),@@ -758,17 +641,20 @@ where gpd' = gpd { condLibrary = condLib',+ condSubLibraries = condSubLibs', condExecutables = condExes', condTestSuites = condTests', condBenchmarks = condBenchs' } condLib = condLibrary gpd+ condSubLibs = condSubLibraries gpd condExes = condExecutables gpd condTests = condTestSuites gpd condBenchs = condBenchmarks gpd - condLib' = fmap (onCondTree onLibrary) condLib+ condLib' = fmap (onCondTree onLibrary) condLib+ condSubLibs' = map (mapSnd $ onCondTree onLibrary) condSubLibs condExes' = map (mapSnd $ onCondTree onExecutable) condExes condTests' = map (mapSnd $ onCondTree onTestSuite) condTests condBenchs' = map (mapSnd $ onCondTree onBenchmark) condBenchs
Distribution/PackageDescription/Parse.hs view
@@ -1,5 +1,8 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE ScopedTypeVariables #-} ----------------------------------------------------------------------------- -- | -- Module : Distribution.PackageDescription.Parse@@ -16,31 +19,46 @@ module Distribution.PackageDescription.Parse ( -- * Package descriptions+ readGenericPackageDescription,+ parseGenericPackageDescription,++ -- ** Deprecated names readPackageDescription,- writePackageDescription, parsePackageDescription,- showPackageDescription, -- ** Parsing ParseResult(..), FieldDescr(..), LineNo, + -- ** Private, but needed for pretty-printer+ TestSuiteStanza(..),+ BenchmarkStanza(..),+ -- ** Supplementary build information readHookedBuildInfo, parseHookedBuildInfo,- writeHookedBuildInfo,- showHookedBuildInfo, pkgDescrFieldDescrs, libFieldDescrs,+ foreignLibFieldDescrs, executableFieldDescrs, binfoFieldDescrs, sourceRepoFieldDescrs, testSuiteFieldDescrs,+ benchmarkFieldDescrs, flagFieldDescrs ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.Dependency+import Distribution.Types.ForeignLib+import Distribution.Types.ForeignLibType+import Distribution.Types.UnqualComponentName+import Distribution.Types.CondTree+import Distribution.Types.PackageId import Distribution.ParseUtils hiding (parseFields) import Distribution.PackageDescription import Distribution.PackageDescription.Utils@@ -54,20 +72,13 @@ import Distribution.Text import Distribution.Compat.ReadP hiding (get) -import Data.Char (isSpace)-import Data.Foldable (traverse_)-import Data.Maybe (listToMaybe, isJust)-import Data.List (nub, unfoldr, partition, (\\))-import Control.Monad (liftM, foldM, when, unless, ap)-#if __GLASGOW_HASKELL__ < 710-import Data.Monoid (Monoid(..))-import Control.Applicative (Applicative(..))-#endif-import Control.Arrow (first)+import Data.List (partition, (\\)) import System.Directory (doesFileExist)-import qualified Data.ByteString.Lazy.Char8 as BS.Char8+import Control.Monad (mapM) import Text.PrettyPrint+ (vcat, ($$), (<+>), text, render,+ comma, fsep, nest, ($+$), punctuate) -- -----------------------------------------------------------------------------@@ -85,7 +96,7 @@ (either disp disp) (liftM Left parse +++ liftM Right parse) specVersionRaw (\v pkg -> pkg{specVersionRaw=v}) , simpleField "build-type"- (maybe empty disp) (fmap Just parse)+ (maybe mempty disp) (fmap Just parse) buildType (\t pkg -> pkg{buildType=t}) , simpleField "license" disp parseLicenseQ@@ -177,11 +188,8 @@ , commaListFieldWithSep vcat "reexported-modules" disp parse reexportedModules (\mods lib -> lib{reexportedModules=mods}) - , listFieldWithSep vcat "required-signatures" disp parseModuleNameQ- requiredSignatures (\mods lib -> lib{requiredSignatures=mods})-- , listFieldWithSep vcat "exposed-signatures" disp parseModuleNameQ- exposedSignatures (\mods lib -> lib{exposedSignatures=mods})+ , listFieldWithSep vcat "signatures" disp parseModuleNameQ+ signatures (\mods lib -> lib{signatures=mods}) , boolField "exposed" libExposed (\val lib -> lib{libExposed=val})@@ -195,19 +203,51 @@ storeXFieldsLib _ _ = Nothing -- ---------------------------------------------------------------------------+-- Foreign libraries++foreignLibFieldDescrs :: [FieldDescr ForeignLib]+foreignLibFieldDescrs =+ [ simpleField "type"+ disp parse+ foreignLibType (\x flib -> flib { foreignLibType = x })+ , listField "options"+ disp parse+ foreignLibOptions (\x flib -> flib { foreignLibOptions = x })+ , simpleField "lib-version-info"+ (maybe mempty disp) (fmap Just parse)+ foreignLibVersionInfo (\x flib -> flib { foreignLibVersionInfo = x })+ , simpleField "lib-version-linux"+ (maybe mempty disp) (fmap Just parse)+ foreignLibVersionLinux (\x flib -> flib { foreignLibVersionLinux = x })+ , listField "mod-def-file"+ showFilePath parseFilePathQ+ foreignLibModDefFile (\x flib -> flib { foreignLibModDefFile = x })+ ]+ ++ map biToFLib binfoFieldDescrs+ where biToFLib = liftField foreignLibBuildInfo $ \bi flib ->+ flib { foreignLibBuildInfo = bi }++storeXFieldsForeignLib :: UnrecFieldParser ForeignLib+storeXFieldsForeignLib (f@('x':'-':_), val)+ l@(ForeignLib { foreignLibBuildInfo = bi }) =+ Just $ l { foreignLibBuildInfo = bi {+ customFieldsBI = (f,val):customFieldsBI bi+ }+ }+storeXFieldsForeignLib _ _ = Nothing++-- --------------------------------------------------------------------------- -- The Executable type executableFieldDescrs :: [FieldDescr Executable] executableFieldDescrs =- [ -- note ordering: configuration must come first, for- -- showPackageDescription.- simpleField "executable"- showToken parseTokenQ- exeName (\xs exe -> exe{exeName=xs})- , simpleField "main-is"+ [ simpleField "main-is" showFilePath parseFilePathQ modulePath (\xs exe -> exe{modulePath=xs})+ , simpleField "scope"+ disp parse+ exeScope (\sc exe -> exe{exeScope=sc}) ] ++ map biToExe binfoFieldDescrs where biToExe = liftField buildInfo (\bi exe -> exe{buildInfo=bi})@@ -235,13 +275,13 @@ testSuiteFieldDescrs :: [FieldDescr TestSuiteStanza] testSuiteFieldDescrs = [ simpleField "type"- (maybe empty disp) (fmap Just parse)+ (maybe mempty disp) (fmap Just parse) testStanzaTestType (\x suite -> suite { testStanzaTestType = x }) , simpleField "main-is"- (maybe empty showFilePath) (fmap Just parseFilePathQ)+ (maybe mempty showFilePath) (fmap Just parseFilePathQ) testStanzaMainIs (\x suite -> suite { testStanzaMainIs = x }) , simpleField "test-module"- (maybe empty disp) (fmap Just parseModuleNameQ)+ (maybe mempty disp) (fmap Just parseModuleNameQ) testStanzaTestModule (\x suite -> suite { testStanzaTestModule = x }) ] ++ map biToTest binfoFieldDescrs@@ -320,11 +360,11 @@ benchmarkFieldDescrs :: [FieldDescr BenchmarkStanza] benchmarkFieldDescrs = [ simpleField "type"- (maybe empty disp) (fmap Just parse)+ (maybe mempty disp) (fmap Just parse) benchmarkStanzaBenchmarkType (\x suite -> suite { benchmarkStanzaBenchmarkType = x }) , simpleField "main-is"- (maybe empty showFilePath) (fmap Just parseFilePathQ)+ (maybe mempty showFilePath) (fmap Just parseFilePathQ) benchmarkStanzaMainIs (\x suite -> suite { benchmarkStanzaMainIs = x }) ]@@ -379,17 +419,22 @@ -- --------------------------------------------------------------------------- -- The BuildInfo type - binfoFieldDescrs :: [FieldDescr BuildInfo] binfoFieldDescrs = [ boolField "buildable" buildable (\val binfo -> binfo{buildable=val}) , commaListField "build-tools"- disp parseBuildTool+ disp parse buildTools (\xs binfo -> binfo{buildTools=xs})+ , commaListField "build-tool-depends"+ disp parse+ buildToolDepends (\xs binfo -> binfo{buildToolDepends=xs}) , commaListFieldWithSep vcat "build-depends" disp parse targetBuildDepends (\xs binfo -> binfo{targetBuildDepends=xs})+ , commaListFieldWithSep vcat "mixins"+ disp parse+ mixins (\xs binfo -> binfo{mixins=xs}) , spaceListField "cpp-options" showToken parseTokenQ' cppOptions (\val binfo -> binfo{cppOptions=val})@@ -400,7 +445,7 @@ showToken parseTokenQ' ldOptions (\val binfo -> binfo{ldOptions=val}) , commaListField "pkgconfig-depends"- disp parsePkgconfigDependency+ disp parse pkgconfigDepends (\xs binfo -> binfo{pkgconfigDepends=xs}) , listField "frameworks" showToken parseTokenQ@@ -415,7 +460,7 @@ showFilePath parseFilePathQ jsSources (\paths binfo -> binfo{jsSources=paths}) , simpleField "default-language"- (maybe empty disp) (option Nothing (fmap Just parseLanguageQ))+ (maybe mempty disp) (option Nothing (fmap Just parseLanguageQ)) defaultLanguage (\lang binfo -> binfo{defaultLanguage=lang}) , listField "other-languages" disp parseLanguageQ@@ -454,6 +499,9 @@ , listFieldWithSep vcat "other-modules" disp parseModuleNameQ otherModules (\val binfo -> binfo{otherModules=val})+ , listFieldWithSep vcat "autogen-modules"+ disp parseModuleNameQ+ autogenModules (\val binfo -> binfo{autogenModules=val}) , optsField "ghc-prof-options" GHC profOptions (\val binfo -> binfo{profOptions=val}) , optsField "ghcjs-prof-options" GHCJS@@ -499,22 +547,22 @@ sourceRepoFieldDescrs :: [FieldDescr SourceRepo] sourceRepoFieldDescrs = [ simpleField "type"- (maybe empty disp) (fmap Just parse)+ (maybe mempty disp) (fmap Just parse) repoType (\val repo -> repo { repoType = val }) , simpleField "location"- (maybe empty showFreeText) (fmap Just parseFreeText)+ (maybe mempty showFreeText) (fmap Just parseFreeText) repoLocation (\val repo -> repo { repoLocation = val }) , simpleField "module"- (maybe empty showToken) (fmap Just parseTokenQ)+ (maybe mempty showToken) (fmap Just parseTokenQ) repoModule (\val repo -> repo { repoModule = val }) , simpleField "branch"- (maybe empty showToken) (fmap Just parseTokenQ)+ (maybe mempty showToken) (fmap Just parseTokenQ) repoBranch (\val repo -> repo { repoBranch = val }) , simpleField "tag"- (maybe empty showToken) (fmap Just parseTokenQ)+ (maybe mempty showToken) (fmap Just parseTokenQ) repoTag (\val repo -> repo { repoTag = val }) , simpleField "subdir"- (maybe empty showFilePath) (fmap Just parseFilePathQ)+ (maybe mempty showFilePath) (fmap Just parseFilePathQ) repoSubdir (\val repo -> repo { repoSubdir = val }) ] @@ -538,25 +586,30 @@ -> FilePath -> IO a readAndParseFile withFileContents' parser verbosity fpath = do exists <- doesFileExist fpath- unless exists- (die $ "Error Parsing: file \"" ++ fpath ++ "\" doesn't exist. Cannot continue.")+ unless exists $+ die' verbosity $+ "Error Parsing: file \"" ++ fpath ++ "\" doesn't exist. Cannot continue." withFileContents' fpath $ \str -> case parser str of ParseFailed e -> do let (line, message) = locatedErrorMsg e- dieWithLocation fpath line message+ dieWithLocation' verbosity fpath line message ParseOk warnings x -> do- mapM_ (warn verbosity . showPWarning fpath) $ reverse warnings+ traverse_ (warn verbosity . showPWarning fpath) $ reverse warnings return x readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfo readHookedBuildInfo = readAndParseFile withFileContents parseHookedBuildInfo --- |Parse the given package file. readPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription-readPackageDescription =- readAndParseFile withUTF8FileContents parsePackageDescription+readPackageDescription = readGenericPackageDescription+{-# DEPRECATED readPackageDescription "Use readGenericPackageDescription, old name is misleading." #-} +-- | Parse the given package file.+readGenericPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription+readGenericPackageDescription =+ readAndParseFile withUTF8FileContents parseGenericPackageDescription+ stanzas :: [Field] -> [[Field]] stanzas [] = [] stanzas (f:fields) = (f:this) : stanzas rest@@ -572,15 +625,15 @@ mapSimpleFields :: (Field -> ParseResult Field) -> [Field] -> ParseResult [Field]-mapSimpleFields f = mapM walk+mapSimpleFields f = traverse walk where walk fld@F{} = f fld walk (IfBlock l c fs1 fs2) = do- fs1' <- mapM walk fs1- fs2' <- mapM walk fs2+ fs1' <- traverse walk fs1+ fs2' <- traverse walk fs2 return (IfBlock l c fs1' fs2') walk (Section ln n l fs1) = do- fs1' <- mapM walk fs1+ fs1' <- traverse walk fs1 return (Section ln n l fs1') -- prop_isMapM fs = mapSimpleFields return fs == return fs@@ -642,8 +695,8 @@ (a,s') <- f s runStT (g a) s' -get :: Monad m => StT s m s-get = StT $ \s -> return (s, s)+getSt :: Monad m => StT s m s+getSt = StT $ \s -> return (s, s) modify :: Monad m => (s -> s) -> StT s m () modify f = StT $ \s -> return ((),f s)@@ -663,7 +716,7 @@ -- return look-ahead field or nothing if we're at the end of the file peekField :: PM (Maybe Field)-peekField = liftM listToMaybe get+peekField = liftM listToMaybe getSt -- Unconditionally discard the first field in our state. Will error when it -- reaches end of file. (Yes, that's evil.)@@ -673,12 +726,16 @@ --FIXME: this should take a ByteString, not a String. We have to be able to -- decode UTF8 and handle the BOM. +parsePackageDescription :: String -> ParseResult GenericPackageDescription+parsePackageDescription = parseGenericPackageDescription+{-# DEPRECATED parsePackageDescription "Use parseGenericPackageDescription, old name is misleading" #-}+ -- | Parses the given file into a 'GenericPackageDescription'. -- -- In Cabal 1.2 the syntax for package descriptions was changed to a format -- with sections and possibly indented property descriptions.-parsePackageDescription :: String -> ParseResult GenericPackageDescription-parsePackageDescription file = do+parseGenericPackageDescription :: String -> ParseResult GenericPackageDescription+parseGenericPackageDescription file = do -- This function is quite complex because it needs to be able to parse -- both pre-Cabal-1.2 and post-Cabal-1.2 files. Additionally, it contains@@ -702,10 +759,10 @@ head $ [ minVersionBound versionRange | Just versionRange <- [ simpleParse v | F _ "cabal-version" v <- fields0 ] ]- ++ [Version [0] []]+ ++ [mkVersion [0]] minVersionBound versionRange = case asVersionIntervals versionRange of- [] -> Version [0] []+ [] -> mkVersion [0] ((LowerBound version _, _):_) -> version handleFutureVersionParseFailure cabalVersionNeeded $ do@@ -741,14 +798,14 @@ -- 'getBody' assumes that the remaining fields only consist of -- flags, lib and exe sections.- (repos, flags, mcsetup, mlib, exes, tests, bms) <- getBody+ (repos, flags, mcsetup, mlib, sub_libs, flibs, exes, tests, bms) <- getBody pkg warnIfRest -- warn if getBody did not parse up to the last field. -- warn about using old/new syntax with wrong cabal-version: maybeWarnCabalVersion (not $ oldSyntax fields0) pkg- checkForUndefinedFlags flags mlib exes tests+ checkForUndefinedFlags flags mlib sub_libs exes tests return $ GenericPackageDescription pkg { sourceRepos = repos, setupBuildInfo = mcsetup }- flags mlib exes tests bms+ flags mlib sub_libs flibs exes tests bms where oldSyntax = all isSimpleField@@ -758,13 +815,13 @@ ++ " Tabs were used at (line,column): " ++ show tabs maybeWarnCabalVersion newsyntax pkg- | newsyntax && specVersion pkg < Version [1,2] []+ | newsyntax && specVersion pkg < mkVersion [1,2] = lift $ warning $ "A package using section syntax must specify at least\n" ++ "'cabal-version: >= 1.2'." maybeWarnCabalVersion newsyntax pkg- | not newsyntax && specVersion pkg >= Version [1,2] []+ | not newsyntax && specVersion pkg >= mkVersion [1,2] = lift $ warning $ "A package using 'cabal-version: " ++ displaySpecVersion (specVersionRaw pkg)@@ -835,7 +892,7 @@ -- warn if there's something at the end of the file warnIfRest :: PM () warnIfRest = do- s <- get+ s <- getSt case s of [] -> return () _ -> lift $ warning "Ignoring trailing declarations." -- add line no.@@ -848,17 +905,25 @@ _ -> return (reverse acc) --- -- body ::= { repo | flag | library | executable | test }+ -- at most one lib+ -- body ::= { repo | flag | library | sub library | foreign library+ -- | executable | test | bench }+ -- -- The body consists of an optional sequence of declarations of flags and- -- an arbitrary number of executables and at most one library.- getBody :: PM ([SourceRepo], [Flag]+ -- an arbitrary number of components+ --+ -- TODO: This method is long due for a rewrite to use a accumulator+ -- data type, or perhaps some more general way of balling the+ -- components up.+ getBody :: PackageDescription+ -> PM ([SourceRepo], [Flag] ,Maybe SetupBuildInfo- ,Maybe (CondTree ConfVar [Dependency] Library)- ,[(String, CondTree ConfVar [Dependency] Executable)]- ,[(String, CondTree ConfVar [Dependency] TestSuite)]- ,[(String, CondTree ConfVar [Dependency] Benchmark)])- getBody = peekField >>= \mf -> case mf of+ ,(Maybe (CondTree ConfVar [Dependency] Library))+ ,[(UnqualComponentName, CondTree ConfVar [Dependency] Library)]+ ,[(UnqualComponentName, CondTree ConfVar [Dependency] ForeignLib)]+ ,[(UnqualComponentName, CondTree ConfVar [Dependency] Executable)]+ ,[(UnqualComponentName, CondTree ConfVar [Dependency] TestSuite)]+ ,[(UnqualComponentName, CondTree ConfVar [Dependency] Benchmark)])+ getBody pkg = peekField >>= \mf -> case mf of Just (Section line_no sec_type sec_label sec_fields) | sec_type == "executable" -> do when (null sec_label) $ lift $ syntaxError line_no@@ -866,50 +931,53 @@ exename <- lift $ runP line_no "executable" parseTokenQ sec_label flds <- collectFields parseExeFields sec_fields skipField- (repos, flags, csetup, lib, exes, tests, bms) <- getBody- return (repos, flags, csetup, lib, (exename, flds): exes, tests, bms)+ (repos, flags, csetup, mlib, sub_libs, flibs, exes, tests, bms) <- getBody pkg+ return (repos, flags, csetup, mlib, sub_libs, flibs, (mkUnqualComponentName exename, flds): exes, tests, bms) + | sec_type == "foreign-library" -> do+ when (null sec_label) $ lift $ syntaxError line_no+ "'foreign-library' needs one argument (the library's name)"+ libname <- lift $ runP line_no "foreign-library" parseTokenQ sec_label+ flds <- collectFields parseForeignLibFields sec_fields++ -- Check that a valid foreign library type has been chosen. A type+ -- field may be given inside a conditional block, so we must check+ -- for that before complaining that a type field has not been given.+ -- The foreign library must always have a valid type, so we need to+ -- check both the 'then' and 'else' blocks, though the blocks need+ -- not have the same type.+ let hasType ts = foreignLibType ts /= foreignLibType mempty+ if onAllBranches hasType flds+ then do+ skipField+ (repos, flags, csetup, mlib, sub_libs, flibs, exes, tests, bms) <- getBody pkg+ return (repos, flags, csetup, mlib, sub_libs, (mkUnqualComponentName libname, flds):flibs, exes, tests, bms)+ else lift $ syntaxError line_no $+ "Foreign library \"" ++ libname+ ++ "\" is missing required field \"type\" or the field "+ ++ "is not present in all conditional branches. The "+ ++ "available test types are: "+ ++ intercalate ", " (map display knownForeignLibTypes)+ | sec_type == "test-suite" -> do when (null sec_label) $ lift $ syntaxError line_no "'test-suite' needs one argument (the test suite's name)" testname <- lift $ runP line_no "test" parseTokenQ sec_label flds <- collectFields (parseTestFields line_no) sec_fields - -- Check that a valid test suite type has been chosen. A type- -- field may be given inside a conditional block, so we must- -- check for that before complaining that a type field has not- -- been given. The test suite must always have a valid type, so- -- we need to check both the 'then' and 'else' blocks, though- -- the blocks need not have the same type.- let checkTestType ts ct =- let ts' = mappend ts $ condTreeData ct- -- If a conditional has only a 'then' block and no- -- 'else' block, then it cannot have a valid type- -- in every branch, unless the type is specified at- -- a higher level in the tree.- checkComponent (_, _, Nothing) = False- -- If a conditional has a 'then' block and an 'else'- -- block, both must specify a test type, unless the- -- type is specified higher in the tree.- checkComponent (_, t, Just e) =- checkTestType ts' t && checkTestType ts' e- -- Does the current node specify a test type?- hasTestType = testInterface ts'- /= testInterface emptyTestSuite- -- If the current level of the tree specifies a type,- -- then we are done. If not, then one of the conditional- -- branches below the current node must specify a type.- -- Each node may have multiple immediate children; we- -- only one need one to specify a type because the- -- configure step uses 'mappend' to join together the- -- results of flag resolution.- in hasTestType || any checkComponent (condTreeComponents ct)- if checkTestType emptyTestSuite flds+ -- Check that a valid test suite type has been chosen. A type field+ -- may be given inside a conditional block, so we must check for+ -- that before complaining that a type field has not been given. The+ -- test suite must always have a valid type, so we need to check+ -- both the 'then' and 'else' blocks, though the blocks need not+ -- have the same type.+ let hasType ts = testInterface ts /= testInterface mempty+ if onAllBranches hasType flds then do skipField- (repos, flags, csetup, lib, exes, tests, bms) <- getBody- return (repos, flags, csetup, lib, exes,- (testname, flds) : tests, bms)+ (repos, flags, csetup, mlib, sub_libs, flibs, exes, tests, bms) <- getBody pkg+ return (repos, flags, csetup, mlib, sub_libs, flibs, exes,+ (mkUnqualComponentName testname, flds) : tests, bms) else lift $ syntaxError line_no $ "Test suite \"" ++ testname ++ "\" is missing required field \"type\" or the field "@@ -923,41 +991,19 @@ benchname <- lift $ runP line_no "benchmark" parseTokenQ sec_label flds <- collectFields (parseBenchmarkFields line_no) sec_fields - -- Check that a valid benchmark type has been chosen. A type- -- field may be given inside a conditional block, so we must- -- check for that before complaining that a type field has not- -- been given. The benchmark must always have a valid type, so- -- we need to check both the 'then' and 'else' blocks, though- -- the blocks need not have the same type.- let checkBenchmarkType ts ct =- let ts' = mappend ts $ condTreeData ct- -- If a conditional has only a 'then' block and no- -- 'else' block, then it cannot have a valid type- -- in every branch, unless the type is specified at- -- a higher level in the tree.- checkComponent (_, _, Nothing) = False- -- If a conditional has a 'then' block and an 'else'- -- block, both must specify a benchmark type, unless the- -- type is specified higher in the tree.- checkComponent (_, t, Just e) =- checkBenchmarkType ts' t && checkBenchmarkType ts' e- -- Does the current node specify a benchmark type?- hasBenchmarkType = benchmarkInterface ts'- /= benchmarkInterface emptyBenchmark- -- If the current level of the tree specifies a type,- -- then we are done. If not, then one of the conditional- -- branches below the current node must specify a type.- -- Each node may have multiple immediate children; we- -- only one need one to specify a type because the- -- configure step uses 'mappend' to join together the- -- results of flag resolution.- in hasBenchmarkType || any checkComponent (condTreeComponents ct)- if checkBenchmarkType emptyBenchmark flds+ -- Check that a valid benchmark type has been chosen. A type field+ -- may be given inside a conditional block, so we must check for+ -- that before complaining that a type field has not been given. The+ -- benchmark must always have a valid type, so we need to check both+ -- the 'then' and 'else' blocks, though the blocks need not have the+ -- same type.+ let hasType ts = benchmarkInterface ts /= benchmarkInterface mempty+ if onAllBranches hasType flds then do skipField- (repos, flags, csetup, lib, exes, tests, bms) <- getBody- return (repos, flags, csetup, lib, exes,- tests, (benchname, flds) : bms)+ (repos, flags, csetup, mlib, sub_libs, flibs, exes, tests, bms) <- getBody pkg+ return (repos, flags, csetup, mlib, sub_libs, flibs, exes,+ tests, (mkUnqualComponentName benchname, flds) : bms) else lift $ syntaxError line_no $ "Benchmark \"" ++ benchname ++ "\" is missing required field \"type\" or the field "@@ -966,14 +1012,22 @@ ++ intercalate ", " (map display knownBenchmarkTypes) | sec_type == "library" -> do- unless (null sec_label) $ lift $- syntaxError line_no "'library' expects no argument"+ mb_libname <- if null sec_label+ then return Nothing+ -- TODO: relax this parsing so that scoping is handled+ -- correctly+ else fmap Just . lift+ $ runP line_no "library" parseTokenQ sec_label flds <- collectFields parseLibFields sec_fields skipField- (repos, flags, csetup, lib, exes, tests, bms) <- getBody- when (isJust lib) $ lift $ syntaxError line_no- "There can only be one library section in a package description."- return (repos, flags, csetup, Just flds, exes, tests, bms)+ (repos, flags, csetup, mlib, sub_libs, flibs, exes, tests, bms) <- getBody pkg+ case mb_libname of+ Just libname ->+ return (repos, flags, csetup, mlib, (mkUnqualComponentName libname, flds) : sub_libs, flibs, exes, tests, bms)+ Nothing -> do+ when (isJust mlib) $ lift $ syntaxError line_no+ "There can only be one (public) library section in a package description."+ return (repos, flags, csetup, Just flds, sub_libs, flibs, exes, tests, bms) | sec_type == "flag" -> do when (null sec_label) $ lift $@@ -981,11 +1035,11 @@ flag <- lift $ parseFields flagFieldDescrs warnUnrec- (MkFlag (FlagName (lowercase sec_label)) "" True False)+ (emptyFlag (mkFlagName (lowercase sec_label))) sec_fields skipField- (repos, flags, csetup, lib, exes, tests, bms) <- getBody- return (repos, flag:flags, csetup, lib, exes, tests, bms)+ (repos, flags, csetup, mlib, sub_libs, flibs, exes, tests, bms) <- getBody pkg+ return (repos, flag:flags, csetup, mlib, sub_libs, flibs, exes, tests, bms) | sec_type == "source-repository" -> do when (null sec_label) $ lift $ syntaxError line_no $@@ -998,19 +1052,11 @@ repo <- lift $ parseFields sourceRepoFieldDescrs warnUnrec- SourceRepo {- repoKind = kind,- repoType = Nothing,- repoLocation = Nothing,- repoModule = Nothing,- repoBranch = Nothing,- repoTag = Nothing,- repoSubdir = Nothing- }+ (emptySourceRepo kind) sec_fields skipField- (repos, flags, csetup, lib, exes, tests, bms) <- getBody- return (repo:repos, flags, csetup, lib, exes, tests, bms)+ (repos, flags, csetup, mlib, sub_libs, flibs, exes, tests, bms) <- getBody pkg+ return (repo:repos, flags, csetup, mlib, sub_libs, flibs, exes, tests, bms) | sec_type == "custom-setup" -> do unless (null sec_label) $ lift $@@ -1021,26 +1067,26 @@ mempty sec_fields skipField- (repos, flags, csetup0, lib, exes, tests, bms) <- getBody+ (repos, flags, csetup0, mlib, sub_libs, flibs, exes, tests, bms) <- getBody pkg when (isJust csetup0) $ lift $ syntaxError line_no "There can only be one 'custom-setup' section in a package description."- return (repos, flags, Just flds, lib, exes, tests, bms)+ return (repos, flags, Just flds, mlib, sub_libs, flibs, exes, tests, bms) | otherwise -> do lift $ warning $ "Ignoring unknown section type: " ++ sec_type skipField- getBody+ getBody pkg Just f@(F {}) -> do _ <- lift $ syntaxError (lineNo f) $ "Plain fields are not allowed in between stanzas: " ++ show f skipField- getBody+ getBody pkg Just f@(IfBlock {}) -> do _ <- lift $ syntaxError (lineNo f) $ "If-blocks are not allowed in between stanzas: " ++ show f skipField- getBody- Nothing -> return ([], [], Nothing, Nothing, [], [], [])+ getBody pkg+ Nothing -> return ([], [], Nothing, Nothing, [], [], [], [], []) -- Extracts all fields in a block and returns a 'CondTree'. --@@ -1054,7 +1100,7 @@ condFlds = [ f | f@IfBlock{} <- allflds ] sections = [ s | s@Section{} <- allflds ] - mapM_+ traverse_ (\(Section l n _ _) -> lift . warning $ "Unexpected section '" ++ n ++ "' on line " ++ show l) sections@@ -1074,11 +1120,11 @@ -- to check the CondTree, rather than grovel everywhere -- inside the conditional bits). deps <- liftM concat- . mapM (lift . parseConstraint)+ . traverse (lift . parseConstraint) . filter isConstraint $ simplFlds - ifs <- mapM processIfs condFlds+ ifs <- traverse processIfs condFlds return (CondNode a deps ifs) where@@ -1092,7 +1138,7 @@ [] -> return Nothing es -> do fs <- collectFields parser es return (Just fs)- return (cnd, t', e')+ return (CondBranch cnd t' e') processIfs _ = cabalBug "processIfs called with wrong field type" parseLibFields :: [Field] -> PM Library@@ -1100,9 +1146,15 @@ -- Note: we don't parse the "executable" field here, hence the tail hack. parseExeFields :: [Field] -> PM Executable- parseExeFields = lift . parseFields (tail executableFieldDescrs)+ parseExeFields = lift . parseFields executableFieldDescrs storeXFieldsExe emptyExecutable + parseForeignLibFields :: [Field] -> PM ForeignLib+ parseForeignLibFields =+ lift . parseFields foreignLibFieldDescrs+ storeXFieldsForeignLib+ emptyForeignLib+ parseTestFields :: LineNo -> [Field] -> PM TestSuite parseTestFields line fields = do x <- lift $ parseFields testSuiteFieldDescrs storeXFieldsTest@@ -1118,23 +1170,42 @@ checkForUndefinedFlags :: [Flag] -> Maybe (CondTree ConfVar [Dependency] Library) ->- [(String, CondTree ConfVar [Dependency] Executable)] ->- [(String, CondTree ConfVar [Dependency] TestSuite)] ->+ [(UnqualComponentName, CondTree ConfVar [Dependency] Library)] ->+ [(UnqualComponentName, CondTree ConfVar [Dependency] Executable)] ->+ [(UnqualComponentName, CondTree ConfVar [Dependency] TestSuite)] -> PM ()- checkForUndefinedFlags flags mlib exes tests = do+ checkForUndefinedFlags flags mlib sub_libs exes tests = do let definedFlags = map flagName flags- traverse_ (checkCondTreeFlags definedFlags) mlib- mapM_ (checkCondTreeFlags definedFlags . snd) exes- mapM_ (checkCondTreeFlags definedFlags . snd) tests+ traverse_ (checkCondTreeFlags definedFlags) (maybeToList mlib)+ traverse_ (checkCondTreeFlags definedFlags . snd) sub_libs+ traverse_ (checkCondTreeFlags definedFlags . snd) exes+ traverse_ (checkCondTreeFlags definedFlags . snd) tests checkCondTreeFlags :: [FlagName] -> CondTree ConfVar c a -> PM () checkCondTreeFlags definedFlags ct = do let fv = nub $ freeVars ct unless (all (`elem` definedFlags) fv) $ fail $ "These flags are used without having been defined: "- ++ intercalate ", " [ n | FlagName n <- fv \\ definedFlags ]+ ++ intercalate ", " [ unFlagName fn | fn <- fv \\ definedFlags ] +-- Check that a property holds on all branches of a condition tree+onAllBranches :: forall v c a. Monoid a => (a -> Bool) -> CondTree v c a -> Bool+onAllBranches p = go mempty+ where+ -- If the current level of the tree satisfies the property, then we are+ -- done. If not, then one of the conditional branches below the current node+ -- must satisfy it. Each node may have multiple immediate children; we only+ -- one need one to satisfy the property because the configure step uses+ -- 'mappend' to join together the results of flag resolution.+ go :: a -> CondTree v c a -> Bool+ go acc ct = let acc' = acc `mappend` condTreeData ct+ in p acc' || any (goBranch acc') (condTreeComponents ct) + -- Both the 'true' and the 'false' block must satisfy the property.+ goBranch :: a -> CondBranch v c a -> Bool+ goBranch _ (CondBranch _ _ Nothing) = False+ goBranch acc (CondBranch _ t (Just e)) = go acc t && go acc e+ -- | Parse a list of fields, given a list of field descriptions, -- a structure to accumulate the parsed fields, and a function -- that can decide what to do with fields which don't match any@@ -1210,60 +1281,16 @@ | lowercase inFieldName /= "executable" = liftM Just (parseBI bi) parseLib _ = return Nothing - parseExe :: [Field] -> ParseResult (String, BuildInfo)+ parseExe :: [Field] -> ParseResult (UnqualComponentName, BuildInfo) parseExe (F line inFieldName mName:bi) | lowercase inFieldName == "executable" = do bis <- parseBI bi- return (mName, bis)+ return (mkUnqualComponentName mName, bis) | otherwise = syntaxError line "expecting 'executable' at top of stanza" parseExe (_:_) = cabalBug "`parseExe' called on a non-field" parseExe [] = syntaxError 0 "error in parsing buildinfo file. Expected executable stanza" parseBI st = parseFields binfoFieldDescrs storeXFieldsBI emptyBuildInfo st---- ------------------------------------------------------------------------------ Pretty printing--writePackageDescription :: FilePath -> PackageDescription -> IO ()-writePackageDescription fpath pkg = writeUTF8File fpath (showPackageDescription pkg)----TODO: make this use section syntax--- add equivalent for GenericPackageDescription-showPackageDescription :: PackageDescription -> String-showPackageDescription pkg = render $- ppPackage pkg- $$ ppCustomFields (customFieldsPD pkg)- $$ (case library pkg of- Nothing -> empty- Just lib -> ppLibrary lib)- $$ vcat [ space $$ ppExecutable exe | exe <- executables pkg ]- where- ppPackage = ppFields pkgDescrFieldDescrs- ppLibrary = ppFields libFieldDescrs- ppExecutable = ppFields executableFieldDescrs--ppCustomFields :: [(String,String)] -> Doc-ppCustomFields flds = vcat (map ppCustomField flds)--ppCustomField :: (String,String) -> Doc-ppCustomField (name,val) = text name <> colon <+> showFreeText val--writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> IO ()-writeHookedBuildInfo fpath = writeFileAtomic fpath . BS.Char8.pack- . showHookedBuildInfo--showHookedBuildInfo :: HookedBuildInfo -> String-showHookedBuildInfo (mb_lib_bi, ex_bis) = render $- (case mb_lib_bi of- Nothing -> empty- Just bi -> ppBuildInfo bi)- $$ vcat [ space- $$ text "executable:" <+> text name- $$ ppBuildInfo bi- | (name, bi) <- ex_bis ]- where- ppBuildInfo bi = ppFields binfoFieldDescrs bi- $$ ppCustomFields (customFieldsBI bi) -- replace all tabs used as indentation with whitespace, also return where -- tabs were found
+ Distribution/PackageDescription/Parsec.hs view
@@ -0,0 +1,569 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Rank2Types #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE FlexibleContexts #-}+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.PackageDescription.Parsec+-- Copyright : Isaac Jones 2003-2005+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+-- This defined parsers and partial pretty printers for the @.cabal@ format.++module Distribution.PackageDescription.Parsec (+ -- * Package descriptions+ readGenericPackageDescription,+ parseGenericPackageDescription,+ parseGenericPackageDescriptionMaybe,++ -- ** Parsing+ ParseResult,+ runParseResult,++ -- ** Supplementary build information+ -- readHookedBuildInfo,+ -- parseHookedBuildInfo,+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import qualified Data.ByteString as BS+import Data.List (partition)+import qualified Data.Map as Map+import qualified Distribution.Compat.SnocList as SnocList+import Distribution.PackageDescription+import Distribution.PackageDescription.Parsec.FieldDescr+import Distribution.Parsec.Class (parsec)+import Distribution.Parsec.ConfVar+ (parseConditionConfVar)+import Distribution.Parsec.LexerMonad+ (LexWarning, toPWarning)+import Distribution.Parsec.Parser+import Distribution.Parsec.Types.Common+import Distribution.Parsec.Types.Field (getName)+import Distribution.Parsec.Types.FieldDescr+import Distribution.Parsec.Types.ParseResult+import Distribution.Simple.Utils+ (die', fromUTF8BS, warn)+import Distribution.Text (display)+import Distribution.Types.ForeignLib+import Distribution.Types.CondTree+import Distribution.Types.UnqualComponentName+ (UnqualComponentName, mkUnqualComponentName)+import Distribution.Verbosity (Verbosity)+import Distribution.Version+ (LowerBound (..), Version, asVersionIntervals, mkVersion,+ orLaterVersion)+import System.Directory+ (doesFileExist)+import qualified Text.Parsec as P+import qualified Text.Parsec.Error as P++-- ---------------------------------------------------------------+-- Parsing++-- | Helper combinator to do parsing plumbing for files.+--+-- Given a parser and a filename, return the parse of the file,+-- after checking if the file exists.+--+-- Argument order is chosen to encourage partial application.+readAndParseFile+ :: (BS.ByteString -> ParseResult a) -- ^ File contents to final value parser+ -> Verbosity -- ^ Verbosity level+ -> FilePath -- ^ File to read+ -> IO a+readAndParseFile parser verbosity fpath = do+ exists <- doesFileExist fpath+ unless exists $+ die' verbosity $+ "Error Parsing: file \"" ++ fpath ++ "\" doesn't exist. Cannot continue."+ bs <- BS.readFile fpath+ let (warnings, errors, result) = runParseResult (parser bs)+ traverse_ (warn verbosity . showPWarning fpath) warnings+ traverse_ (warn verbosity . showPError fpath) errors+ case result of+ Nothing -> die' verbosity $ "Failing parsing \"" ++ fpath ++ "\"."+ Just x -> return x++-- | Parse the given package file.+readGenericPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription+readGenericPackageDescription = readAndParseFile parseGenericPackageDescription++------------------------------------------------------------------------------+-- | Parses the given file into a 'GenericPackageDescription'.+--+-- In Cabal 1.2 the syntax for package descriptions was changed to a format+-- with sections and possibly indented property descriptions.+--+-- TODO: add lex warnings+parseGenericPackageDescription :: BS.ByteString -> ParseResult GenericPackageDescription+parseGenericPackageDescription bs = case readFields' bs of+ Right (fs, lexWarnings) -> parseGenericPackageDescription' lexWarnings fs+ -- TODO: better marshalling of errors+ Left perr -> parseFatalFailure (Position 0 0) (show perr)++-- | 'Maybe' variant of 'parseGenericPackageDescription'+parseGenericPackageDescriptionMaybe :: BS.ByteString -> Maybe GenericPackageDescription+parseGenericPackageDescriptionMaybe =+ trdOf3 . runParseResult . parseGenericPackageDescription+ where+ trdOf3 (_, _, x) = x++runFieldParser :: FieldParser a -> [FieldLine Position] -> ParseResult a+runFieldParser p ls = runFieldParser' pos p =<< fieldlinesToString pos ls+ where+ -- TODO: make per line lookup+ pos = case ls of+ [] -> Position 0 0+ (FieldLine pos' _ : _) -> pos'++fieldlinesToBS :: [FieldLine ann] -> BS.ByteString+fieldlinesToBS = BS.intercalate "\n" . map (\(FieldLine _ bs) -> bs)++-- TODO: Take position from FieldLine+-- TODO: Take field name+fieldlinesToString :: Position -> [FieldLine ann] -> ParseResult String+fieldlinesToString pos fls =+ let str = intercalate "\n" . map (\(FieldLine _ bs') -> fromUTF8BS bs') $ fls+ in if '\xfffd' `elem` str+ then str <$ parseWarning pos PWTUTF "Invalid UTF8 encoding"+ else pure str++runFieldParser' :: Position -> FieldParser a -> String -> ParseResult a+runFieldParser' (Position row col) p str = case P.runParser p' [] "<field>" str of+ Right (pok, ws) -> do+ -- TODO: map pos+ traverse_ (\(PWarning t pos w) -> parseWarning pos t w) ws+ pure pok+ Left err -> do+ let ppos = P.errorPos err+ -- Positions start from 1:1, not 0:0+ let epos = Position (row - 1 + P.sourceLine ppos) (col - 1 + P.sourceColumn ppos)+ let msg = P.showErrorMessages+ "or" "unknown parse error" "expecting" "unexpected" "end of input"+ (P.errorMessages err)++ parseFatalFailure epos $ msg ++ ": " ++ show str+ where+ p' = (,) <$ P.spaces <*> p <* P.spaces <* P.eof <*> P.getState++-- Note [Accumulating parser]+--+-- This parser has two "states":+-- * first we parse fields of PackageDescription+-- * then we parse sections (libraries, executables, etc)+parseGenericPackageDescription'+ :: [LexWarning]+ -> [Field Position]+ -> ParseResult GenericPackageDescription+parseGenericPackageDescription' lexWarnings fs = do+ parseWarnings' (fmap toPWarning lexWarnings)+ let (syntax, fs') = sectionizeFields fs+ gpd <- goFields emptyGpd fs'+ -- Various post checks+ maybeWarnCabalVersion syntax (packageDescription gpd)+ checkForUndefinedFlags gpd+ -- TODO: do other validations+ return gpd+ where+ -- First fields+ goFields+ :: GenericPackageDescription+ -> [Field Position]+ -> ParseResult GenericPackageDescription+ goFields gpd [] = pure gpd+ goFields gpd (Field (Name pos name) fieldLines : fields) =+ case Map.lookup name pdFieldParsers of+ -- TODO: can be more elegant+ Nothing -> fieldlinesToString pos fieldLines >>= \value -> case storeXFieldsPD name value (packageDescription gpd) of+ Nothing -> do+ parseWarning pos PWTUnknownField $ "Unknown field: " ++ show name+ goFields gpd fields+ Just pd ->+ goFields (gpd { packageDescription = pd }) fields+ Just parser -> do+ pd <- runFieldParser (parser $ packageDescription gpd) fieldLines+ let gpd' = gpd { packageDescription = pd }+ goFields gpd' fields+ goFields gpd fields@(Section _ _ _ : _) = goSections gpd fields++ -- Sections+ goSections+ :: GenericPackageDescription+ -> [Field Position]+ -> ParseResult GenericPackageDescription+ goSections gpd [] = pure gpd+ goSections gpd (Field (Name pos name) _ : fields) = do+ parseWarning pos PWTTrailingFields $ "Ignoring trailing fields after sections: " ++ show name+ goSections gpd fields+ goSections gpd (Section name args secFields : fields) = do+ gpd' <- parseSection gpd name args secFields+ goSections gpd' fields++ emptyGpd :: GenericPackageDescription+ emptyGpd = GenericPackageDescription emptyPackageDescription [] Nothing [] [] [] [] []++ pdFieldParsers :: Map FieldName (PackageDescription -> FieldParser PackageDescription)+ pdFieldParsers = Map.fromList $+ map (\x -> (fieldName x, fieldParser x)) pkgDescrFieldDescrs++ parseSection+ :: GenericPackageDescription+ -> Name Position+ -> [SectionArg Position]+ -> [Field Position]+ -> ParseResult GenericPackageDescription+ parseSection gpd (Name pos name) args fields+ | name == "library" && null args = do+ -- TODO: check that library is defined once+ l <- parseCondTree libFieldDescrs storeXFieldsLib (targetBuildDepends . libBuildInfo) emptyLibrary fields+ let gpd' = gpd { condLibrary = Just l }+ pure gpd'++ -- Sublibraries+ | name == "library" = do+ name' <- parseUnqualComponentName pos args+ lib <- parseCondTree libFieldDescrs storeXFieldsLib (targetBuildDepends . libBuildInfo) emptyLibrary fields+ -- TODO check duplicate name here?+ let gpd' = gpd { condSubLibraries = condSubLibraries gpd ++ [(name', lib)] }+ pure gpd'++ | name == "foreign-library" = do+ name' <- parseUnqualComponentName pos args+ flib <- parseCondTree foreignLibFieldDescrs storeXFieldsForeignLib (targetBuildDepends . foreignLibBuildInfo) emptyForeignLib fields+ -- TODO check duplicate name here?+ let gpd' = gpd { condForeignLibs = condForeignLibs gpd ++ [(name', flib)] }+ pure gpd'++ | name == "executable" = do+ name' <- parseUnqualComponentName pos args+ -- Note: we don't parse the "executable" field here, hence the tail hack. Duncan 2010+ exe <- parseCondTree (tail executableFieldDescrs) storeXFieldsExe (targetBuildDepends . buildInfo) emptyExecutable fields+ -- TODO check duplicate name here?+ let gpd' = gpd { condExecutables = condExecutables gpd ++ [(name', exe)] }+ pure gpd'++ | name == "test-suite" = do+ name' <- parseUnqualComponentName pos args+ testStanza <- parseCondTree testSuiteFieldDescrs storeXFieldsTest (targetBuildDepends . testStanzaBuildInfo) emptyTestStanza fields+ testSuite <- traverse (validateTestSuite pos) testStanza+ -- TODO check duplicate name here?+ let gpd' = gpd { condTestSuites = condTestSuites gpd ++ [(name', testSuite)] }+ pure gpd'++ | name == "benchmark" = do+ name' <- parseUnqualComponentName pos args+ benchStanza <- parseCondTree benchmarkFieldDescrs storeXFieldsBenchmark (targetBuildDepends . benchmarkStanzaBuildInfo) emptyBenchmarkStanza fields+ bench <- traverse (validateBenchmark pos) benchStanza+ -- TODO check duplicate name here?+ let gpd' = gpd { condBenchmarks = condBenchmarks gpd ++ [(name', bench)] }+ pure gpd'++ | name == "flag" = do+ name' <- parseName pos args+ name'' <- runFieldParser' pos parsec name' `recoverWith` mkFlagName ""+ flag <- parseFields flagFieldDescrs warnUnrec (emptyFlag name'') fields+ -- Check default flag+ let gpd' = gpd { genPackageFlags = genPackageFlags gpd ++ [flag] }+ pure gpd'++ | name == "custom-setup" && null args = do+ sbi <- parseFields setupBInfoFieldDescrs warnUnrec mempty fields+ let pd = packageDescription gpd+ -- TODO: what if already defined?+ let gpd' = gpd { packageDescription = pd { setupBuildInfo = Just sbi } }+ pure gpd'++ | name == "source-repository" = do+ kind <- case args of+ [SecArgName spos secName] ->+ runFieldParser' spos parsec (fromUTF8BS secName) `recoverWith` RepoHead+ [] -> do+ parseFailure pos $ "'source-repository' needs one argument"+ pure RepoHead+ _ -> do+ parseFailure pos $ "Invalid source-repository kind " ++ show args+ pure RepoHead+ sr <- parseFields sourceRepoFieldDescrs warnUnrec (emptySourceRepo kind) fields+ -- I want lens+ let pd = packageDescription gpd+ let srs = sourceRepos pd+ let gpd' = gpd { packageDescription = pd { sourceRepos = srs ++ [sr] } }+ pure gpd'++ | otherwise = do+ parseWarning pos PWTUnknownSection $ "Ignoring section: " ++ show name+ pure gpd++ newSyntaxVersion :: Version+ newSyntaxVersion = mkVersion [1, 2]++ maybeWarnCabalVersion :: Syntax -> PackageDescription -> ParseResult ()+ maybeWarnCabalVersion syntax pkg+ | syntax == NewSyntax && specVersion pkg < newSyntaxVersion+ = parseWarning (Position 0 0) PWTNewSyntax $+ "A package using section syntax must specify at least\n"+ ++ "'cabal-version: >= 1.2'."++ maybeWarnCabalVersion syntax pkg+ | syntax == OldSyntax && specVersion pkg >= newSyntaxVersion+ = parseWarning (Position 0 0) PWTOldSyntax $+ "A package using 'cabal-version: "+ ++ displaySpecVersion (specVersionRaw pkg)+ ++ "' must use section syntax. See the Cabal user guide for details."+ where+ displaySpecVersion (Left version) = display version+ displaySpecVersion (Right versionRange) =+ case asVersionIntervals versionRange of+ [] {- impossible -} -> display versionRange+ ((LowerBound version _, _):_) -> display (orLaterVersion version)++ maybeWarnCabalVersion _ _ = return ()++{-+ handleFutureVersionParseFailure :: Version -> ParseResult a -> ParseResult GenericPackageDescription+ handleFutureVersionParseFailure _cabalVersionNeeded _parseBody =+ error "handleFutureVersionParseFailure"+-}++ {-+ undefined (unless versionOk (warning message) >> parseBody)+ `catchParseError` \parseError -> case parseError of+ TabsError _ -> parseFail parseError+ _ | versionOk -> parseFail parseError+ | otherwise -> fail message+ where versionOk = cabalVersionNeeded <= cabalVersion+ message = "This package requires at least Cabal version "+ ++ display cabalVersionNeeded+ -}++ checkForUndefinedFlags+ :: GenericPackageDescription+ -> ParseResult ()+ checkForUndefinedFlags _gpd = pure ()+{-+ let definedFlags = map flagName flags+ mapM_ (checkCondTreeFlags definedFlags) (maybeToList mlib)+ mapM_ (checkCondTreeFlags definedFlags . snd) sub_libs+ mapM_ (checkCondTreeFlags definedFlags . snd) exes+ mapM_ (checkCondTreeFlags definedFlags . snd) tests++ checkCondTreeFlags :: [FlagName] -> CondTree ConfVar c a -> PM ()+ checkCondTreeFlags definedFlags ct = do+ let fv = nub $ freeVars ct+ unless (all (`elem` definedFlags) fv) $+ fail $ "These flags are used without having been defined: "+ ++ intercalate ", " [ n | FlagName n <- fv \\ definedFlags ]+-}++parseName :: Position -> [SectionArg Position] -> ParseResult String+parseName pos args = case args of+ [SecArgName _pos secName] ->+ pure $ fromUTF8BS secName+ [SecArgStr _pos secName] ->+ pure secName+ [] -> do+ parseFailure pos $ "name required"+ pure ""+ _ -> do+ -- TODO: pretty print args+ parseFailure pos $ "Invalid name " ++ show args+ pure ""++parseUnqualComponentName :: Position -> [SectionArg Position] -> ParseResult UnqualComponentName+parseUnqualComponentName pos args = mkUnqualComponentName <$> parseName pos args+++-- | Parse a non-recursive list of fields, given a list of field descriptions,+-- a structure to accumulate the parsed fields, and a function+-- that can decide what to do with fields which don't match any+-- of the field descriptions.+parseFields+ :: forall a.+ [FieldDescr a] -- ^ descriptions of fields we know how to parse+ -> UnknownFieldParser a -- ^ possibly do something with unrecognized fields+ -> a -- ^ accumulator+ -> [Field Position] -- ^ fields to be parsed+ -> ParseResult a+parseFields descrs _unknown = foldM go+ where+ go :: a -> Field Position -> ParseResult a+ go x (Section (Name pos name) _ _) = do+ -- Even we occur a subsection, we can continue parsing+ parseFailure pos $ "invalid subsection " ++ show name+ return x+ go x (Field (Name pos name) fieldLines) =+ case Map.lookup name fieldParsers of+ Nothing -> do+ -- TODO: use 'unknown'+ parseWarning pos PWTUnknownField $ "Unknown field: " ++ show name+ return x+ Just parser ->+ runFieldParser (parser x) fieldLines++ fieldParsers :: Map FieldName (a -> FieldParser a)+ fieldParsers = Map.fromList $+ map (\x -> (fieldName x, fieldParser x)) descrs++type C c a = CondBranch ConfVar c a++parseCondTree+ :: forall a c.+ [FieldDescr a] -- ^ Field descriptions+ -> UnknownFieldParser a -- ^ How to parse unknown fields+ -> (a -> c) -- ^ Condition extractor+ -> a -- ^ Initial value+ -> [Field Position] -- ^ Fields to parse+ -> ParseResult (CondTree ConfVar c a)+parseCondTree descs unknown cond ini = impl+ where+ impl :: [Field Position] -> ParseResult (CondTree ConfVar c a)+ impl fields = do+ (x, xs) <- goFields (ini, mempty) fields+ return $ CondNode x (cond x) (SnocList.runSnocList xs)++ goFields+ :: (a, SnocList.SnocList (C c a))+ -> [Field Position]+ -> ParseResult (a, SnocList.SnocList (C c a))+ goFields xss [] = return xss++ goFields xxs (Section (Name _pos name) tes con : fields) | name == "if" = do+ tes' <- parseConditionConfVar tes+ con' <- impl con+ -- Jump to 'else' state+ goElse tes' con' xxs fields++ goFields xxs (Section (Name pos name) _ _ : fields) = do+ -- Even we occur a subsection, we can continue parsing+ -- http://hackage.haskell.org/package/constraints-0.1/constraints.cabal+ parseWarning pos PWTInvalidSubsection $ "invalid subsection " ++ show name+ goFields xxs fields++ goFields (x, xs) (Field (Name pos name) fieldLines : fields) =+ case Map.lookup name fieldParsers of+ Nothing -> fieldlinesToString pos fieldLines >>= \value -> case unknown name value x of+ Nothing -> do+ parseWarning pos PWTUnknownField $ "Unknown field: " ++ show name+ goFields (x, xs) fields+ Just x' -> do+ goFields (x', xs) fields+ Just parser -> do+ x' <- runFieldParser (parser x) fieldLines+ goFields (x', xs) fields++ -- Try to parse else branch+ goElse+ :: Condition ConfVar+ -> CondTree ConfVar c a+ -> (a, SnocList.SnocList (C c a))+ -> [Field Position]+ -> ParseResult (a, SnocList.SnocList (C c a))+ goElse tes con (x, xs) (Section (Name pos name) secArgs alt : fields) | name == "else" = do+ when (not . null $ secArgs) $ do+ parseFailure pos $ "`else` section has section arguments " ++ show secArgs+ alt' <- case alt of+ [] -> pure Nothing+ _ -> Just <$> impl alt+ let ieb = (CondBranch tes con alt')+ goFields (x, SnocList.snoc xs ieb) fields+ goElse tes con (x, xs) fields = do+ let ieb = (CondBranch tes con Nothing)+ goFields (x, SnocList.snoc xs ieb) fields++ fieldParsers :: Map FieldName (a -> FieldParser a)+ fieldParsers = Map.fromList $+ map (\x -> (fieldName x, fieldParser x)) descs++{- Note [Accumulating parser]++In there parser, @'FieldDescr' a@ is transformed into @Map FieldName (a ->+FieldParser a)@. The weird value is used because we accumulate structure of+@a@ by folding over the fields. There are various reasons for that:++* Almost all fields are optional++* This is simple approach so declarative bi-directional format (parsing and+printing) of structure could be specified (list of @'FieldDescr' a@)++* There are surface syntax fields corresponding to single field in the file:+ @license-file@ and @license-files@++* This is quite safe approach.++When/if we re-implement the parser to support formatting preservging roundtrip+with new AST, this all need to be rewritten.+-}++-------------------------------------------------------------------------------+-- Old syntax+-------------------------------------------------------------------------------++-- | "Sectionize" an old-style Cabal file. A sectionized file has:+--+-- * all global fields at the beginning, followed by+--+-- * all flag declarations, followed by+--+-- * an optional library section, and an arbitrary number of executable+-- sections (in any order).+--+-- The current implementation just gathers all library-specific fields+-- in a library section and wraps all executable stanzas in an executable+-- section.+sectionizeFields :: [Field ann] -> (Syntax, [Field ann])+sectionizeFields fs = case classifyFields fs of+ Just fields -> (OldSyntax, convert fields)+ Nothing -> (NewSyntax, fs)+ where+ -- return 'Just' if all fields are simple fields+ classifyFields :: [Field ann] -> Maybe [(Name ann, [FieldLine ann])]+ classifyFields = traverse f+ where+ f (Field name fieldlines) = Just (name, fieldlines)+ f _ = Nothing++ trim = BS.dropWhile isSpace' . BS.reverse . BS.dropWhile isSpace' . BS.reverse+ isSpace' = (== 32)++ convert :: [(Name ann, [FieldLine ann])] -> [Field ann]+ convert fields =+ let+ toField (name, ls) = Field name ls+ -- "build-depends" is a local field now. To be backwards+ -- compatible, we still allow it as a global field in old-style+ -- package description files and translate it to a local field by+ -- adding it to every non-empty section+ (hdr0, exes0) = break ((=="executable") . getName . fst) fields+ (hdr, libfs0) = partition (not . (`elem` libFieldNames) . getName . fst) hdr0++ (deps, libfs) = partition ((== "build-depends") . getName . fst)+ libfs0++ exes = unfoldr toExe exes0+ toExe [] = Nothing+ toExe ((Name pos n, ls) : r)+ | n == "executable" =+ let (efs, r') = break ((== "executable") . getName . fst) r+ in Just (Section (Name pos "executable") [SecArgName pos $ trim $ fieldlinesToBS ls] (map toField $ deps ++ efs), r')+ toExe _ = error "unexpected input to 'toExe'"++ lib = case libfs of+ [] -> []+ ((Name pos _, _) : _) ->+ [Section (Name pos "library") [] (map toField $ deps ++ libfs)]++ in map toField hdr ++ lib ++ exes++-- | See 'sectionizeFields'.+data Syntax = OldSyntax | NewSyntax+ deriving (Eq, Show)++libFieldNames :: [FieldName]+libFieldNames = map fieldName libFieldDescrs
+ Distribution/PackageDescription/Parsec/FieldDescr.hs view
@@ -0,0 +1,619 @@+{-# LANGUAGE OverloadedStrings #-}+-- | 'GenericPackageDescription' Field descriptions+module Distribution.PackageDescription.Parsec.FieldDescr (+ -- * Package description+ pkgDescrFieldDescrs,+ storeXFieldsPD,+ -- * Library+ libFieldDescrs,+ storeXFieldsLib,+ -- * Foreign library+ foreignLibFieldDescrs,+ storeXFieldsForeignLib,+ -- * Executable+ executableFieldDescrs,+ storeXFieldsExe,+ -- * Test suite+ TestSuiteStanza (..),+ emptyTestStanza,+ testSuiteFieldDescrs,+ storeXFieldsTest,+ validateTestSuite,+ -- * Benchmark+ BenchmarkStanza (..),+ emptyBenchmarkStanza,+ benchmarkFieldDescrs,+ storeXFieldsBenchmark,+ validateBenchmark,+ -- * Flag+ flagFieldDescrs,+ -- * Source repository+ sourceRepoFieldDescrs,+ -- * Setup build info+ setupBInfoFieldDescrs,+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import qualified Data.ByteString as BS+import Data.List (dropWhileEnd)+import qualified Distribution.Compat.Parsec as Parsec+import Distribution.Compiler (CompilerFlavor (..))+import Distribution.ModuleName (ModuleName)+import Distribution.Package+import Distribution.PackageDescription+import Distribution.Types.ForeignLib+import Distribution.Parsec.Class+import Distribution.Parsec.Types.Common+import Distribution.Parsec.Types.FieldDescr+import Distribution.Parsec.Types.ParseResult+import Distribution.PrettyUtils+import Distribution.Simple.Utils (fromUTF8BS)+import Distribution.Text (disp, display)+import Text.PrettyPrint (vcat)++-------------------------------------------------------------------------------+-- common FieldParsers+-------------------------------------------------------------------------------++-- | This is /almost/ @'many' 'Distribution.Compat.Parsec.anyChar'@, but it+--+-- * trims whitespace from ends of the lines,+--+-- * converts lines with only single dot into empty line.+--+freeTextFieldParser :: FieldParser String+freeTextFieldParser = dropDotLines <$ Parsec.spaces <*> many Parsec.anyChar+ where+ -- Example package with dot lines+ -- http://hackage.haskell.org/package/copilot-cbmc-0.1/copilot-cbmc.cabal+ dropDotLines "." = "."+ dropDotLines x = intercalate "\n" . map dotToEmpty . lines $ x+ dotToEmpty x | trim' x == "." = ""+ dotToEmpty x = trim x++ trim' = dropWhileEnd (`elem` (" \t" :: String))++-------------------------------------------------------------------------------+-- PackageDescription+-------------------------------------------------------------------------------++-- TODO: other-files isn't used in any cabal file on Hackage.+pkgDescrFieldDescrs :: [FieldDescr PackageDescription]+pkgDescrFieldDescrs =+ [ simpleField "name"+ disp parsec+ packageName (\name pkg -> pkg{package=(package pkg){pkgName=name}})+ , simpleField "version"+ disp parsec+ packageVersion (\ver pkg -> pkg{package=(package pkg){pkgVersion=ver}})+ , simpleField "cabal-version"+ (either disp disp) (Left <$> parsec <|> Right <$> parsec)+ specVersionRaw (\v pkg -> pkg{specVersionRaw=v})+ , simpleField "build-type"+ (maybe mempty disp) (Just <$> parsec)+ buildType (\t pkg -> pkg{buildType=t})+ , simpleField "license"+ disp (parsecMaybeQuoted parsec)+ license (\l pkg -> pkg{license=l})+ , simpleField "license-file"+ showFilePath parsecFilePath+ (\pkg -> case licenseFiles pkg of+ [x] -> x+ _ -> "")+ (\l pkg -> pkg{licenseFiles=licenseFiles pkg ++ [l]})+ -- We have both 'license-file' and 'license-files' fields.+ -- Rather than declaring license-file to be deprecated, we will continue+ -- to allow both. The 'license-file' will continue to only allow single+ -- tokens, while 'license-files' allows multiple. On pretty-printing, we+ -- will use 'license-file' if there's just one, and use 'license-files'+ -- otherwise.+ , listField "license-files"+ showFilePath parsecFilePath+ (\pkg -> case licenseFiles pkg of+ [_] -> []+ xs -> xs)+ (\ls pkg -> pkg{licenseFiles=ls})+ , simpleField "copyright"+ showFreeText freeTextFieldParser+ copyright (\val pkg -> pkg{copyright=val})+ , simpleField "maintainer"+ showFreeText freeTextFieldParser+ maintainer (\val pkg -> pkg{maintainer=val})+ , simpleField "stability"+ showFreeText freeTextFieldParser+ stability (\val pkg -> pkg{stability=val})+ , simpleField "homepage"+ showFreeText freeTextFieldParser+ homepage (\val pkg -> pkg{homepage=val})+ , simpleField "package-url"+ showFreeText freeTextFieldParser+ pkgUrl (\val pkg -> pkg{pkgUrl=val})+ , simpleField "bug-reports"+ showFreeText freeTextFieldParser+ bugReports (\val pkg -> pkg{bugReports=val})+ , simpleField "synopsis"+ showFreeText freeTextFieldParser+ synopsis (\val pkg -> pkg{synopsis=val})+ , simpleField "description"+ showFreeText freeTextFieldParser+ description (\val pkg -> pkg{description=val})+ , simpleField "category"+ showFreeText freeTextFieldParser+ category (\val pkg -> pkg{category=val})+ , simpleField "author"+ showFreeText freeTextFieldParser+ author (\val pkg -> pkg{author=val})+ , listField "tested-with"+ showTestedWith parsecTestedWith+ testedWith (\val pkg -> pkg{testedWith=val})+ , listFieldWithSep vcat "data-files"+ showFilePath parsecFilePath+ dataFiles (\val pkg -> pkg{dataFiles=val})+ , simpleField "data-dir"+ showFilePath parsecFilePath+ dataDir (\val pkg -> pkg{dataDir=val})+ , listFieldWithSep vcat "extra-source-files"+ showFilePath parsecFilePath+ extraSrcFiles (\val pkg -> pkg{extraSrcFiles=val})+ , listFieldWithSep vcat "extra-tmp-files"+ showFilePath parsecFilePath+ extraTmpFiles (\val pkg -> pkg{extraTmpFiles=val})+ , listFieldWithSep vcat "extra-doc-files"+ showFilePath parsecFilePath+ extraDocFiles (\val pkg -> pkg{extraDocFiles=val})+ ]++-- | Store any fields beginning with "x-" in the customFields field of+-- a PackageDescription. All other fields will generate a warning.+storeXFieldsPD :: UnknownFieldParser PackageDescription+storeXFieldsPD f val pkg | beginsWithX f =+ Just pkg { customFieldsPD = customFieldsPD pkg ++ [(fromUTF8BS f, trim val)] }+storeXFieldsPD _ _ _ = Nothing++-------------------------------------------------------------------------------+-- Library+-------------------------------------------------------------------------------++libFieldDescrs :: [FieldDescr Library]+libFieldDescrs =+ [ listFieldWithSep vcat "exposed-modules" disp (parsecMaybeQuoted parsec)+ exposedModules (\mods lib -> lib{exposedModules=mods})+ , commaListFieldWithSep vcat "reexported-modules" disp parsec+ reexportedModules (\mods lib -> lib{reexportedModules=mods})++ , listFieldWithSep vcat "signatures" disp (parsecMaybeQuoted parsec)+ signatures (\mods lib -> lib{signatures=mods})++ , boolField "exposed"+ libExposed (\val lib -> lib{libExposed=val})+ ] ++ map biToLib binfoFieldDescrs+ where+ biToLib = liftField libBuildInfo (\bi lib -> lib{libBuildInfo=bi})++storeXFieldsLib :: UnknownFieldParser Library+storeXFieldsLib f val l@Library { libBuildInfo = bi } | beginsWithX f =+ Just $ l {libBuildInfo =+ bi{ customFieldsBI = customFieldsBI bi ++ [(fromUTF8BS f, trim val)]}}+storeXFieldsLib _ _ _ = Nothing++-------------------------------------------------------------------------------+-- Foreign library+-------------------------------------------------------------------------------++foreignLibFieldDescrs :: [FieldDescr ForeignLib]+foreignLibFieldDescrs =+ [ simpleField "type"+ disp parsec+ foreignLibType (\x flib -> flib { foreignLibType = x })+ , listField "options"+ disp parsec+ foreignLibOptions (\x flib -> flib { foreignLibOptions = x })+ , simpleField "lib-version-info"+ (maybe mempty disp) (Just <$> parsec)+ foreignLibVersionInfo (\x flib -> flib { foreignLibVersionInfo = x })+ , simpleField "lib-version-linux"+ (maybe mempty disp) (Just <$> parsec)+ foreignLibVersionLinux (\x flib -> flib { foreignLibVersionLinux = x })+ , listField "mod-def-file"+ showFilePath parsecFilePath+ foreignLibModDefFile (\x flib -> flib { foreignLibModDefFile = x })+ ] ++ map biToFLib binfoFieldDescrs+ where+ biToFLib = liftField foreignLibBuildInfo (\bi flib -> flib{foreignLibBuildInfo=bi})++storeXFieldsForeignLib :: UnknownFieldParser ForeignLib+storeXFieldsForeignLib f val l@ForeignLib { foreignLibBuildInfo = bi } | beginsWithX f =+ Just $ l {foreignLibBuildInfo =+ bi{ customFieldsBI = customFieldsBI bi ++ [(fromUTF8BS f, trim val)]}}+storeXFieldsForeignLib _ _ _ = Nothing++-------------------------------------------------------------------------------+-- Executable+-------------------------------------------------------------------------------++executableFieldDescrs :: [FieldDescr Executable]+executableFieldDescrs =+ [ -- note ordering: configuration must come first, for+ -- showPackageDescription.+ simpleField "executable"+ disp parsec+ exeName (\xs exe -> exe{exeName=xs})+ , simpleField "main-is"+ showFilePath parsecFilePath+ modulePath (\xs exe -> exe{modulePath=xs})++ , simpleField "scope"+ disp parsec+ exeScope (\sc exe -> exe{exeScope=sc})+ ]+ ++ map biToExe binfoFieldDescrs+ where+ biToExe = liftField buildInfo (\bi exe -> exe{buildInfo=bi})++storeXFieldsExe :: UnknownFieldParser Executable+storeXFieldsExe f val e@Executable { buildInfo = bi } | beginsWithX f =+ Just $ e {buildInfo = bi{ customFieldsBI = (fromUTF8BS f, trim val) : customFieldsBI bi}}+storeXFieldsExe _ _ _ = Nothing++-------------------------------------------------------------------------------+-- TestSuite+-------------------------------------------------------------------------------++-- | An intermediate type just used for parsing the test-suite stanza.+-- After validation it is converted into the proper 'TestSuite' type.+data TestSuiteStanza = TestSuiteStanza+ { testStanzaTestType :: Maybe TestType+ , testStanzaMainIs :: Maybe FilePath+ , testStanzaTestModule :: Maybe ModuleName+ , testStanzaBuildInfo :: BuildInfo+ }++emptyTestStanza :: TestSuiteStanza+emptyTestStanza = TestSuiteStanza Nothing Nothing Nothing mempty++testSuiteFieldDescrs :: [FieldDescr TestSuiteStanza]+testSuiteFieldDescrs =+ [ simpleField "type"+ (maybe mempty disp) (Just <$> parsec)+ testStanzaTestType (\x suite -> suite { testStanzaTestType = x })+ , simpleField "main-is"+ (maybe mempty showFilePath) (Just <$> parsecFilePath)+ testStanzaMainIs (\x suite -> suite { testStanzaMainIs = x })+ , simpleField "test-module"+ (maybe mempty disp) (Just <$> parsecMaybeQuoted parsec)+ testStanzaTestModule (\x suite -> suite { testStanzaTestModule = x })+ ]+ ++ map biToTest binfoFieldDescrs+ where+ biToTest = liftField+ testStanzaBuildInfo+ (\bi suite -> suite { testStanzaBuildInfo = bi })++storeXFieldsTest :: UnknownFieldParser TestSuiteStanza+storeXFieldsTest f val t@TestSuiteStanza { testStanzaBuildInfo = bi }+ | beginsWithX f =+ Just $ t {testStanzaBuildInfo = bi{ customFieldsBI = (fromUTF8BS f,val):customFieldsBI bi}}+storeXFieldsTest _ _ _ = Nothing++validateTestSuite :: Position -> TestSuiteStanza -> ParseResult TestSuite+validateTestSuite pos stanza = case testStanzaTestType stanza of+ Nothing -> return $+ emptyTestSuite { testBuildInfo = testStanzaBuildInfo stanza }++ Just tt@(TestTypeUnknown _ _) ->+ pure emptyTestSuite+ { testInterface = TestSuiteUnsupported tt+ , testBuildInfo = testStanzaBuildInfo stanza+ }++ Just tt | tt `notElem` knownTestTypes ->+ pure emptyTestSuite+ { testInterface = TestSuiteUnsupported tt+ , testBuildInfo = testStanzaBuildInfo stanza+ }++ Just tt@(TestTypeExe ver) -> case testStanzaMainIs stanza of+ Nothing -> do+ parseFailure pos (missingField "main-is" tt)+ pure emptyTestSuite+ Just file -> do+ when (isJust (testStanzaTestModule stanza)) $+ parseWarning pos PWTExtraBenchmarkModule (extraField "test-module" tt)+ pure emptyTestSuite+ { testInterface = TestSuiteExeV10 ver file+ , testBuildInfo = testStanzaBuildInfo stanza+ }++ Just tt@(TestTypeLib ver) -> case testStanzaTestModule stanza of+ Nothing -> do+ parseFailure pos (missingField "test-module" tt)+ pure emptyTestSuite+ Just module_ -> do+ when (isJust (testStanzaMainIs stanza)) $+ parseWarning pos PWTExtraMainIs (extraField "main-is" tt)+ pure emptyTestSuite+ { testInterface = TestSuiteLibV09 ver module_+ , testBuildInfo = testStanzaBuildInfo stanza+ }++ where+ missingField name tt = "The '" ++ name ++ "' field is required for the "+ ++ display tt ++ " test suite type."++ extraField name tt = "The '" ++ name ++ "' field is not used for the '"+ ++ display tt ++ "' test suite type."++-------------------------------------------------------------------------------+-- Benchmark+-------------------------------------------------------------------------------++-- | An intermediate type just used for parsing the benchmark stanza.+-- After validation it is converted into the proper 'Benchmark' type.+data BenchmarkStanza = BenchmarkStanza+ { benchmarkStanzaBenchmarkType :: Maybe BenchmarkType+ , benchmarkStanzaMainIs :: Maybe FilePath+ , benchmarkStanzaBenchmarkModule :: Maybe ModuleName+ , benchmarkStanzaBuildInfo :: BuildInfo+ }++emptyBenchmarkStanza :: BenchmarkStanza+emptyBenchmarkStanza = BenchmarkStanza Nothing Nothing Nothing mempty++benchmarkFieldDescrs :: [FieldDescr BenchmarkStanza]+benchmarkFieldDescrs =+ [ simpleField "type"+ (maybe mempty disp) (Just <$> parsec)+ benchmarkStanzaBenchmarkType+ (\x suite -> suite { benchmarkStanzaBenchmarkType = x })+ , simpleField "main-is"+ (maybe mempty showFilePath) (Just <$> parsecFilePath)+ benchmarkStanzaMainIs+ (\x suite -> suite { benchmarkStanzaMainIs = x })+ ]+ ++ map biToBenchmark binfoFieldDescrs+ where+ biToBenchmark = liftField benchmarkStanzaBuildInfo+ (\bi suite -> suite { benchmarkStanzaBuildInfo = bi })++storeXFieldsBenchmark :: UnknownFieldParser BenchmarkStanza+storeXFieldsBenchmark f val t@BenchmarkStanza { benchmarkStanzaBuildInfo = bi } | beginsWithX f =+ Just $ t {benchmarkStanzaBuildInfo =+ bi{ customFieldsBI = (fromUTF8BS f, trim val):customFieldsBI bi}}+storeXFieldsBenchmark _ _ _ = Nothing++validateBenchmark :: Position -> BenchmarkStanza -> ParseResult Benchmark+validateBenchmark pos stanza = case benchmarkStanzaBenchmarkType stanza of+ Nothing -> pure emptyBenchmark+ { benchmarkBuildInfo = benchmarkStanzaBuildInfo stanza }++ Just tt@(BenchmarkTypeUnknown _ _) -> pure emptyBenchmark+ { benchmarkInterface = BenchmarkUnsupported tt+ , benchmarkBuildInfo = benchmarkStanzaBuildInfo stanza+ }++ Just tt | tt `notElem` knownBenchmarkTypes -> pure emptyBenchmark+ { benchmarkInterface = BenchmarkUnsupported tt+ , benchmarkBuildInfo = benchmarkStanzaBuildInfo stanza+ }++ Just tt@(BenchmarkTypeExe ver) -> case benchmarkStanzaMainIs stanza of+ Nothing -> do+ parseFailure pos (missingField "main-is" tt)+ pure emptyBenchmark+ Just file -> do+ when (isJust (benchmarkStanzaBenchmarkModule stanza)) $+ parseWarning pos PWTExtraBenchmarkModule (extraField "benchmark-module" tt)+ pure emptyBenchmark+ { benchmarkInterface = BenchmarkExeV10 ver file+ , benchmarkBuildInfo = benchmarkStanzaBuildInfo stanza+ }++ where+ missingField name tt = "The '" ++ name ++ "' field is required for the "+ ++ display tt ++ " benchmark type."++ extraField name tt = "The '" ++ name ++ "' field is not used for the '"+ ++ display tt ++ "' benchmark type."++-------------------------------------------------------------------------------+-- BuildInfo+-------------------------------------------------------------------------------++binfoFieldDescrs :: [FieldDescr BuildInfo]+binfoFieldDescrs =+ [ boolField "buildable"+ buildable (\val binfo -> binfo{buildable=val})+ , commaListField "build-tools"+ disp parsec+ buildTools (\xs binfo -> binfo{buildTools=xs})+ , commaListField "build-tool-depends"+ disp parsec+ buildToolDepends (\xs binfo -> binfo{buildToolDepends=xs})+ , commaListFieldWithSep vcat "build-depends"+ disp parsec+ targetBuildDepends (\xs binfo -> binfo{targetBuildDepends=xs})+ , commaListFieldWithSep vcat "mixins"+ disp parsec+ mixins (\xs binfo -> binfo{mixins=xs})+ , spaceListField "cpp-options"+ showToken parsecToken'+ cppOptions (\val binfo -> binfo{cppOptions=val})+ , spaceListField "cc-options"+ showToken parsecToken'+ ccOptions (\val binfo -> binfo{ccOptions=val})+ , spaceListField "ld-options"+ showToken parsecToken'+ ldOptions (\val binfo -> binfo{ldOptions=val})+ , commaListField "pkgconfig-depends"+ disp parsec+ pkgconfigDepends (\xs binfo -> binfo{pkgconfigDepends=xs})+ , listField "frameworks"+ showToken parsecToken+ frameworks (\val binfo -> binfo{frameworks=val})+ , listField "extra-framework-dirs"+ showToken parsecFilePath+ extraFrameworkDirs (\val binfo -> binfo{extraFrameworkDirs=val})+ , listFieldWithSep vcat "c-sources"+ showFilePath parsecFilePath+ cSources (\paths binfo -> binfo{cSources=paths})+ , listFieldWithSep vcat "js-sources"+ showFilePath parsecFilePath+ jsSources (\paths binfo -> binfo{jsSources=paths})+ , simpleField "default-language"+ (maybe mempty disp) (Parsec.optionMaybe $ parsecMaybeQuoted parsec)+ defaultLanguage (\lang binfo -> binfo{defaultLanguage=lang})+ , listField "other-languages"+ disp (parsecMaybeQuoted parsec)+ otherLanguages (\langs binfo -> binfo{otherLanguages=langs})+ , listField "default-extensions"+ disp (parsecMaybeQuoted parsec)+ defaultExtensions (\exts binfo -> binfo{defaultExtensions=exts})+ , listField "other-extensions"+ disp (parsecMaybeQuoted parsec)+ otherExtensions (\exts binfo -> binfo{otherExtensions=exts})+ , listField "extensions"+ -- TODO: this is deprecated field, isn't it?+ disp (parsecMaybeQuoted parsec)+ oldExtensions (\exts binfo -> binfo{oldExtensions=exts})+ , listFieldWithSep vcat "extra-libraries"+ showToken parsecToken+ extraLibs (\xs binfo -> binfo{extraLibs=xs})+ , listFieldWithSep vcat "extra-ghci-libraries"+ showToken parsecToken+ extraGHCiLibs (\xs binfo -> binfo{extraGHCiLibs=xs})+ , listField "extra-lib-dirs"+ showFilePath parsecFilePath+ extraLibDirs (\xs binfo -> binfo{extraLibDirs=xs})+ , listFieldWithSep vcat "includes"+ showFilePath parsecFilePath+ includes (\paths binfo -> binfo{includes=paths})+ , listFieldWithSep vcat "install-includes"+ showFilePath parsecFilePath+ installIncludes (\paths binfo -> binfo{installIncludes=paths})+ , listField "include-dirs"+ showFilePath parsecFilePath+ includeDirs (\paths binfo -> binfo{includeDirs=paths})+ , listField "hs-source-dirs"+ showFilePath parsecFilePath+ hsSourceDirs (\paths binfo -> binfo{hsSourceDirs=paths})+ , deprecatedField "hs-source-dirs" $ listField "hs-source-dir"+ showFilePath parsecFilePath+ (const []) (\paths binfo -> binfo{hsSourceDirs=paths})+ , listFieldWithSep vcat "other-modules"+ disp (parsecMaybeQuoted parsec)+ otherModules (\val binfo -> binfo{otherModules=val})+ , listFieldWithSep vcat "autogen-modules"+ disp (parsecMaybeQuoted parsec)+ autogenModules (\val binfo -> binfo{autogenModules=val})+ , optsField "ghc-prof-options" GHC+ profOptions (\val binfo -> binfo{profOptions=val})+ , optsField "ghcjs-prof-options" GHCJS+ profOptions (\val binfo -> binfo{profOptions=val})+ , optsField "ghc-shared-options" GHC+ sharedOptions (\val binfo -> binfo{sharedOptions=val})+ , optsField "ghcjs-shared-options" GHCJS+ sharedOptions (\val binfo -> binfo{sharedOptions=val})+ , optsField "ghc-options" GHC+ options (\path binfo -> binfo{options=path})+ , optsField "ghcjs-options" GHCJS+ options (\path binfo -> binfo{options=path})+ , optsField "jhc-options" JHC+ options (\path binfo -> binfo{options=path})+ -- NOTE: Hugs and NHC are not supported anymore, but these fields are kept+ -- around for backwards compatibility.+ --+ -- TODO: deprecate?+ , optsField "hugs-options" Hugs+ options (const id)+ , optsField "nhc98-options" NHC+ options (const id)+ ]++{-+storeXFieldsBI :: UnknownFieldParser BuildInfo+--storeXFieldsBI (f@('x':'-':_),val) bi = Just bi{ customFieldsBI = (f,val):customFieldsBI bi }+storeXFieldsBI _ _ = Nothing+-}++-------------------------------------------------------------------------------+-- Flag+-------------------------------------------------------------------------------++flagFieldDescrs :: [FieldDescr Flag]+flagFieldDescrs =+ [ simpleField "description"+ showFreeText freeTextFieldParser+ flagDescription (\val fl -> fl{ flagDescription = val })+ , boolField "default"+ flagDefault (\val fl -> fl{ flagDefault = val })+ , boolField "manual"+ flagManual (\val fl -> fl{ flagManual = val })+ ]++-------------------------------------------------------------------------------+-- SourceRepo+-------------------------------------------------------------------------------++sourceRepoFieldDescrs :: [FieldDescr SourceRepo]+sourceRepoFieldDescrs =+ [ simpleField "type"+ (maybe mempty disp) (Just <$> parsec)+ repoType (\val repo -> repo { repoType = val })+ , simpleField "location"+ (maybe mempty showFreeText) (Just <$> freeTextFieldParser)+ repoLocation (\val repo -> repo { repoLocation = val })+ , simpleField "module"+ (maybe mempty showToken) (Just <$> parsecToken)+ repoModule (\val repo -> repo { repoModule = val })+ , simpleField "branch"+ (maybe mempty showToken) (Just <$> parsecToken)+ repoBranch (\val repo -> repo { repoBranch = val })+ , simpleField "tag"+ (maybe mempty showToken) (Just <$> parsecToken)+ repoTag (\val repo -> repo { repoTag = val })+ , simpleField "subdir"+ (maybe mempty showFilePath) (Just <$> parsecFilePath)+ repoSubdir (\val repo -> repo { repoSubdir = val })+ ]++-------------------------------------------------------------------------------+-- SetupBuildInfo+-------------------------------------------------------------------------------++setupBInfoFieldDescrs :: [FieldDescr SetupBuildInfo]+setupBInfoFieldDescrs =+ [ commaListFieldWithSep vcat "setup-depends"+ disp parsec+ setupDepends (\xs binfo -> binfo{setupDepends=xs})+ ]+++-------------------------------------------------------------------------------+-- Utilities+-------------------------------------------------------------------------------++-- | Predicate to test field names beginning with "x-"+beginsWithX :: FieldName -> Bool+beginsWithX bs = BS.take 2 bs == "x-"++-- | Mark the field as deprecated.+deprecatedField+ :: FieldName -- ^ alternative field+ -> FieldDescr a+ -> FieldDescr a+deprecatedField newFieldName fd = FieldDescr+ { fieldName = oldFieldName+ , fieldPretty = const mempty -- we don't print deprecated field+ , fieldParser = \x -> do+ parsecWarning PWTDeprecatedField $+ "The field " <> show oldFieldName <>+ " is deprecated, please use " <> show newFieldName+ fieldParser fd x+ }+ where+ oldFieldName = fieldName fd++-- Used to trim x-fields+trim :: String -> String+trim = dropWhile isSpace . dropWhileEnd isSpace
Distribution/PackageDescription/PrettyPrint.hs view
@@ -13,29 +13,46 @@ ----------------------------------------------------------------------------- module Distribution.PackageDescription.PrettyPrint (+ -- * Generic package descriptions writeGenericPackageDescription, showGenericPackageDescription,++ -- * Package descriptions+ writePackageDescription,+ showPackageDescription,++ -- ** Supplementary build information+ writeHookedBuildInfo,+ showHookedBuildInfo, ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.Dependency+import Distribution.Types.ForeignLib+import Distribution.Types.UnqualComponentName+import Distribution.Types.CondTree+ import Distribution.PackageDescription import Distribution.Simple.Utils import Distribution.ParseUtils import Distribution.PackageDescription.Parse-import Distribution.Package import Distribution.Text+import Distribution.ModuleName -import Data.Monoid as Mon (Monoid(mempty))-import Data.Maybe (isJust) import Text.PrettyPrint- (hsep, parens, char, nest, empty, isEmpty, ($$), (<+>),- colon, (<>), text, vcat, ($+$), Doc, render)+ (hsep, space, parens, char, nest, isEmpty, ($$), (<+>),+ colon, text, vcat, ($+$), Doc, render) +import qualified Data.ByteString.Lazy.Char8 as BS.Char8+ -- | Recompile with false for regression testing simplifiedPrinting :: Bool simplifiedPrinting = False -- | Writes a .cabal file from a generic package description-writeGenericPackageDescription :: FilePath -> GenericPackageDescription -> IO ()+writeGenericPackageDescription :: FilePath -> GenericPackageDescription -> NoCallStackIO () writeGenericPackageDescription fpath pkg = writeUTF8File fpath (showGenericPackageDescription pkg) -- | Writes a generic package description to a string@@ -46,10 +63,11 @@ ppGenericPackageDescription gpd = ppPackageDescription (packageDescription gpd) $+$ ppGenPackageFlags (genPackageFlags gpd)- $+$ ppLibrary (condLibrary gpd)- $+$ ppExecutables (condExecutables gpd)- $+$ ppTestSuites (condTestSuites gpd)- $+$ ppBenchmarks (condBenchmarks gpd)+ $+$ ppCondLibrary (condLibrary gpd)+ $+$ ppCondSubLibraries (condSubLibraries gpd)+ $+$ ppCondExecutables (condExecutables gpd)+ $+$ ppCondTestSuites (condTestSuites gpd)+ $+$ ppCondBenchmarks (condBenchmarks gpd) ppPackageDescription :: PackageDescription -> Doc ppPackageDescription pd = ppFields pkgDescrFieldDescrs pd@@ -57,7 +75,7 @@ $+$ ppSourceRepos (sourceRepos pd) ppSourceRepos :: [SourceRepo] -> Doc-ppSourceRepos [] = empty+ppSourceRepos [] = mempty ppSourceRepos (hd:tl) = ppSourceRepo hd $+$ ppSourceRepos tl ppSourceRepo :: SourceRepo -> Doc@@ -95,7 +113,7 @@ ppCustomFields flds = vcat [ppCustomField f | f <- flds] ppCustomField :: (String,String) -> Doc-ppCustomField (name,val) = text name <> colon <+> showFreeText val+ppCustomField (name,val) = text name <<>> colon <+> showFreeText val ppGenPackageFlags :: [Flag] -> Doc ppGenPackageFlags flds = vcat [ppFlag f | f <- flds]@@ -106,44 +124,52 @@ where fields = ppFieldsFiltered flagDefaults flagFieldDescrs flag -ppLibrary :: (Maybe (CondTree ConfVar [Dependency] Library)) -> Doc-ppLibrary Nothing = empty-ppLibrary (Just condTree) =- emptyLine $ text "library" $+$ nest indentWith (ppCondTree condTree Nothing ppLib)- where- ppLib lib Nothing = ppFieldsFiltered libDefaults libFieldDescrs lib- $$ ppCustomFields (customFieldsBI (libBuildInfo lib))- ppLib lib (Just plib) = ppDiffFields libFieldDescrs lib plib- $$ ppCustomFields (customFieldsBI (libBuildInfo lib))+ppCondLibrary :: Maybe (CondTree ConfVar [Dependency] Library) -> Doc+ppCondLibrary Nothing = mempty+ppCondLibrary (Just condTree) =+ emptyLine $ text "library"+ $+$ nest indentWith (ppCondTree condTree Nothing ppLib)+ppCondSubLibraries :: [(UnqualComponentName, CondTree ConfVar [Dependency] Library)] -> Doc+ppCondSubLibraries libs =+ vcat [emptyLine $ (text "library " <+> disp n)+ $+$ nest indentWith (ppCondTree condTree Nothing ppLib)| (n,condTree) <- libs] -ppExecutables :: [(String, CondTree ConfVar [Dependency] Executable)] -> Doc-ppExecutables exes =- vcat [emptyLine $ text ("executable " ++ n)+ppLib :: Library -> Maybe Library -> Doc+ppLib lib Nothing = ppFieldsFiltered libDefaults libFieldDescrs lib+ $$ ppCustomFields (customFieldsBI (libBuildInfo lib))+ppLib lib (Just plib) = ppDiffFields libFieldDescrs lib plib+ $$ ppCustomFields (customFieldsBI (libBuildInfo lib))++ppCondExecutables :: [(UnqualComponentName, CondTree ConfVar [Dependency] Executable)] -> Doc+ppCondExecutables exes =+ vcat [emptyLine $ (text "executable " <+> disp n) $+$ nest indentWith (ppCondTree condTree Nothing ppExe)| (n,condTree) <- exes] where- ppExe (Executable _ modulePath' buildInfo') Nothing =- (if modulePath' == "" then empty else text "main-is:" <+> text modulePath')+ ppExe (Executable _ modulePath' exeScope' buildInfo') Nothing =+ (if modulePath' == "" then mempty else text "main-is:" <+> text modulePath')+ $+$ if exeScope' == mempty then mempty else text "scope:" <+> disp exeScope' $+$ ppFieldsFiltered binfoDefaults binfoFieldDescrs buildInfo' $+$ ppCustomFields (customFieldsBI buildInfo')- ppExe (Executable _ modulePath' buildInfo')- (Just (Executable _ modulePath2 buildInfo2)) =+ ppExe (Executable _ modulePath' exeScope' buildInfo')+ (Just (Executable _ modulePath2 exeScope2 buildInfo2)) = (if modulePath' == "" || modulePath' == modulePath2- then empty else text "main-is:" <+> text modulePath')+ then mempty else text "main-is:" <+> text modulePath')+ $+$ if exeScope' == exeScope2 then mempty else text "scope:" <+> disp exeScope' $+$ ppDiffFields binfoFieldDescrs buildInfo' buildInfo2 $+$ ppCustomFields (customFieldsBI buildInfo') -ppTestSuites :: [(String, CondTree ConfVar [Dependency] TestSuite)] -> Doc-ppTestSuites suites =- emptyLine $ vcat [ text ("test-suite " ++ n)+ppCondTestSuites :: [(UnqualComponentName, CondTree ConfVar [Dependency] TestSuite)] -> Doc+ppCondTestSuites suites =+ emptyLine $ vcat [ (text "test-suite " <+> disp n) $+$ nest indentWith (ppCondTree condTree Nothing ppTestSuite) | (n,condTree) <- suites] where ppTestSuite testsuite Nothing =- maybe empty (\t -> text "type:" <+> disp t)+ maybe mempty (\t -> text "type:" <+> disp t) maybeTestType- $+$ maybe empty (\f -> text "main-is:" <+> text f)+ $+$ maybe mempty (\f -> text "main-is:" <+> text f) (testSuiteMainIs testsuite)- $+$ maybe empty (\m -> text "test-module:" <+> disp m)+ $+$ maybe mempty (\m -> text "test-module:" <+> disp m) (testSuiteModule testsuite) $+$ ppFieldsFiltered binfoDefaults binfoFieldDescrs (testBuildInfo testsuite) $+$ ppCustomFields (customFieldsBI (testBuildInfo testsuite))@@ -151,10 +177,10 @@ maybeTestType | testInterface testsuite == mempty = Nothing | otherwise = Just (testType testsuite) - ppTestSuite (TestSuite _ _ buildInfo' _)- (Just (TestSuite _ _ buildInfo2 _)) =- ppDiffFields binfoFieldDescrs buildInfo' buildInfo2- $+$ ppCustomFields (customFieldsBI buildInfo')+ ppTestSuite test' (Just test2) =+ ppDiffFields binfoFieldDescrs+ (testBuildInfo test') (testBuildInfo test2)+ $+$ ppCustomFields (customFieldsBI (testBuildInfo test')) testSuiteMainIs test = case testInterface test of TestSuiteExeV10 _ f -> Just f@@ -164,16 +190,16 @@ TestSuiteLibV09 _ m -> Just m _ -> Nothing -ppBenchmarks :: [(String, CondTree ConfVar [Dependency] Benchmark)] -> Doc-ppBenchmarks suites =- emptyLine $ vcat [ text ("benchmark " ++ n)+ppCondBenchmarks :: [(UnqualComponentName, CondTree ConfVar [Dependency] Benchmark)] -> Doc+ppCondBenchmarks suites =+ emptyLine $ vcat [ (text "benchmark " <+> disp n) $+$ nest indentWith (ppCondTree condTree Nothing ppBenchmark) | (n,condTree) <- suites] where ppBenchmark benchmark Nothing =- maybe empty (\t -> text "type:" <+> disp t)+ maybe mempty (\t -> text "type:" <+> disp t) maybeBenchmarkType- $+$ maybe empty (\f -> text "main-is:" <+> text f)+ $+$ maybe mempty (\f -> text "main-is:" <+> text f) (benchmarkMainIs benchmark) $+$ ppFieldsFiltered binfoDefaults binfoFieldDescrs (benchmarkBuildInfo benchmark) $+$ ppCustomFields (customFieldsBI (benchmarkBuildInfo benchmark))@@ -181,10 +207,10 @@ maybeBenchmarkType | benchmarkInterface benchmark == mempty = Nothing | otherwise = Just (benchmarkType benchmark) - ppBenchmark (Benchmark _ _ buildInfo' _)- (Just (Benchmark _ _ buildInfo2 _)) =- ppDiffFields binfoFieldDescrs buildInfo' buildInfo2- $+$ ppCustomFields (customFieldsBI buildInfo')+ ppBenchmark bench' (Just bench2) =+ ppDiffFields binfoFieldDescrs+ (benchmarkBuildInfo bench') (benchmarkBuildInfo bench2)+ $+$ ppCustomFields (customFieldsBI (benchmarkBuildInfo bench')) benchmarkMainIs benchmark = case benchmarkInterface benchmark of BenchmarkExeV10 _ f -> Just f@@ -193,19 +219,19 @@ ppCondition :: Condition ConfVar -> Doc ppCondition (Var x) = ppConfVar x ppCondition (Lit b) = text (show b)-ppCondition (CNot c) = char '!' <> (ppCondition c)+ppCondition (CNot c) = char '!' <<>> (ppCondition c) ppCondition (COr c1 c2) = parens (hsep [ppCondition c1, text "||" <+> ppCondition c2]) ppCondition (CAnd c1 c2) = parens (hsep [ppCondition c1, text "&&" <+> ppCondition c2]) ppConfVar :: ConfVar -> Doc-ppConfVar (OS os) = text "os" <> parens (disp os)-ppConfVar (Arch arch) = text "arch" <> parens (disp arch)-ppConfVar (Flag name) = text "flag" <> parens (ppFlagName name)-ppConfVar (Impl c v) = text "impl" <> parens (disp c <+> disp v)+ppConfVar (OS os) = text "os" <<>> parens (disp os)+ppConfVar (Arch arch) = text "arch" <<>> parens (disp arch)+ppConfVar (Flag name) = text "flag" <<>> parens (ppFlagName name)+ppConfVar (Impl c v) = text "impl" <<>> parens (disp c <+> disp v) ppFlagName :: FlagName -> Doc-ppFlagName (FlagName name) = text name+ppFlagName = text . unFlagName ppCondTree :: CondTree ConfVar [Dependency] a -> Maybe a -> (a -> Maybe a -> Doc) -> Doc ppCondTree ct@(CondNode it _ ifs) mbIt ppIt =@@ -216,8 +242,8 @@ else res where -- TODO: this ends up printing trailing spaces when combined with nest.- ppIf (c, thenTree, Just elseTree) = ppIfElse it ppIt c thenTree elseTree- ppIf (c, thenTree, Nothing) = ppIf' it ppIt c thenTree+ ppIf (CondBranch c thenTree (Just elseTree)) = ppIfElse it ppIt c thenTree elseTree+ ppIf (CondBranch c thenTree Nothing) = ppIf' it ppIt c thenTree ppIfCondition :: (Condition ConfVar) -> Doc ppIfCondition c = (emptyLine $ text "if" <+> ppCondition c)@@ -228,7 +254,7 @@ -> Doc ppIf' it ppIt c thenTree = if isEmpty thenDoc- then Mon.mempty+ then mempty else ppIfCondition c $$ nest indentWith thenDoc where thenDoc = ppCondTree thenTree (if simplifiedPrinting then (Just it) else Nothing) ppIt @@ -239,7 +265,7 @@ -> Doc ppIfElse it ppIt c thenTree elseTree = case (isEmpty thenDoc, isEmpty elseDoc) of- (True, True) -> Mon.mempty+ (True, True) -> mempty (False, True) -> ppIfCondition c $$ nest indentWith thenDoc (True, False) -> ppIfCondition (cNot c) $$ nest indentWith elseDoc (False, False) -> (ppIfCondition c $$ nest indentWith thenDoc)@@ -250,3 +276,113 @@ emptyLine :: Doc -> Doc emptyLine d = text "" $+$ d +-- | @since 1.26.0.0@+writePackageDescription :: FilePath -> PackageDescription -> NoCallStackIO ()+writePackageDescription fpath pkg = writeUTF8File fpath (showPackageDescription pkg)++--TODO: make this use section syntax+-- add equivalent for GenericPackageDescription++-- | @since 1.26.0.0@+showPackageDescription :: PackageDescription -> String+showPackageDescription pkg = render $+ ppPackageDescription pkg+ $+$ ppMaybeLibrary (library pkg)+ $+$ ppSubLibraries (subLibraries pkg)+ $+$ ppForeignLibs (foreignLibs pkg)+ $+$ ppExecutables (executables pkg)+ $+$ ppTestSuites (testSuites pkg)+ $+$ ppBenchmarks (benchmarks pkg)++ppMaybeLibrary :: Maybe Library -> Doc+ppMaybeLibrary Nothing = mempty+ppMaybeLibrary (Just lib) =+ emptyLine $ text "library"+ $+$ nest indentWith (ppFields libFieldDescrs lib)++ppSubLibraries :: [Library] -> Doc+ppSubLibraries libs = vcat [+ emptyLine $ text "library" <+> disp libname+ $+$ nest indentWith (ppFields libFieldDescrs lib)+ | lib@Library{ libName = Just libname } <- libs ]++ppForeignLibs :: [ForeignLib] -> Doc+ppForeignLibs flibs = vcat [+ emptyLine $ text "foreign library" <+> disp flibname+ $+$ nest indentWith (ppFields foreignLibFieldDescrs flib)+ | flib@ForeignLib{ foreignLibName = flibname } <- flibs ]++ppExecutables :: [Executable] -> Doc+ppExecutables exes = vcat [+ emptyLine $ text "executable" <+> disp (exeName exe)+ $+$ nest indentWith (ppFields executableFieldDescrs exe)+ | exe <- exes ]++ppTestSuites :: [TestSuite] -> Doc+ppTestSuites tests = vcat [+ emptyLine $ text "test-suite" <+> disp (testName test)+ $+$ nest indentWith (ppFields testSuiteFieldDescrs test_stanza)+ | test <- tests+ , let test_stanza+ = TestSuiteStanza {+ testStanzaTestType = Just (testSuiteInterfaceToTestType (testInterface test)),+ testStanzaMainIs = testSuiteInterfaceToMaybeMainIs (testInterface test),+ testStanzaTestModule = testSuiteInterfaceToMaybeModule (testInterface test),+ testStanzaBuildInfo = testBuildInfo test+ }+ ]++testSuiteInterfaceToTestType :: TestSuiteInterface -> TestType+testSuiteInterfaceToTestType (TestSuiteExeV10 ver _) = TestTypeExe ver+testSuiteInterfaceToTestType (TestSuiteLibV09 ver _) = TestTypeLib ver+testSuiteInterfaceToTestType (TestSuiteUnsupported ty) = ty++testSuiteInterfaceToMaybeMainIs :: TestSuiteInterface -> Maybe FilePath+testSuiteInterfaceToMaybeMainIs (TestSuiteExeV10 _ fp) = Just fp+testSuiteInterfaceToMaybeMainIs TestSuiteLibV09{} = Nothing+testSuiteInterfaceToMaybeMainIs TestSuiteUnsupported{} = Nothing++testSuiteInterfaceToMaybeModule :: TestSuiteInterface -> Maybe ModuleName+testSuiteInterfaceToMaybeModule (TestSuiteLibV09 _ mod_name) = Just mod_name+testSuiteInterfaceToMaybeModule TestSuiteExeV10{} = Nothing+testSuiteInterfaceToMaybeModule TestSuiteUnsupported{} = Nothing++ppBenchmarks :: [Benchmark] -> Doc+ppBenchmarks benchs = vcat [+ emptyLine $ text "benchmark" <+> disp (benchmarkName bench)+ $+$ nest indentWith (ppFields benchmarkFieldDescrs bench_stanza)+ | bench <- benchs+ , let bench_stanza = BenchmarkStanza {+ benchmarkStanzaBenchmarkType = Just (benchmarkInterfaceToBenchmarkType (benchmarkInterface bench)),+ benchmarkStanzaMainIs = benchmarkInterfaceToMaybeMainIs (benchmarkInterface bench),+ benchmarkStanzaBenchmarkModule = Nothing,+ benchmarkStanzaBuildInfo = benchmarkBuildInfo bench+ }]++benchmarkInterfaceToBenchmarkType :: BenchmarkInterface -> BenchmarkType+benchmarkInterfaceToBenchmarkType (BenchmarkExeV10 ver _) = BenchmarkTypeExe ver+benchmarkInterfaceToBenchmarkType (BenchmarkUnsupported ty) = ty++benchmarkInterfaceToMaybeMainIs :: BenchmarkInterface -> Maybe FilePath+benchmarkInterfaceToMaybeMainIs (BenchmarkExeV10 _ fp) = Just fp+benchmarkInterfaceToMaybeMainIs BenchmarkUnsupported{} = Nothing+++-- | @since 1.26.0.0@+writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> NoCallStackIO ()+writeHookedBuildInfo fpath = writeFileAtomic fpath . BS.Char8.pack+ . showHookedBuildInfo++-- | @since 1.26.0.0@+showHookedBuildInfo :: HookedBuildInfo -> String+showHookedBuildInfo (mb_lib_bi, ex_bis) = render $+ (case mb_lib_bi of+ Nothing -> mempty+ Just bi -> ppBuildInfo bi)+ $$ vcat [ space+ $$ (text "executable:" <+> disp name)+ $$ ppBuildInfo bi+ | (name, bi) <- ex_bis ]+ where+ ppBuildInfo bi = ppFields binfoFieldDescrs bi+ $$ ppCustomFields (customFieldsBI bi)
Distribution/ParseUtils.hs view
@@ -19,6 +19,7 @@ -- This module is meant to be local-only to Distribution... {-# OPTIONS_HADDOCK hide #-}+{-# LANGUAGE Rank2Types #-} module Distribution.ParseUtils ( LineNo, PError(..), PWarning(..), locatedErrorMsg, syntaxError, warning, runP, runE, ParseResult(..), catchParseError, parseFail, showPWarning,@@ -27,44 +28,47 @@ showFields, showSingleNamedField, showSimpleSingleNamedField, parseFields, parseFieldsFlat, parseFilePathQ, parseTokenQ, parseTokenQ',- parseModuleNameQ, parseBuildTool, parsePkgconfigDependency,- parseOptVersion, parsePackageNameQ, parseVersionRangeQ,+ parseModuleNameQ,+ parseOptVersion, parsePackageName, parseTestedWithQ, parseLicenseQ, parseLanguageQ, parseExtensionQ, parseSepList, parseCommaList, parseOptCommaList, showFilePath, showToken, showTestedWith, showFreeText, parseFreeText, field, simpleField, listField, listFieldWithSep, spaceListField, commaListField, commaListFieldWithSep, commaNewLineListField,- optsField, liftField, boolField, parseQuoted, indentWith,+ optsField, liftField, boolField, parseQuoted, parseMaybeQuoted, indentWith,+ readPToMaybe, UnrecFieldParser, warnUnrec, ignoreUnrec, ) where +import Prelude ()+import Distribution.Compat.Prelude hiding (get)+ import Distribution.Compiler import Distribution.License import Distribution.Version-import Distribution.Package import Distribution.ModuleName import qualified Distribution.Compat.MonadFail as Fail import Distribution.Compat.ReadP as ReadP hiding (get) import Distribution.ReadE import Distribution.Text-import Distribution.Simple.Utils+import Distribution.Utils.Generic+import Distribution.PrettyUtils import Language.Haskell.Extension -import Text.PrettyPrint hiding (braces)-import Data.Char (isSpace, toLower, isAlphaNum, isDigit)-import Data.Maybe (fromMaybe)+import Text.PrettyPrint+ ( Doc, render, style, renderStyle+ , text, colon, nest, punctuate, comma, sep+ , fsep, hsep, isEmpty, vcat, mode, Mode (..)+ , ($+$), (<+>)+ ) import Data.Tree as Tree (Tree(..), flatten) import qualified Data.Map as Map-import Control.Monad (foldM, ap)-import Control.Applicative as AP (Applicative(..)) import System.FilePath (normalise)-import Data.List (sortBy) -- ----------------------------------------------------------------------------- type LineNo = Int-type Separator = ([Doc] -> Doc) data PError = AmbiguousParse String LineNo | NoParse String LineNo@@ -96,7 +100,7 @@ instance Monad ParseResult where- return = AP.pure+ return = pure ParseFailed err >>= _ = ParseFailed err ParseOk ws x >>= f = case f x of ParseFailed err -> ParseFailed err@@ -268,9 +272,9 @@ ppField :: String -> Doc -> Doc ppField name fielddoc- | isEmpty fielddoc = empty- | name `elem` nestedFields = text name <> colon $+$ nest indentWith fielddoc- | otherwise = text name <> colon <+> fielddoc+ | isEmpty fielddoc = mempty+ | name `elem` nestedFields = text name <<>> colon $+$ nest indentWith fielddoc+ | otherwise = text name <<>> colon <+> fielddoc where nestedFields = [ "description"@@ -285,6 +289,7 @@ , "includes" , "install-includes" , "other-modules"+ , "autogen-modules" , "depends" ] @@ -384,14 +389,14 @@ readFields :: String -> ParseResult [Field] readFields input = ifelse- =<< mapM (mkField 0)+ =<< traverse (mkField 0) =<< mkTree tokens where ls = (lines . normaliseLineEndings) input tokens = (concatMap tokeniseLine . trimLines) ls readFieldsFlat :: String -> ParseResult [Field]-readFieldsFlat input = mapM (mkField 0)+readFieldsFlat input = traverse (mkField 0) =<< mkTree tokens where ls = (lines . normaliseLineEndings) input tokens = (concatMap tokeniseLineFlat . trimLines) ls@@ -565,7 +570,7 @@ then tabsError n else return $ F n (map toLower name) (fieldValue rest' followingLines)- rest' -> do ts' <- mapM (mkField (d+1)) ts+ rest' -> do ts' <- traverse (mkField (d+1)) ts return (Section n (map toLower name) rest' ts') where fieldValue firstLine followingLines = let firstLine' = trimLeading firstLine@@ -607,7 +612,7 @@ -- |parse a module name parseModuleNameQ :: ReadP r ModuleName-parseModuleNameQ = parseQuoted parse <++ parse+parseModuleNameQ = parseMaybeQuoted parse parseFilePathQ :: ReadP r FilePath parseFilePathQ = parseTokenQ@@ -620,46 +625,24 @@ skipSpaces return res -parseBuildTool :: ReadP r Dependency-parseBuildTool = do name <- parseBuildToolNameQ- ver <- betweenSpaces $- parseVersionRangeQ <++ return anyVersion- return $ Dependency name ver--parseBuildToolNameQ :: ReadP r PackageName-parseBuildToolNameQ = parseQuoted parseBuildToolName <++ parseBuildToolName---- like parsePackageName but accepts symbols in components-parseBuildToolName :: ReadP r PackageName-parseBuildToolName = do ns <- sepBy1 component (ReadP.char '-')- return (PackageName (intercalate "-" ns))- where component = do- cs <- munch1 (\c -> isAlphaNum c || c == '+' || c == '_')- if all isDigit cs then pfail else return cs---- pkg-config allows versions and other letters in package names,--- eg "gtk+-2.0" is a valid pkg-config package _name_.--- It then has a package version number like 2.10.13-parsePkgconfigDependency :: ReadP r Dependency-parsePkgconfigDependency = do name <- munch1- (\c -> isAlphaNum c || c `elem` "+-._")- ver <- betweenSpaces $- parseVersionRangeQ <++ return anyVersion- return $ Dependency (PackageName name) ver--parsePackageNameQ :: ReadP r PackageName-parsePackageNameQ = parseQuoted parse <++ parse--parseVersionRangeQ :: ReadP r VersionRange-parseVersionRangeQ = parseQuoted parse <++ parse+parsePackageName :: ReadP r String+parsePackageName = do+ ns <- sepBy1 component (char '-')+ return $ intercalate "-" ns+ where+ component = do+ cs <- munch1 isAlphaNum+ if all isDigit cs then pfail else return cs+ -- each component must contain an alphabetic character, to avoid+ -- ambiguity in identifiers like foo-1 (the 1 is the version number). parseOptVersion :: ReadP r Version-parseOptVersion = parseQuoted ver <++ ver+parseOptVersion = parseMaybeQuoted ver where ver :: ReadP r Version- ver = parse <++ return (Version [] [])+ ver = parse <++ return nullVersion parseTestedWithQ :: ReadP r (CompilerFlavor,VersionRange)-parseTestedWithQ = parseQuoted tw <++ tw+parseTestedWithQ = parseMaybeQuoted tw where tw :: ReadP r (CompilerFlavor,VersionRange) tw = do compiler <- parseCompilerFlavorCompat@@ -667,7 +650,7 @@ return (compiler,version) parseLicenseQ :: ReadP r License-parseLicenseQ = parseQuoted parse <++ parse+parseLicenseQ = parseMaybeQuoted parse -- urgh, we can't define optQuotes :: ReadP r a -> ReadP r a -- because the "compat" version of ReadP isn't quite powerful enough. In@@ -675,10 +658,10 @@ -- Hence the trick above to make 'lic' polymorphic. parseLanguageQ :: ReadP r Language-parseLanguageQ = parseQuoted parse <++ parse+parseLanguageQ = parseMaybeQuoted parse parseExtensionQ :: ReadP r Extension-parseExtensionQ = parseQuoted parse <++ parse+parseExtensionQ = parseMaybeQuoted parse parseHaskellString :: ReadP r String parseHaskellString = readS_to_P reads@@ -710,41 +693,12 @@ parseQuoted :: ReadP r a -> ReadP r a parseQuoted = between (ReadP.char '"') (ReadP.char '"') +parseMaybeQuoted :: (forall r. ReadP r a) -> ReadP r' a+parseMaybeQuoted p = parseQuoted p <++ p+ parseFreeText :: ReadP.ReadP s String parseFreeText = ReadP.munch (const True) --- ----------------------------------------------- ** Pretty printing--showFilePath :: FilePath -> Doc-showFilePath "" = empty-showFilePath x = showToken x--showToken :: String -> Doc-showToken str- | not (any dodgy str) &&- not (null str) = text str- | otherwise = text (show str)- where dodgy c = isSpace c || c == ','--showTestedWith :: (CompilerFlavor,VersionRange) -> Doc-showTestedWith (compiler, version) = text (show compiler) <+> disp version---- | Pretty-print free-format text, ensuring that it is vertically aligned,--- and with blank lines replaced by dots for correct re-parsing.-showFreeText :: String -> Doc-showFreeText "" = empty-showFreeText s = vcat [text (if null l then "." else l) | l <- lines_ s]---- | 'lines_' breaks a string up into a list of strings at newline--- characters. The resulting strings do not contain newlines.-lines_ :: String -> [String]-lines_ [] = [""]-lines_ s = let (l, s') = break (== '\n') s- in l : case s' of- [] -> []- (_:s'') -> lines_ s''---- | the indentation used for pretty printing-indentWith :: Int-indentWith = 4+readPToMaybe :: ReadP a a -> String -> Maybe a+readPToMaybe p str = listToMaybe [ r | (r,s) <- readP_to_S p str+ , all isSpace s ]
+ Distribution/Parsec/Class.hs view
@@ -0,0 +1,482 @@+{-# LANGUAGE FlexibleContexts #-}+module Distribution.Parsec.Class (+ Parsec(..),+ -- * Warnings+ parsecWarning,+ -- * Utilities+ parsecTestedWith,+ parsecToken,+ parsecToken',+ parsecFilePath,+ parsecQuoted,+ parsecMaybeQuoted,+ parsecCommaList,+ parsecOptCommaList,+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Data.Functor.Identity (Identity)+import qualified Distribution.Compat.Parsec as P+import Distribution.Parsec.Types.Common+ (PWarnType (..), PWarning (..), Position (..))+import qualified Text.Parsec as Parsec+import qualified Text.Parsec.Language as Parsec+import qualified Text.Parsec.Token as Parsec++-- Instances++import Distribution.Compiler+ (CompilerFlavor (..), classifyCompilerFlavor)+import Distribution.License (License (..))+import Distribution.ModuleName (ModuleName)+import qualified Distribution.ModuleName as ModuleName+import Distribution.System+ (Arch (..), ClassificationStrictness (..), OS (..),+ classifyArch, classifyOS)+import Distribution.Text (display)+import Distribution.Types.BenchmarkType+ (BenchmarkType (..))+import Distribution.Types.BuildType (BuildType (..))+import Distribution.Types.Dependency (Dependency (..))+import Distribution.Types.ExeDependency (ExeDependency (..))+import Distribution.Types.LegacyExeDependency (LegacyExeDependency (..))+import Distribution.Types.PkgconfigDependency (PkgconfigDependency (..))+import Distribution.Types.PkgconfigName+ (PkgconfigName, mkPkgconfigName)+import Distribution.Types.GenericPackageDescription (FlagName, mkFlagName)+import Distribution.Types.ModuleReexport+ (ModuleReexport (..))+import Distribution.Types.SourceRepo+ (RepoKind, RepoType, classifyRepoKind, classifyRepoType)+import Distribution.Types.TestType (TestType (..))+import Distribution.Types.ForeignLib (LibVersionInfo, mkLibVersionInfo)+import Distribution.Types.ForeignLibType (ForeignLibType (..))+import Distribution.Types.ForeignLibOption (ForeignLibOption (..))+import Distribution.Types.ModuleRenaming+import Distribution.Types.IncludeRenaming+import Distribution.Types.Mixin+import Distribution.Types.PackageName+ (PackageName, mkPackageName)+import Distribution.Types.UnqualComponentName+ (UnqualComponentName, mkUnqualComponentName)+import Distribution.Types.ExecutableScope+import Distribution.Version+ (Version, VersionRange (..), anyVersion, earlierVersion,+ intersectVersionRanges, laterVersion, majorBoundVersion,+ mkVersion, noVersion, orEarlierVersion, orLaterVersion,+ thisVersion, unionVersionRanges, withinVersion)+import Language.Haskell.Extension+ (Extension, Language, classifyExtension, classifyLanguage)++-------------------------------------------------------------------------------+-- Class+-------------------------------------------------------------------------------++-- |+--+-- TODO: implementation details: should be careful about consuming trailing whitespace?+-- Should we always consume it?+class Parsec a where+ parsec :: P.Stream s Identity Char => P.Parsec s [PWarning] a++ -- | 'parsec' /could/ consume trailing spaces, this function /must/ consume.+ lexemeParsec :: P.Stream s Identity Char => P.Parsec s [PWarning] a+ lexemeParsec = parsec <* P.spaces++parsecWarning :: PWarnType -> String -> P.Parsec s [PWarning] ()+parsecWarning t w =+ Parsec.modifyState (PWarning t (Position 0 0) w :)++-------------------------------------------------------------------------------+-- Instances+-------------------------------------------------------------------------------++-- TODO: use lexemeParsec++-- TODO avoid String+parsecUnqualComponentName :: P.Stream s Identity Char => P.Parsec s [PWarning] String+parsecUnqualComponentName = intercalate "-" <$> P.sepBy1 component (P.char '-')+ where+ component :: P.Stream s Identity Char => P.Parsec s [PWarning] String+ component = do+ cs <- P.munch1 isAlphaNum+ if all isDigit cs+ then fail "all digits in portion of unqualified component name"+ else return cs++instance Parsec UnqualComponentName where+ parsec = mkUnqualComponentName <$> parsecUnqualComponentName++instance Parsec PackageName where+ parsec = mkPackageName <$> parsecUnqualComponentName++instance Parsec PkgconfigName where+ parsec = mkPkgconfigName <$> P.munch1 (\c -> isAlphaNum c || c `elem` "+-._")++instance Parsec ModuleName where+ parsec = ModuleName.fromComponents <$> P.sepBy1 component (P.char '.')+ where+ component = do+ c <- P.satisfy isUpper+ cs <- P.munch validModuleChar+ return (c:cs)++ validModuleChar :: Char -> Bool+ validModuleChar c = isAlphaNum c || c == '_' || c == '\''++instance Parsec FlagName where+ parsec = mkFlagName . map toLower . intercalate "-" <$> P.sepBy1 component (P.char '-')+ where+ -- http://hackage.haskell.org/package/cabal-debian-4.24.8/cabal-debian.cabal+ -- has flag with all digit component: pretty-112+ component :: P.Stream s Identity Char => P.Parsec s [PWarning] String+ component = P.munch1 (\c -> isAlphaNum c || c `elem` "_")++instance Parsec Dependency where+ parsec = do+ name <- lexemeParsec+ ver <- parsec <|> pure anyVersion+ return (Dependency name ver)++instance Parsec ExeDependency where+ parsec = do+ name <- lexemeParsec+ _ <- P.char ':'+ exe <- lexemeParsec+ ver <- parsec <|> pure anyVersion+ return (ExeDependency name exe ver)++instance Parsec LegacyExeDependency where+ parsec = do+ name <- parsecMaybeQuoted nameP+ P.spaces+ verRange <- parsecMaybeQuoted parsec <|> pure anyVersion+ pure $ LegacyExeDependency name verRange+ where+ nameP = intercalate "-" <$> P.sepBy1 component (P.char '-')+ component = do+ cs <- P.munch1 (\c -> isAlphaNum c || c == '+' || c == '_')+ if all isDigit cs then fail "invalid component" else return cs++instance Parsec PkgconfigDependency where+ parsec = do+ name <- parsec+ P.spaces+ verRange <- parsec <|> pure anyVersion+ pure $ PkgconfigDependency name verRange++instance Parsec Version where+ parsec = mkVersion <$>+ P.sepBy1 P.integral (P.char '.')+ <* tags+ where+ tags = do+ ts <- P.optionMaybe $ some $ P.char '-' *> some (P.satisfy isAlphaNum)+ case ts of+ Nothing -> pure ()+ -- TODO: make this warning severe+ Just _ -> parsecWarning PWTVersionTag "version with tags"++-- TODO: this is not good parsec code+-- use lexer, also see D.P.ConfVar+instance Parsec VersionRange where+ parsec = expr+ where+ expr = do P.spaces+ t <- term+ P.spaces+ (do _ <- P.string "||"+ P.spaces+ e <- expr+ return (unionVersionRanges t e)+ <|>+ return t)+ term = do f <- factor+ P.spaces+ (do _ <- P.string "&&"+ P.spaces+ t <- term+ return (intersectVersionRanges f t)+ <|>+ return f)+ factor = P.choice+ $ parens expr+ : parseAnyVersion+ : parseNoVersion+ : parseWildcardRange+ : map parseRangeOp rangeOps+ parseAnyVersion = P.string "-any" >> return anyVersion+ parseNoVersion = P.string "-none" >> return noVersion++ parseWildcardRange = P.try $ do+ _ <- P.string "=="+ P.spaces+ branch <- some (P.integral <* P.char '.')+ _ <- P.char '*'+ return (withinVersion (mkVersion branch))++ parens p = P.between+ (P.char '(' >> P.spaces)+ (P.char ')' >> P.spaces)+ (do a <- p+ P.spaces+ return (VersionRangeParens a))++ -- TODO: make those non back-tracking+ parseRangeOp (s,f) = P.try (P.string s *> P.spaces *> fmap f parsec)+ rangeOps = [ ("<", earlierVersion),+ ("<=", orEarlierVersion),+ (">", laterVersion),+ (">=", orLaterVersion),+ ("^>=", majorBoundVersion),+ ("==", thisVersion) ]++instance Parsec LibVersionInfo where+ parsec = do+ c <- P.integral+ (r, a) <- P.option (0,0) $ do+ _ <- P.char ':'+ r <- P.integral+ a <- P.option 0 $ do+ _ <- P.char ':'+ P.integral+ return (r,a)+ return $ mkLibVersionInfo (c,r,a)++instance Parsec Language where+ parsec = classifyLanguage <$> P.munch1 isAlphaNum++instance Parsec Extension where+ parsec = classifyExtension <$> P.munch1 isAlphaNum++instance Parsec RepoType where+ parsec = classifyRepoType <$> P.munch1 isIdent++instance Parsec RepoKind where+ parsec = classifyRepoKind <$> P.munch1 isIdent++instance Parsec License where+ parsec = do+ name <- P.munch1 isAlphaNum+ version <- P.optionMaybe (P.char '-' *> parsec)+ return $! case (name, version :: Maybe Version) of+ ("GPL", _ ) -> GPL version+ ("LGPL", _ ) -> LGPL version+ ("AGPL", _ ) -> AGPL version+ ("BSD2", Nothing) -> BSD2+ ("BSD3", Nothing) -> BSD3+ ("BSD4", Nothing) -> BSD4+ ("ISC", Nothing) -> ISC+ ("MIT", Nothing) -> MIT+ ("MPL", Just version') -> MPL version'+ ("Apache", _ ) -> Apache version+ ("PublicDomain", Nothing) -> PublicDomain+ ("AllRightsReserved", Nothing) -> AllRightsReserved+ ("OtherLicense", Nothing) -> OtherLicense+ _ -> UnknownLicense $ name +++ maybe "" (('-':) . display) version++instance Parsec BuildType where+ parsec = do+ name <- P.munch1 isAlphaNum+ return $ case name of+ "Simple" -> Simple+ "Configure" -> Configure+ "Custom" -> Custom+ "Make" -> Make+ _ -> UnknownBuildType name++instance Parsec TestType where+ parsec = stdParse $ \ver name -> case name of+ "exitcode-stdio" -> TestTypeExe ver+ "detailed" -> TestTypeLib ver+ _ -> TestTypeUnknown name ver++instance Parsec BenchmarkType where+ parsec = stdParse $ \ver name -> case name of+ "exitcode-stdio" -> BenchmarkTypeExe ver+ _ -> BenchmarkTypeUnknown name ver++instance Parsec ForeignLibType where+ parsec = do+ name <- P.munch1 (\c -> isAlphaNum c || c == '-')+ return $ case name of+ "native-shared" -> ForeignLibNativeShared+ "native-static" -> ForeignLibNativeStatic+ _ -> ForeignLibTypeUnknown++instance Parsec ForeignLibOption where+ parsec = do+ name <- P.munch1 (\c -> isAlphaNum c || c == '-')+ case name of+ "standalone" -> return ForeignLibStandalone+ _ -> fail "unrecognized foreign-library option"++instance Parsec OS where+ parsec = classifyOS Compat <$> parsecIdent++instance Parsec Arch where+ parsec = classifyArch Strict <$> parsecIdent++instance Parsec CompilerFlavor where+ parsec = classifyCompilerFlavor <$> component+ where+ component :: P.Stream s Identity Char => P.Parsec s [PWarning] String+ component = do+ cs <- P.munch1 isAlphaNum+ if all isDigit cs then fail "all digits compiler name" else return cs++instance Parsec ModuleReexport where+ parsec = do+ mpkgname <- P.optionMaybe (P.try $ parsec <* P.char ':')+ origname <- parsec+ newname <- P.option origname $ P.try $ do+ P.spaces+ _ <- P.string "as"+ P.spaces+ parsec+ return (ModuleReexport mpkgname origname newname)++instance Parsec ModuleRenaming where+ -- NB: try not necessary as the first token is obvious+ parsec = P.choice [ parseRename, parseHiding, return DefaultRenaming ]+ where+ parseRename = do+ rns <- P.between (P.char '(') (P.char ')') parseList+ P.spaces+ return (ModuleRenaming rns)+ parseHiding = do+ _ <- P.string "hiding"+ P.spaces+ hides <- P.between (P.char '(') (P.char ')')+ (P.sepBy parsec (P.char ',' >> P.spaces))+ return (HidingRenaming hides)+ parseList =+ P.sepBy parseEntry (P.char ',' >> P.spaces)+ parseEntry = do+ orig <- parsec+ P.spaces+ P.option (orig, orig) $ do+ _ <- P.string "as"+ P.spaces+ new <- parsec+ P.spaces+ return (orig, new)++instance Parsec IncludeRenaming where+ parsec = do+ prov_rn <- parsec+ req_rn <- P.option defaultRenaming $ P.try $ do+ P.spaces+ _ <- P.string "requires"+ P.spaces+ parsec+ return (IncludeRenaming prov_rn req_rn)++instance Parsec Mixin where+ parsec = do+ mod_name <- parsec+ P.spaces+ incl <- parsec+ return (Mixin mod_name incl)++instance Parsec ExecutableScope where+ parsec = do+ name <- P.munch1 (\c -> isAlphaNum c || c == '-')+ return $ case name of+ "public" -> ExecutablePublic+ "private" -> ExecutablePrivate+ _ -> ExecutableScopeUnknown++-------------------------------------------------------------------------------+-- Utilities+-------------------------------------------------------------------------------++isIdent :: Char -> Bool+isIdent c = isAlphaNum c || c == '_' || c == '-'++parsecTestedWith :: P.Stream s Identity Char => P.Parsec s [PWarning] (CompilerFlavor, VersionRange)+parsecTestedWith = do+ name <- lexemeParsec+ ver <- parsec <|> pure anyVersion+ return (name, ver)++parsecToken :: P.Stream s Identity Char => P.Parsec s [PWarning] String+parsecToken = parsecHaskellString <|> (P.munch1 (\x -> not (isSpace x) && x /= ',') P.<?> "identifier" )++parsecToken' :: P.Stream s Identity Char => P.Parsec s [PWarning] String+parsecToken' = parsecHaskellString <|> (P.munch1 (not . isSpace) P.<?> "token")++parsecFilePath :: P.Stream s Identity Char => P.Parsec s [PWarning] String+parsecFilePath = parsecToken++-- | Parse a benchmark/test-suite types.+stdParse+ :: P.Stream s Identity Char+ => (Version -> String -> a)+ -> P.Parsec s [PWarning] a+stdParse f = do+ -- TODO: this backtracks+ cs <- some $ P.try (component <* P.char '-')+ ver <- parsec+ let name = map toLower (intercalate "-" cs)+ return $! f ver name+ where+ component = do+ cs <- P.munch1 isAlphaNum+ if all isDigit cs then fail "all digit component" else return cs+ -- each component must contain an alphabetic character, to avoid+ -- ambiguity in identifiers like foo-1 (the 1 is the version number).++parsecCommaList+ :: P.Stream s Identity Char+ => P.Parsec s [PWarning] a+ -> P.Parsec s [PWarning] [a]+parsecCommaList p = P.sepBy (p <* P.spaces) (P.char ',' *> P.spaces)++parsecOptCommaList+ :: P.Stream s Identity Char+ => P.Parsec s [PWarning] a+ -> P.Parsec s [PWarning] [a]+parsecOptCommaList p = P.sepBy (p <* P.spaces) (P.optional comma)+ where+ comma = P.char ',' *> P.spaces+++-- | Content isn't unquoted+parsecQuoted+ :: P.Stream s Identity Char+ => P.Parsec s [PWarning] a+ -> P.Parsec s [PWarning] a+parsecQuoted = P.between (P.char '"') (P.char '"')++-- | @parsecMaybeQuoted p = 'parsecQuoted' p <|> p@.+parsecMaybeQuoted+ :: P.Stream s Identity Char+ => P.Parsec s [PWarning] a+ -> P.Parsec s [PWarning] a+parsecMaybeQuoted p = parsecQuoted p <|> p++parsecHaskellString :: P.Stream s Identity Char => P.Parsec s [PWarning] String+parsecHaskellString = Parsec.stringLiteral $ Parsec.makeTokenParser Parsec.emptyDef+ { Parsec.commentStart = "{-"+ , Parsec.commentEnd = "-}"+ , Parsec.commentLine = "--"+ , Parsec.nestedComments = True+ , Parsec.identStart = P.satisfy isAlphaNum+ , Parsec.identLetter = P.satisfy isAlphaNum <|> P.oneOf "_'"+ , Parsec.opStart = opl+ , Parsec.opLetter = opl+ , Parsec.reservedOpNames= []+ , Parsec.reservedNames = []+ , Parsec.caseSensitive = True+ }+ where+ opl = P.oneOf ":!#$%&*+./<=>?@\\^|-~"++parsecIdent :: P.Stream s Identity Char => P.Parsec s [PWarning] String+parsecIdent = (:) <$> firstChar <*> rest+ where+ firstChar = P.satisfy isAlpha+ rest = P.munch (\c -> isAlphaNum c || c == '_' || c == '-')
+ Distribution/Parsec/ConfVar.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE OverloadedStrings #-}+module Distribution.Parsec.ConfVar (parseConditionConfVar) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Compat.Parsec (integral)+import Distribution.Parsec.Class (Parsec (..))+import Distribution.Parsec.Types.Common+import Distribution.Parsec.Types.Field (SectionArg (..))+import Distribution.Parsec.Types.ParseResult+import Distribution.Simple.Utils (fromUTF8BS)+import Distribution.Types.Condition+import Distribution.Types.GenericPackageDescription+ (ConfVar (..))+import Distribution.Version+ (anyVersion, earlierVersion, intersectVersionRanges,+ laterVersion, majorBoundVersion, mkVersion, noVersion,+ orEarlierVersion, orLaterVersion, thisVersion,+ unionVersionRanges, withinVersion)+import qualified Text.Parsec as P+import qualified Text.Parsec.Error as P++-- | Parse @'Condition' 'ConfVar'@ from section arguments provided by parsec+-- based outline parser.+parseConditionConfVar :: [SectionArg Position] -> ParseResult (Condition ConfVar)+parseConditionConfVar args = do+ -- preprocess glued operators+ args' <- preprocess args+ -- The name of the input file is irrelevant, as we reformat the error message.+ case P.runParser (parser <* P.eof) () "<condition>" args' of+ Right x -> pure x+ Left err -> do+ -- Mangle the position to the actual one+ let ppos = P.errorPos err+ let epos = Position (P.sourceLine ppos) (P.sourceColumn ppos)+ let msg = P.showErrorMessages+ "or" "unknown parse error" "expecting" "unexpected" "end of input"+ (P.errorMessages err)+ parseFailure epos msg+ pure $ Lit True++-- This is a hack, as we have "broken" .cabal files on Hackage+--+-- There are glued operators "&&!" (no whitespace) in some cabal files.+-- E.g. http://hackage.haskell.org/package/hblas-0.2.0.0/hblas.cabal+preprocess :: [SectionArg Position] -> ParseResult [SectionArg Position]+preprocess (SecArgOther pos "&&!" : rest) = do+ parseWarning pos PWTGluedOperators "Glued operators: &&!"+ (\rest' -> SecArgOther pos "&&" : SecArgOther pos "!" : rest') <$> preprocess rest+preprocess (x : rest) =+ (x: ) <$> preprocess rest+preprocess [] = pure []++type Parser = P.Parsec [SectionArg Position] ()++parser :: Parser (Condition ConfVar)+parser = condOr+ where+ condOr = P.sepBy1 condAnd (oper "||") >>= return . foldl1 COr+ condAnd = P.sepBy1 cond (oper "&&") >>= return . foldl1 CAnd+ cond = P.choice+ [ boolLiteral, parens condOr, notCond, osCond, archCond, flagCond, implCond ]++ notCond = CNot <$ oper "!" <*> cond++ boolLiteral = Lit <$> boolLiteral'+ osCond = Var . OS <$ string "os" <*> parens fromParsec+ flagCond = Var . Flag <$ string "flag" <*> parens fromParsec+ archCond = Var . Arch <$ string "arch" <*> parens fromParsec+ implCond = Var <$ string "impl" <*> parens implCond'++ implCond' = Impl+ <$> fromParsec+ <*> P.option anyVersion versionRange++ version = fromParsec+ versionStar = mkVersion <$> fromParsec' versionStar' <* oper "*"+ versionStar' = some (integral <* P.char '.')++ versionRange = expr+ where+ expr = foldl1 unionVersionRanges <$> P.sepBy1 term (oper "||")+ term = foldl1 intersectVersionRanges <$> P.sepBy1 factor (oper "&&")++ factor = P.choice+ $ parens expr+ : parseAnyVersion+ : parseNoVersion+ : parseWildcardRange+ : map parseRangeOp rangeOps++ parseAnyVersion = anyVersion <$ string "-any"+ parseNoVersion = noVersion <$ string "-none"++ parseWildcardRange = P.try $ withinVersion <$ oper "==" <*> versionStar++ parseRangeOp (s,f) = P.try (f <$ oper s <*> version)+ rangeOps = [ ("<", earlierVersion),+ ("<=", orEarlierVersion),+ (">", laterVersion),+ (">=", orLaterVersion),+ ("^>=", majorBoundVersion),+ ("==", thisVersion) ]++ -- Number token can have many dots in it: SecArgNum (Position 65 15) "7.6.1"+ ident = tokenPrim $ \t -> case t of+ SecArgName _ s -> Just $ fromUTF8BS s+ SecArgNum _ s -> Just $ fromUTF8BS s+ _ -> Nothing++ boolLiteral' = tokenPrim $ \t -> case t of+ SecArgName _ s+ | s == "True" -> Just True+ | s == "true" -> Just True+ | s == "False" -> Just False+ | s == "false" -> Just False+ _ -> Nothing++ string s = tokenPrim $ \t -> case t of+ SecArgName _ s' | s == s' -> Just ()+ _ -> Nothing++ oper o = tokenPrim $ \t -> case t of+ SecArgOther _ o' | o == o' -> Just ()+ _ -> Nothing++ parens = P.between (oper "(") (oper ")")++ tokenPrim = P.tokenPrim prettySectionArg updatePosition+ -- TODO: check where the errors are reported+ updatePosition x _ _ = x+ prettySectionArg = show++ fromParsec :: Parsec a => Parser a+ fromParsec = fromParsec' parsec++ fromParsec' p = do+ i <- ident+ case P.runParser (p <* P.eof) [] "<ident>" i of+ Right x -> pure x+ -- TODO: better lifting or errors / warnings+ Left err -> fail $ show err
+ Distribution/Parsec/Lexer.x view
@@ -0,0 +1,269 @@+{+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Parsec.Lexer+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+-- Lexer for the cabal files.+{-# LANGUAGE CPP #-}+{-# LANGUAGE BangPatterns #-}+#ifdef CABAL_PARSEC_DEBUG+{-# LANGUAGE PatternGuards #-}+#endif+module Distribution.Parsec.Lexer+ (ltest, lexToken, Token(..), LToken(..)+ ,bol_section, in_section, in_field_layout, in_field_braces+ ,mkLexState) where++import Prelude ()+import qualified Prelude as Prelude+import Distribution.Compat.Prelude++import Distribution.Parsec.LexerMonad+import Distribution.Parsec.Types.Common (Position (..), incPos, retPos)+import Data.ByteString (ByteString)+import qualified Data.ByteString as B+import qualified Data.ByteString.Char8 as B.Char8+import qualified Data.Word as Word++#ifdef CABAL_PARSEC_DEBUG+import Debug.Trace+import qualified Data.Vector as V+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Encoding.Error as T+#endif++}+-- Various character classes++$space = \ -- single space char+$digit = 0-9 -- digits+$alpha = [a-z A-Z] -- alphabetic characters+$symbol = [\= \< \> \+ \* \- \& \| \! \$ \% \^ \@ \# \? \/ \\ \~]+$ctlchar = [\x0-\x1f \x7f]+$printable = \x0-\x10ffff # $ctlchar -- so no \n \r+$nbsp = \xa0+$spacetab = [$space \t]+$bom = \xfeff+$nbspspacetab = [$nbsp $space \t]++$paren = [ \( \) \[ \] ]+$field_layout = [$printable \t]+$field_layout' = [$printable] # [$space]+$field_braces = [$printable \t] # [\{ \}]+$field_braces' = [$printable] # [\{ \} $space]+$comment = [$printable \t]+$namecore = [$alpha]+$nameextra = [$namecore $digit \- \_ \. \']+$instr = [$printable $space] # [\"]+$instresc = $printable++@nl = \n | \r\n | \r+@name = $nameextra* $namecore $nameextra*+@string = \" ( $instr | \\ $instresc )* \"+@numlike = $digit [$digit \.]*+@oplike = [ \, \. \= \< \> \+ \* \- \& \| \! \$ \% \^ \@ \# \? \/ \\ \~ ]+++tokens :-++<0> {+ $bom { \_ _ _ -> addWarning LexWarningBOM "Byte-order mark found at the beginning of the file" >> lexToken }+ () ;+}++<bol_section, bol_field_layout, bol_field_braces> {+ $nbspspacetab* @nl { \_pos len inp -> checkWhitespace len inp >> adjustPos retPos >> lexToken }+ -- no @nl here to allow for comments on last line of the file with no trailing \n+ $spacetab* "--" $comment* ; -- TODO: check the lack of @nl works here+ -- including counting line numbers+}++<bol_section> {+ $nbspspacetab* --TODO prevent or record leading tabs+ { \pos len inp -> checkWhitespace len inp >>+ if B.length inp == len+ then return (L pos EOF)+ else setStartCode in_section+ >> return (L pos (Indent len)) }+ $spacetab* \{ { tok OpenBrace }+ $spacetab* \} { tok CloseBrace }+}++<in_section> {+ $spacetab+ ; --TODO: don't allow tab as leading space++ "--" $comment* ;++ @name { toki TokSym }+ @string { \p l i -> case reads (B.Char8.unpack (B.take l i)) of+ [(str,[])] -> return (L p (TokStr str))+ _ -> lexicalError p i }+ @numlike { toki TokNum }+ @oplike { toki TokOther }+ $paren { toki TokOther }+ \: { tok Colon }+ \{ { tok OpenBrace }+ \} { tok CloseBrace }+ @nl { \_ _ _ -> adjustPos retPos >> setStartCode bol_section >> lexToken }+}++<bol_field_layout> {+ $spacetab* --TODO prevent or record leading tabs+ { \pos len inp -> if B.length inp == len+ then return (L pos EOF)+ else setStartCode in_field_layout+ >> return (L pos (Indent len)) }+}++<in_field_layout> {+ $spacetab+; --TODO prevent or record leading tabs+ $field_layout' $field_layout* { toki TokFieldLine }+ @nl { \_ _ _ -> adjustPos retPos >> setStartCode bol_field_layout >> lexToken }+}++<bol_field_braces> {+ () { \_ _ _ -> setStartCode in_field_braces >> lexToken }+}++<in_field_braces> {+ $spacetab+; --TODO prevent or record leading tabs+ $field_braces' $field_braces* { toki TokFieldLine }+ \{ { tok OpenBrace }+ \} { tok CloseBrace }+ @nl { \_ _ _ -> adjustPos retPos >> setStartCode bol_field_braces >> lexToken }+}++{++-- | Tokens of outer cabal file structure. Field values are treated opaquely.+data Token = TokSym !ByteString -- ^ Haskell-like identifier+ | TokStr !String -- ^ String in quotes+ | TokNum !ByteString -- ^ Integral+ | TokOther !ByteString -- ^ Operator like token+ | Indent !Int -- ^ Indentation token+ | TokFieldLine !ByteString -- ^ Lines after @:@+ | Colon+ | OpenBrace+ | CloseBrace+ | EOF+ | LexicalError InputStream --TODO: add separate string lexical error+ deriving Show++data LToken = L !Position !Token+ deriving Show++toki :: Monad m => (ByteString -> Token) -> Position -> Int -> ByteString -> m LToken+toki t pos len input = return $! L pos (t (B.take len input))++tok :: Monad m => Token -> Position -> t -> t1 -> m LToken+tok t pos _len _input = return $! L pos t++checkWhitespace :: Int -> ByteString -> Lex ()+checkWhitespace len bs+ | B.any (== 194) (B.take len bs) =+ addWarning LexWarningNBSP "Non-breaking space found"+ | otherwise = return ()++-- -----------------------------------------------------------------------------+-- The input type++type AlexInput = InputStream++alexInputPrevChar :: AlexInput -> Char+alexInputPrevChar _ = error "alexInputPrevChar not used"++alexGetByte :: AlexInput -> Maybe (Word.Word8,AlexInput)+alexGetByte = B.uncons++lexicalError :: Position -> InputStream -> Lex LToken+lexicalError pos inp = do+ setInput B.empty+ return $! L pos (LexicalError inp)++lexToken :: Lex LToken+lexToken = do+ pos <- getPos+ inp <- getInput+ st <- getStartCode+ case alexScan inp st of+ AlexEOF -> return (L pos EOF)+ AlexError inp' ->+ let !len_bytes = B.length inp - B.length inp' in+ --FIXME: we want len_chars here really+ -- need to decode utf8 up to this point+ lexicalError (incPos len_bytes pos) inp'+ AlexSkip inp' len_chars -> do+ checkPosition pos inp inp' len_chars+ adjustPos (incPos len_chars)+ setInput inp'+ lexToken+ AlexToken inp' len_chars action -> do+ checkPosition pos inp inp' len_chars+ adjustPos (incPos len_chars)+ setInput inp'+ let !len_bytes = B.length inp - B.length inp'+ t <- action pos len_bytes inp+ --traceShow t $ return tok+ return t+++checkPosition :: Position -> ByteString -> ByteString -> Int -> Lex ()+#ifdef CABAL_PARSEC_DEBUG+checkPosition pos@(Position lineno colno) inp inp' len_chars = do+ text_lines <- getDbgText+ let len_bytes = B.length inp - B.length inp'+ pos_txt | lineno-1 < V.length text_lines = T.take len_chars (T.drop (colno-1) (text_lines V.! (lineno-1)))+ | otherwise = T.empty+ real_txt = B.take len_bytes inp+ when (pos_txt /= T.decodeUtf8 real_txt) $+ traceShow (pos, pos_txt, T.decodeUtf8 real_txt) $+ traceShow (take 3 (V.toList text_lines)) $ return ()+ where+ getDbgText = Lex $ \s@LexState{ dbgText = txt } -> LexResult s txt+#else+checkPosition _ _ _ _ = return ()+#endif++lexAll :: Lex [LToken]+lexAll = do+ t <- lexToken+ case t of+ L _ EOF -> return [t]+ _ -> do ts <- lexAll+ return (t : ts)++ltest :: Int -> String -> Prelude.IO ()+ltest code s =+ let (ws, xs) = execLexer (setStartCode code >> lexAll) (B.Char8.pack s)+ in traverse_ print ws >> traverse_ print xs+++mkLexState :: ByteString -> LexState+mkLexState input = LexState+ { curPos = Position 1 1+ , curInput = input+ , curCode = bol_section+ , warnings = []+#ifdef CABAL_PARSEC_DEBUG+ , dbgText = V.fromList . lines' . T.decodeUtf8With T.lenientDecode $ input+#endif+ }++#ifdef CABAL_PARSEC_DEBUG+lines' :: T.Text -> [T.Text]+lines' s1+ | T.null s1 = []+ | otherwise = case T.break (\c -> c == '\r' || c == '\n') s1 of+ (l, s2) | Just (c,s3) <- T.uncons s2+ -> case T.uncons s3 of+ Just ('\n', s4) | c == '\r' -> l `T.snoc` '\r' `T.snoc` '\n' : lines' s4+ _ -> l `T.snoc` c : lines' s3++ | otherwise+ -> [l]+#endif+}
+ Distribution/Parsec/LexerMonad.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE CPP #-}+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Parsec.LexerMonad+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+module Distribution.Parsec.LexerMonad (+ InputStream,+ LexState(..),+ LexResult(..),++ Lex(..),+ execLexer,++ getPos,+ setPos,+ adjustPos,++ getInput,+ setInput,++ getStartCode,+ setStartCode,++ LexWarning(..),+ LexWarningType(..),+ addWarning,+ toPWarning,++ ) where++import Prelude ()+import Distribution.Compat.Prelude+import qualified Data.ByteString as B+import Distribution.Parsec.Types.Common+ (PWarnType (..), PWarning (..), Position (..))++#ifdef CABAL_PARSEC_DEBUG+-- testing only:+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Vector as V+#endif++-- simple state monad+newtype Lex a = Lex { unLex :: LexState -> LexResult a }++instance Functor Lex where+ fmap = liftM++instance Applicative Lex where+ pure = returnLex+ (<*>) = ap++instance Monad Lex where+ return = pure+ (>>=) = thenLex++data LexResult a = LexResult {-# UNPACK #-} !LexState a++data LexWarningType+ = LexWarningNBSP -- ^ Encountered non breaking space+ | LexWarningBOM -- ^ BOM at the start of the cabal file+ deriving (Show)++data LexWarning = LexWarning !LexWarningType+ {-# UNPACK #-} !Position+ !String+ deriving (Show)++toPWarning :: LexWarning -> PWarning+toPWarning (LexWarning t p s) = PWarning t' p s+ where+ t' = case t of+ LexWarningNBSP -> PWTLexNBSP+ LexWarningBOM -> PWTLexBOM++data LexState = LexState {+ curPos :: {-# UNPACK #-} !Position, -- ^ position at current input location+ curInput :: {-# UNPACK #-} !InputStream, -- ^ the current input+ curCode :: {-# UNPACK #-} !StartCode, -- ^ lexer code+ warnings :: [LexWarning]+#ifdef CABAL_PARSEC_DEBUG+ , dbgText :: V.Vector T.Text -- ^ input lines, to print pretty debug info+#endif+ } --TODO: check if we should cache the first token+ -- since it looks like parsec's uncons can be called many times on the same input++type StartCode = Int -- ^ An @alex@ lexer start code+type InputStream = B.ByteString++++-- | Execute the given lexer on the supplied input stream.+execLexer :: Lex a -> InputStream -> ([LexWarning], a)+execLexer (Lex lexer) input =+ case lexer initialState of+ LexResult LexState{ warnings = ws } result -> (ws, result)+ where+ initialState = LexState+ -- TODO: add 'startPosition'+ { curPos = Position 1 1+ , curInput = input+ , curCode = 0+ , warnings = []+#ifdef CABAL_PARSEC_DEBUG+ , dbgText = V.fromList . T.lines . T.decodeUtf8 $ input+#endif+ }++{-# INLINE returnLex #-}+returnLex :: a -> Lex a+returnLex a = Lex $ \s -> LexResult s a++{-# INLINE thenLex #-}+thenLex :: Lex a -> (a -> Lex b) -> Lex b+(Lex m) `thenLex` k = Lex $ \s -> case m s of LexResult s' a -> (unLex (k a)) s'++setPos :: Position -> Lex ()+setPos pos = Lex $ \s -> LexResult s{ curPos = pos } ()++getPos :: Lex Position+getPos = Lex $ \s@LexState{ curPos = pos } -> LexResult s pos++adjustPos :: (Position -> Position) -> Lex ()+adjustPos f = Lex $ \s@LexState{ curPos = pos } -> LexResult s{ curPos = f pos } ()++getInput :: Lex InputStream+getInput = Lex $ \s@LexState{ curInput = i } -> LexResult s i++setInput :: InputStream -> Lex ()+setInput i = Lex $ \s -> LexResult s{ curInput = i } ()++getStartCode :: Lex Int+getStartCode = Lex $ \s@LexState{ curCode = c } -> LexResult s c++setStartCode :: Int -> Lex ()+setStartCode c = Lex $ \s -> LexResult s{ curCode = c } ()++-- | Add warning at the current position+addWarning :: LexWarningType -> String -> Lex ()+addWarning wt msg = Lex $ \s@LexState{ curPos = pos, warnings = ws } ->+ LexResult s{ warnings = LexWarning wt pos msg : ws } ()
+ Distribution/Parsec/Parser.hs view
@@ -0,0 +1,403 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternGuards #-}+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Parsec.Parser+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+module Distribution.Parsec.Parser (+ -- * Types+ Field(..),+ Name(..),+ FieldLine(..),+ SectionArg(..),+ -- * Grammar and parsing+ -- $grammar+ readFields,+ readFields',+#ifdef CABAL_PARSEC_DEBUG+ -- * Internal+ parseFile,+ parseStr,+ parseBS,+#endif+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Control.Monad (guard)+import qualified Data.ByteString as B+import qualified Data.ByteString.Char8 as B8+import Data.Functor.Identity+import Distribution.Parsec.Lexer+import Distribution.Parsec.LexerMonad+ (LexResult (..), LexState (..), LexWarning (..),+ LexWarningType (..), unLex)+import Distribution.Parsec.Types.Common+import Distribution.Parsec.Types.Field+import Distribution.Utils.String+import Text.Parsec.Combinator hiding (eof, notFollowedBy)+import Text.Parsec.Error+import Text.Parsec.Pos+import Text.Parsec.Prim hiding (many, (<|>))++#ifdef CABAL_PARSEC_DEBUG+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Encoding.Error as T+#endif++-- | The 'LexState'' (with a prime) is an instance of parsec's 'Stream'+-- wrapped around lexer's 'LexState' (without a prime)+data LexState' = LexState' !LexState (LToken, LexState')++mkLexState' :: LexState -> LexState'+mkLexState' st = LexState' st+ (case unLex lexToken st of LexResult st' tok -> (tok, mkLexState' st'))++type Parser a = ParsecT LexState' () Identity a++instance Stream LexState' Identity LToken where+ uncons (LexState' _ (tok, st')) =+ case tok of+ L _ EOF -> return Nothing+ _ -> return (Just (tok, st'))++-- | Get lexer warnings accumulated so far+getLexerWarnings :: Parser [LexWarning]+getLexerWarnings = do+ LexState' (LexState { warnings = ws }) _ <- getInput+ return ws++-- | Set Alex code i.e. the mode "state" lexer is in.+setLexerMode :: Int -> Parser ()+setLexerMode code = do+ LexState' ls _ <- getInput+ setInput $! mkLexState' ls { curCode = code }++getToken :: (Token -> Maybe a) -> Parser a+getToken getTok = getTokenWithPos (\(L _ t) -> getTok t)++getTokenWithPos :: (LToken -> Maybe a) -> Parser a+getTokenWithPos getTok = tokenPrim (\(L _ t) -> describeToken t) updatePos getTok+ where+ updatePos :: SourcePos -> LToken -> LexState' -> SourcePos+ updatePos pos (L (Position col line) _) _ = newPos (sourceName pos) col line++describeToken :: Token -> String+describeToken t = case t of+ TokSym s -> "name " ++ show s+ TokStr s -> "string " ++ show s+ TokNum s -> "number " ++ show s+ TokOther s -> "symbol " ++ show s+ Indent _ -> "new line"+ TokFieldLine _ -> "field content"+ Colon -> "\":\""+ OpenBrace -> "\"{\""+ CloseBrace -> "\"}\""+-- SemiColon -> "\";\""+ EOF -> "end of file"+ LexicalError is -> "character in input " ++ show (B8.head is)++tokName :: Parser (Name Position)+tokName', tokStr, tokNum, tokOther :: Parser (SectionArg Position)+tokIndent :: Parser Int+tokColon, tokOpenBrace, tokCloseBrace :: Parser ()+tokFieldLine :: Parser (FieldLine Position)++tokName = getTokenWithPos $ \t -> case t of L pos (TokSym x) -> Just (mkName pos x); _ -> Nothing+tokName' = getTokenWithPos $ \t -> case t of L pos (TokSym x) -> Just (SecArgName pos x); _ -> Nothing+tokStr = getTokenWithPos $ \t -> case t of L pos (TokStr x) -> Just (SecArgStr pos x); _ -> Nothing+tokNum = getTokenWithPos $ \t -> case t of L pos (TokNum x) -> Just (SecArgNum pos x); _ -> Nothing+tokOther = getTokenWithPos $ \t -> case t of L pos (TokOther x) -> Just (SecArgOther pos x); _ -> Nothing+tokIndent = getToken $ \t -> case t of Indent x -> Just x; _ -> Nothing+tokColon = getToken $ \t -> case t of Colon -> Just (); _ -> Nothing+tokOpenBrace = getToken $ \t -> case t of OpenBrace -> Just (); _ -> Nothing+tokCloseBrace = getToken $ \t -> case t of CloseBrace -> Just (); _ -> Nothing+tokFieldLine = getTokenWithPos $ \t -> case t of L pos (TokFieldLine s) -> Just (FieldLine pos s); _ -> Nothing++colon, openBrace, closeBrace :: Parser ()++sectionArg :: Parser (SectionArg Position)+sectionArg = tokName' <|> tokStr+ <|> tokNum <|> tokOther <?> "section parameter"++fieldSecName :: Parser (Name Position)+fieldSecName = tokName <?> "field or section name"++colon = tokColon <?> "\":\""+openBrace = tokOpenBrace <?> "\"{\""+closeBrace = tokCloseBrace <?> "\"}\""++fieldContent :: Parser (FieldLine Position)+fieldContent = tokFieldLine <?> "field contents"++newtype IndentLevel = IndentLevel Int++zeroIndentLevel :: IndentLevel+zeroIndentLevel = IndentLevel 0++incIndentLevel :: IndentLevel -> IndentLevel+incIndentLevel (IndentLevel i) = IndentLevel (succ i)++indentOfAtLeast :: IndentLevel -> Parser IndentLevel+indentOfAtLeast (IndentLevel i) = try $ do+ j <- tokIndent+ guard (j >= i) <?> "indentation of at least " ++ show i+ return (IndentLevel j)+++newtype LexerMode = LexerMode Int++inLexerMode :: LexerMode -> Parser p -> Parser p+inLexerMode (LexerMode mode) p =+ do setLexerMode mode; x <- p; setLexerMode in_section; return x+++-----------------------+-- Cabal file grammar+--++-- $grammar+--+-- @+-- CabalStyleFile ::= SecElems+--+-- SecElems ::= SecElem* '\n'?+-- SecElem ::= '\n' SecElemLayout | SecElemBraces+-- SecElemLayout ::= FieldLayout | FieldBraces | SectionLayout | SectionBraces+-- SecElemBraces ::= FieldInline | FieldBraces | SectionBraces+-- FieldLayout ::= name ':' line? ('\n' line)*+-- FieldBraces ::= name ':' '\n'? '{' content '}'+-- FieldInline ::= name ':' content+-- SectionLayout ::= name arg* SecElems+-- SectionBraces ::= name arg* '\n'? '{' SecElems '}'+-- @+--+-- and the same thing but left factored...+--+-- @+-- SecElems ::= SecElem*+-- SecElem ::= '\n' name SecElemLayout+-- | name SecElemBraces+-- SecElemLayout ::= ':' FieldLayoutOrBraces+-- | arg* SectionLayoutOrBraces+-- FieldLayoutOrBraces ::= '\n'? '{' content '}'+-- | line? ('\n' line)*+-- SectionLayoutOrBraces ::= '\n'? '{' SecElems '\n'? '}'+-- | SecElems+-- SecElemBraces ::= ':' FieldInlineOrBraces+-- | arg* '\n'? '{' SecElems '\n'? '}'+-- FieldInlineOrBraces ::= '\n'? '{' content '}'+-- | content+-- @+--+-- Note how we have several productions with the sequence:+--+-- > '\n'? '{'+--+-- That is, an optional newline (and indent) followed by a @{@ token.+-- In the @SectionLayoutOrBraces@ case you can see that this makes it+-- not fully left factored (because @SecElems@ can start with a @\n@).+-- Fully left factoring here would be ugly, and though we could use a+-- lookahead of two tokens to resolve the alternatives, we can't+-- conveniently use Parsec's 'try' here to get a lookahead of only two.+-- So instead we deal with this case in the lexer by making a line+-- where the first non-space is @{@ lex as just the @{@ token, without+-- the usual indent token. Then in the parser we can resolve everything+-- with just one token of lookahead and so without using 'try'.++-- Top level of a file using cabal syntax+--+cabalStyleFile :: Parser [Field Position]+cabalStyleFile = do es <- elements zeroIndentLevel+ eof+ return es++-- Elements that live at the top level or inside a section, ie fields+-- and sectionscontent+--+-- elements ::= element*+elements :: IndentLevel -> Parser [Field Position]+elements ilevel = many (element ilevel)++-- An individual element, ie a field or a section. These can either use+-- layout style or braces style. For layout style then it must start on+-- a line on it's own (so that we know its indentation level).+--+-- element ::= '\n' name elementInLayoutContext+-- | name elementInNonLayoutContext+element :: IndentLevel -> Parser (Field Position)+element ilevel =+ (do ilevel' <- indentOfAtLeast ilevel+ name <- fieldSecName+ elementInLayoutContext (incIndentLevel ilevel') name)+ <|> (do name <- fieldSecName+ elementInNonLayoutContext name)++-- An element (field or section) that is valid in a layout context.+-- In a layout context we can have fields and sections that themselves+-- either use layout style or that use braces style.+--+-- elementInLayoutContext ::= ':' fieldLayoutOrBraces+-- | arg* sectionLayoutOrBraces+elementInLayoutContext :: IndentLevel -> Name Position -> Parser (Field Position)+elementInLayoutContext ilevel name =+ (do colon; fieldLayoutOrBraces ilevel name)+ <|> (do args <- many sectionArg+ elems <- sectionLayoutOrBraces ilevel+ return (Section name args elems))++-- An element (field or section) that is valid in a non-layout context.+-- In a non-layout context we can have only have fields and sections that+-- themselves use braces style, or inline style fields.+--+-- elementInNonLayoutContext ::= ':' FieldInlineOrBraces+-- | arg* '\n'? '{' elements '\n'? '}'+elementInNonLayoutContext :: Name Position -> Parser (Field Position)+elementInNonLayoutContext name =+ (do colon; fieldInlineOrBraces name)+ <|> (do args <- many sectionArg+ openBrace+ elems <- elements zeroIndentLevel+ optional tokIndent+ closeBrace+ return (Section name args elems))++-- The body of a field, using either layout style or braces style.+--+-- fieldLayoutOrBraces ::= '\n'? '{' content '}'+-- | line? ('\n' line)*+fieldLayoutOrBraces :: IndentLevel -> Name Position -> Parser (Field Position)+fieldLayoutOrBraces ilevel name = braces <|> fieldLayout+ where+ braces = do+ openBrace+ ls <- inLexerMode (LexerMode in_field_braces) (many fieldContent)+ closeBrace+ return (Field name ls)+ fieldLayout = inLexerMode (LexerMode in_field_layout) $ do+ l <- optionMaybe fieldContent+ ls <- many (do _ <- indentOfAtLeast ilevel; fieldContent)+ return $ case l of+ Nothing -> Field name ls+ Just l' -> Field name (l' : ls)++-- The body of a section, using either layout style or braces style.+--+-- sectionLayoutOrBraces ::= '\n'? '{' elements \n? '}'+-- | elements+sectionLayoutOrBraces :: IndentLevel -> Parser [Field Position]+sectionLayoutOrBraces ilevel =+ (do openBrace+ elems <- elements zeroIndentLevel+ optional tokIndent+ closeBrace+ return elems)+ <|> (elements ilevel)++-- The body of a field, using either inline style or braces.+--+-- fieldInlineOrBraces ::= '\n'? '{' content '}'+-- | content+fieldInlineOrBraces :: Name Position -> Parser (Field Position)+fieldInlineOrBraces name =+ (do openBrace+ ls <- inLexerMode (LexerMode in_field_braces) (many fieldContent)+ closeBrace+ return (Field name ls))+ <|> (do ls <- inLexerMode (LexerMode in_field_braces) (option [] (fmap (\l -> [l]) fieldContent))+ return (Field name ls))+++-- | Parse cabal style 'B8.ByteString' into list of 'Field's, i.e. the cabal AST.+readFields :: B8.ByteString -> Either ParseError [Field Position]+readFields s = fmap fst (readFields' s)++-- | Like 'readFields' but also return lexer warnings+readFields' :: B8.ByteString -> Either ParseError ([Field Position], [LexWarning])+readFields' s = do+ parse parser "the input" lexSt+ where+ parser = do+ fields <- cabalStyleFile+ ws <- getLexerWarnings+ pure (fields, maybeToList w ++ ws)++ (w, s') = fmap B.pack . recodeStringUtf8 . B.unpack $ s+ lexSt = mkLexState' (mkLexState s')++-- TODO: For some reason alex parser cannot handle BOM.+--+-- There is $bom token in the lexer, but for some reason it's not matched,+-- and alex chockes.+--+-- It might be that I (phadej) don't have enough alex-fu+--+-- Anyway, we probably should operate alex in the byte mode, and do utf8 decoding+-- later in the fields where it's required (as we actually do atm). We'd need+-- alex-3.2 for that.+recodeStringUtf8 :: [Word8] -> (Maybe LexWarning, [Word8])+recodeStringUtf8 (0xef : 0xbb : 0xbf : bytes) =+ ( Just $ LexWarning LexWarningBOM (Position 1 1) "Byte-order mark found"+ , encodeStringUtf8 (decodeStringUtf8 bytes)+ )+recodeStringUtf8 bytes =+ (Nothing, encodeStringUtf8 (decodeStringUtf8 bytes))++#ifdef CABAL_PARSEC_DEBUG+parseTest' :: Show a => Parsec LexState' () a -> SourceName -> B8.ByteString -> IO ()+parseTest' p fname s =+ case parse p fname (lexSt s) of+ Left err -> putStrLn (formatError s err)++ Right x -> print x+ where+ lexSt = mkLexState' . mkLexState++parseFile :: Show a => Parser a -> FilePath -> IO ()+parseFile p f = B8.readFile f >>= \s -> parseTest' p f s++parseStr :: Show a => Parser a -> String -> IO ()+parseStr p = parseBS p . B8.pack++parseBS :: Show a => Parser a -> B8.ByteString -> IO ()+parseBS p = parseTest' p "<input string>"++formatError :: B8.ByteString -> ParseError -> String+formatError input perr =+ unlines+ [ "Parse error "++ show (errorPos perr) ++ ":"+ , errLine+ , indicator ++ errmsg ]+ where+ pos = errorPos perr+ ls = lines' (T.decodeUtf8With T.lenientDecode input)+ errLine = T.unpack (ls !! (sourceLine pos - 1))+ indicator = replicate (sourceColumn pos) ' ' ++ "^"+ errmsg = showErrorMessages "or" "unknown parse error"+ "expecting" "unexpected" "end of file"+ (errorMessages perr)++-- | Handles windows/osx/unix line breaks uniformly+lines' :: T.Text -> [T.Text]+lines' s1+ | T.null s1 = []+ | otherwise = case T.break (\c -> c == '\r' || c == '\n') s1 of+ (l, s2) | Just (c,s3) <- T.uncons s2+ -> case T.uncons s3 of+ Just ('\n', s4) | c == '\r' -> l : lines' s4+ _ -> l : lines' s3+ | otherwise -> [l]+#endif++eof :: Parser ()+eof = notFollowedBy anyToken <?> "end of file"+ where+ notFollowedBy :: Parser LToken -> Parser ()+ notFollowedBy p = try ( (do L _ t <- try p; unexpected (describeToken t))+ <|> return ())
+ Distribution/Parsec/Types/Common.hs view
@@ -0,0 +1,89 @@+-- | Module containing small types+module Distribution.Parsec.Types.Common (+ -- * Diagnostics+ PError (..),+ showPError,+ PWarning (..),+ PWarnType (..),+ showPWarning,+ -- * Field parser+ FieldParser,+ -- * Position+ Position (..),+ incPos,+ retPos,+ showPos,+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import System.FilePath (normalise)+import qualified Text.Parsec as Parsec++-- | Parser error.+data PError = PError Position String+ deriving (Show)++-- | Type of parser warning. We do classify warnings.+--+-- Different application may decide not to show some, or have fatal behaviour on others+data PWarnType+ = PWTOther -- ^ Unclassified warning+ | PWTUTF -- ^ Invalid UTF encoding+ | PWTBoolCase -- ^ @true@ or @false@, not @True@ or @False@+ | PWTGluedOperators -- ^ @&&!@+ | PWTVersionTag -- ^ there are version with tags+ | PWTNewSyntax -- ^ New syntax used, but no @cabal-version: >= 1.2@ specified+ | PWTOldSyntax -- ^ Old syntax used, and @cabal-version >= 1.2@ specified+ | PWTDeprecatedField+ | PWTInvalidSubsection+ | PWTUnknownField+ | PWTUnknownSection+ | PWTTrailingFields+ | PWTExtraMainIs -- ^ extra main-is field+ | PWTExtraTestModule -- ^ extra test-module field+ | PWTExtraBenchmarkModule -- ^ extra benchmark-module field+ | PWTLexNBSP+ | PWTLexBOM+ deriving (Eq, Ord, Show, Enum, Bounded)++-- | Parser warning.+data PWarning = PWarning !PWarnType !Position String+ deriving (Show)++showPWarning :: FilePath -> PWarning -> String+showPWarning fpath (PWarning _ pos msg) =+ normalise fpath ++ ":" ++ showPos pos ++ ": " ++ msg++showPError :: FilePath -> PError -> String+showPError fpath (PError pos msg) =+ normalise fpath ++ ":" ++ showPos pos ++ ": " ++ msg++-------------------------------------------------------------------------------+-- Field parser+-------------------------------------------------------------------------------++-- | Field value parsers.+type FieldParser = Parsec.Parsec String [PWarning] -- :: * -> *+++-------------------------------------------------------------------------------+-- Position+-------------------------------------------------------------------------------++-- | 1-indexed row and column positions in a file.+data Position = Position+ {-# UNPACK #-} !Int -- row+ {-# UNPACK #-} !Int -- column+ deriving (Eq, Show)++-- | Shift position by n columns to the right.+incPos :: Int -> Position -> Position+incPos n (Position row col) = Position row (col + n)++-- | Shift position to beginning of next row.+retPos :: Position -> Position+retPos (Position row _col) = Position (row + 1) 1++showPos :: Position -> String+showPos (Position row col) = show row ++ ":" ++ show col
+ Distribution/Parsec/Types/Field.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveFunctor #-}+-- | Cabal-like file AST types: 'Field', 'Section' etc+--+-- These types are parametrized by an annotation.+module Distribution.Parsec.Types.Field (+ -- * Cabal file+ Field (..),+ fieldAnn,+ FieldLine (..),+ SectionArg (..),+ sectionArgAnn,+ -- * Name+ Name (..),+ mkName,+ getName,+ nameAnn,+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Data.ByteString (ByteString)+import qualified Data.ByteString.Char8 as B+import qualified Data.Char as Char++-------------------------------------------------------------------------------+-- Cabal file+-------------------------------------------------------------------------------++-- | A Cabal-like file consists of a series of fields (@foo: bar@) and sections (@library ...@).+data Field ann+ = Field !(Name ann) [FieldLine ann]+ | Section !(Name ann) [SectionArg ann] [Field ann]+ deriving (Eq, Show, Functor)++fieldAnn :: Field ann -> ann+fieldAnn (Field (Name ann _) _) = ann+fieldAnn (Section (Name ann _) _ _) = ann++-- | A line of text representing the value of a field from a Cabal file.+-- A field may contain multiple lines.+--+-- /Invariant:/ 'ByteString' has no newlines.+data FieldLine ann = FieldLine !ann !ByteString+ deriving (Eq, Show, Functor)++-- | Section arguments, e.g. name of the library+data SectionArg ann+ = SecArgName !ann !ByteString+ -- ^ identifier+ | SecArgStr !ann !String+ -- ^ quoted string+ | SecArgNum !ann !ByteString+ -- ^ Something which loos like number. Also many dot numbers, i.e. "7.6.3"+ | SecArgOther !ann !ByteString+ -- ^ everything else, mm. operators (e.g. in if-section conditionals)+ deriving (Eq, Show, Functor)++-- | Extract annotation from 'SectionArg'.+sectionArgAnn :: SectionArg ann -> ann+sectionArgAnn (SecArgName ann _) = ann+sectionArgAnn (SecArgStr ann _) = ann+sectionArgAnn (SecArgNum ann _) = ann+sectionArgAnn (SecArgOther ann _) = ann++-------------------------------------------------------------------------------+-- Name+-------------------------------------------------------------------------------++-- | A field name.+--+-- /Invariant/: 'ByteString' is lower-case ASCII.+data Name ann = Name !ann !ByteString+ deriving (Eq, Show, Functor)++mkName :: ann -> ByteString -> Name ann+mkName ann bs = Name ann (B.map Char.toLower bs)++getName :: Name ann -> ByteString+getName (Name _ bs) = bs++nameAnn :: Name ann -> ann+nameAnn (Name ann _) = ann
+ Distribution/Parsec/Types/FieldDescr.hs view
@@ -0,0 +1,238 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RankNTypes #-}+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Parsec.Types.FieldDescr+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+module Distribution.Parsec.Types.FieldDescr (+ -- * Field name+ FieldName,+ -- * Field description+ FieldDescr (..),+ liftField,+ simpleField,+ boolField,+ optsField,+ listField,+ listFieldWithSep,+ commaListField,+ commaListFieldWithSep,+ spaceListField,+ -- ** Pretty printing+ ppFields,+ ppField,+ -- * Unknown fields+ UnknownFieldParser,+ warnUnrec,+ ignoreUnrec,+ ) where++import Prelude ()+import Distribution.Compat.Prelude hiding (get)+import qualified Data.ByteString as BS+import Data.Ord (comparing)+import qualified Distribution.Compat.Parsec as P+import Distribution.Compiler (CompilerFlavor)+import Distribution.Parsec.Class+import Distribution.Parsec.Types.Common+import Distribution.PrettyUtils+import Text.PrettyPrint+ (Doc, colon, comma, fsep, hsep, isEmpty, nest, punctuate,+ text, vcat, ($+$), (<+>))++type FieldName = BS.ByteString++-------------------------------------------------------------------------------+-- Unrecoginsed fields+-------------------------------------------------------------------------------++-- | How to handle unknown fields.+type UnknownFieldParser a = FieldName -> String -> a -> Maybe a++-- | A default unrecognized field parser which simply returns Nothing,+-- i.e. ignores all unrecognized fields, so warnings will be generated.+warnUnrec :: UnknownFieldParser a+warnUnrec _ _ _ = Nothing++-- | A default unrecognized field parser which silently (i.e. no+-- warnings will be generated) ignores unrecognized fields, by+-- returning the structure being built unmodified.+ignoreUnrec :: UnknownFieldParser a+ignoreUnrec _ _ = Just++-------------------------------------------------------------------------------+-- Field description+-------------------------------------------------------------------------------++data FieldDescr a = FieldDescr+ { fieldName :: FieldName+ , fieldPretty :: a -> Doc+ , fieldParser :: a -> FieldParser a+ }++liftField :: (b -> a) -> (a -> b -> b) -> FieldDescr a -> FieldDescr b+liftField get set fd = FieldDescr+ (fieldName fd)+ (fieldPretty fd . get)+ (\b -> flip set b <$> fieldParser fd (get b))++simpleField+ :: FieldName -- ^ fieldname+ -> (a -> Doc) -- ^ show+ -> FieldParser a -- ^ parser+ -> (b -> a) -- ^ getter+ -> (a -> b -> b) -- ^ setter+ -> FieldDescr b+simpleField name pretty parse get set = FieldDescr+ name+ (pretty . get)+ (\a -> flip set a <$> parse)++boolField+ :: FieldName+ -> (b -> Bool)+ -> (Bool -> b -> b)+ -> FieldDescr b+boolField name get set = liftField get set (FieldDescr name showF parseF)+ where+ showF = text . show+ parseF _ = P.munch1 isAlpha >>= postprocess+ postprocess str+ | str == "True" = pure True+ | str == "False" = pure False+ | lstr == "true" = parsecWarning PWTBoolCase caseWarning *> pure True+ | lstr == "false" = parsecWarning PWTBoolCase caseWarning *> pure False+ | otherwise = fail $ "Not a boolena: " ++ str+ where+ lstr = map toLower str+ caseWarning =+ "The " ++ show name ++ " field is case sensitive, use 'True' or 'False'."++optsField+ :: FieldName+ -> CompilerFlavor+ -> (b -> [(CompilerFlavor,[String])])+ -> ([(CompilerFlavor,[String])] -> b -> b)+ -> FieldDescr b+optsField name flavor get set = liftField+ (fromMaybe [] . lookup flavor . get)+ (\opts b -> set (reorder (update flavor opts (get b))) b)+ $ field name showF (many $ parsecToken' <* P.munch isSpace)+ where+ update _ opts l | all null opts = l --empty opts as if no opts+ update f opts [] = [(f,opts)]+ update f opts ((f',opts'):rest)+ | f == f' = (f, opts' ++ opts) : rest+ | otherwise = (f',opts') : update f opts rest+ reorder = sortBy (comparing fst)+ showF = hsep . map text++listField+ :: FieldName+ -> (a -> Doc)+ -> FieldParser a+ -> (b -> [a])+ -> ([a] -> b -> b)+ -> FieldDescr b+listField = listFieldWithSep fsep++listFieldWithSep+ :: Separator+ -> FieldName+ -> (a -> Doc)+ -> FieldParser a+ -> (b -> [a])+ -> ([a] -> b -> b)+ -> FieldDescr b+listFieldWithSep separator name showF parseF get set =+ liftField get set' $+ field name showF' (parsecOptCommaList parseF)+ where+ set' xs b = set (get b ++ xs) b+ showF' = separator . map showF+++commaListField+ :: FieldName -> (a -> Doc) -> FieldParser a+ -> (b -> [a]) -> ([a] -> b -> b) -> FieldDescr b+commaListField = commaListFieldWithSep fsep++commaListFieldWithSep+ :: Separator -> FieldName -> (a -> Doc) -> FieldParser a+ -> (b -> [a]) -> ([a] -> b -> b) -> FieldDescr b+commaListFieldWithSep separator name showF parseF get set =+ liftField get set' $+ field name showF' (parsecCommaList parseF)+ where+ set' xs b = set (get b ++ xs) b+ showF' = separator . punctuate comma . map showF++spaceListField+ :: FieldName -> (a -> Doc) -> FieldParser a+ -> (b -> [a]) -> ([a] -> b -> b) -> FieldDescr b+spaceListField name showF parseF get set = liftField get set' $+ field name showF' (many $ parseF <* P.spaces)+ where+ set' xs b = set (get b ++ xs) b+ showF' = fsep . map showF++-- Overriding field+field :: FieldName -> (a -> Doc) -> FieldParser a -> FieldDescr a+field name showF parseF =+ FieldDescr name showF (const parseF)++-------------------------------------------------------------------------------+-- Pretty printing+-------------------------------------------------------------------------------++ppFields :: [FieldDescr a] -> a -> Doc+ppFields fields x =+ vcat [ ppField name (getter x) | FieldDescr name getter _ <- fields ]++ppField :: FieldName -> Doc -> Doc+ppField name fielddoc+ | isEmpty fielddoc = mempty+ | name `elem` nestedFields = text namestr <<>> colon $+$ nest indentWith fielddoc+ | otherwise = text namestr <<>> colon <+> fielddoc+ where+ namestr = show name -- TODO: do this+ nestedFields :: [BS.ByteString]+ nestedFields =+ [ "description"+ , "build-depends"+ , "data-files"+ , "extra-source-files"+ , "extra-tmp-files"+ , "exposed-modules"+ , "c-sources"+ , "js-sources"+ , "extra-libraries"+ , "includes"+ , "install-includes"+ , "other-modules"+ , "depends"+ ]++-- | Handle deprecated fields+--+-- *TODO:* use Parsec+{-+deprecField :: Field Position -> Parsec (Field Position)+deprecField = undefined {-+-}++ (Field (Name pos fld) val) = do+ fld' <- case lookup fld deprecatedFields of+ Nothing -> return fld+ Just newName -> do+ warning $ "The field " ++ show fld+ ++ " is deprecated, please use " ++ show newName+ return newName+ return (Field (Name pos fld') val)+deprecField _ = cabalBug "'deprecField' called on a non-field"+-}
+ Distribution/Parsec/Types/ParseResult.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE CPP #-}+-- | A parse result type for parsers from AST to Haskell types.+module Distribution.Parsec.Types.ParseResult (+ ParseResult,+ runParseResult,+ recoverWith,+ parseWarning,+ parseFailure,+ parseFatalFailure,+ parseFatalFailure',+ parseWarnings',+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Parsec.Types.Common+ (PError (..), PWarnType (..), PWarning (..), Position (..))++-- | A monad with failure and accumulating errors and warnings.+newtype ParseResult a = PR { runPR :: PRState -> (Maybe a, PRState) }++data PRState = PRState ![PWarning] ![PError]++emptyPRState :: PRState+emptyPRState = PRState [] []++-- | Destruct a 'ParseResult' into the emitted warnings and errors, and+-- possibly the final result if there were no errors.+runParseResult :: ParseResult a -> ([PWarning], [PError], Maybe a)+runParseResult pr = case runPR pr emptyPRState of+ (res, PRState warns errs)+ -- If there are any errors, don't return the result+ | null errs -> (warns, [], res)+ | otherwise -> (warns, errs, Nothing)++instance Functor ParseResult where+ fmap f (PR pr) = PR $ \s -> case pr s of+ (r, s') -> (fmap f r, s')++instance Applicative ParseResult where+ pure x = PR $ \s -> (Just x, s)+ -- | Make it concat perrors+ (<*>) = ap+ PR a *> PR b = PR $ \s0 -> case a s0 of+ (x, s1) -> case b s1 of+ (y, s2) -> (x *> y, s2)++instance Monad ParseResult where+ return = pure+ (>>) = (*>)+ PR m >>= k = PR $ \s -> case m s of+ (Nothing, s') -> (Nothing, s')+ (Just x, s') -> runPR (k x) s'++-- | "Recover" the parse result, so we can proceed parsing.+-- 'runParseResult' will still result in 'Nothing', if there are recorded errors.+recoverWith :: ParseResult a -> a -> ParseResult a+recoverWith (PR f) x = PR $ \s -> case f s of+ (Nothing, s') -> (Just x, s')+ r -> r++parseWarning :: Position -> PWarnType -> String -> ParseResult ()+parseWarning pos t msg = PR $ \(PRState warns errs) ->+ (Just (), PRState (PWarning t pos msg : warns) errs)++parseWarnings' :: [PWarning] -> ParseResult ()+parseWarnings' newWarns = PR $ \(PRState warns errs) ->+ (Just (), PRState (warns ++ newWarns) errs)++-- | Add an error, but not fail the parser yet.+--+-- For fatal failure use 'parseFatalFailure'+parseFailure :: Position -> String -> ParseResult ()+parseFailure pos msg = PR $ \(PRState warns errs) ->+ (Just (), PRState warns (PError pos msg : errs))++-- | Add an fatal error.+parseFatalFailure :: Position -> String -> ParseResult a+parseFatalFailure pos msg = PR $ \(PRState warns errs) ->+ (Nothing, PRState warns (PError pos msg : errs))++parseFatalFailure' :: ParseResult a+parseFatalFailure' = PR f+ where+ f s@(PRState warns errs)+ | null errs = (Nothing, PRState warns [PError (Position 0 0) "Unknown failure"])+ | otherwise = (Nothing, s)
+ Distribution/PrettyUtils.hs view
@@ -0,0 +1,64 @@+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.PrettyUtils+-- Copyright : (c) The University of Glasgow 2004+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+-- Utilities for pretty printing.+{-# OPTIONS_HADDOCK hide #-}+module Distribution.PrettyUtils (+ Separator,+ -- * Internal+ showFilePath,+ showToken,+ showTestedWith,+ showFreeText,+ indentWith,+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Compiler (CompilerFlavor)+import Distribution.Version (VersionRange)++import Distribution.Text (disp)+import Text.PrettyPrint (Doc, text, vcat, (<+>))++type Separator = ([Doc] -> Doc)++showFilePath :: FilePath -> Doc+showFilePath "" = mempty+showFilePath x = showToken x++showToken :: String -> Doc+showToken str+ | not (any dodgy str) && not (null str) = text str+ | otherwise = text (show str)+ where+ dodgy c = isSpace c || c == ','++showTestedWith :: (CompilerFlavor, VersionRange) -> Doc+showTestedWith (compiler, vr) = text (show compiler) <+> disp vr++-- | Pretty-print free-format text, ensuring that it is vertically aligned,+-- and with blank lines replaced by dots for correct re-parsing.+showFreeText :: String -> Doc+showFreeText "" = mempty+showFreeText s = vcat [text (if null l then "." else l) | l <- lines_ s]++-- | 'lines_' breaks a string up into a list of strings at newline+-- characters. The resulting strings do not contain newlines.+lines_ :: String -> [String]+lines_ [] = [""]+lines_ s = let (l, s') = break (== '\n') s+ in l : case s' of+ [] -> []+ (_:s'') -> lines_ s''++-- | the indentation used for pretty printing+indentWith :: Int+indentWith = 4
Distribution/ReadE.hs view
@@ -17,8 +17,10 @@ readP_to_E ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Compat.ReadP-import Data.Char ( isSpace ) -- | Parser with simple error reporting newtype ReadE a = ReadE {runReadE :: String -> Either ErrorMsg a}
Distribution/Simple.hs view
@@ -1,3 +1,7 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple@@ -45,6 +49,7 @@ -- * Customization UserHooks(..), Args, defaultMainWithHooks, defaultMainWithHooksArgs,+ defaultMainWithHooksNoRead, -- ** Standard sets of hooks simpleUserHooks, autoconfUserHooks,@@ -53,12 +58,14 @@ defaultHookedPackageDesc ) where +import Prelude ()+import Distribution.Compat.Prelude+ -- local import Distribution.Simple.Compiler hiding (Flag) import Distribution.Simple.UserHooks import Distribution.Package import Distribution.PackageDescription hiding (Flag)-import Distribution.PackageDescription.Parse import Distribution.PackageDescription.Configuration import Distribution.Simple.Program import Distribution.Simple.Program.Db@@ -78,6 +85,7 @@ import Distribution.Simple.Test import Distribution.Simple.Install import Distribution.Simple.Haddock+import Distribution.Simple.Doctest import Distribution.Simple.Utils import Distribution.Utils.NubList import Distribution.Verbosity@@ -95,10 +103,15 @@ import Distribution.Compat.Environment (getEnvironment) import Distribution.Compat.GetShortPathName (getShortPathName) -import Control.Monad (when)-import Data.Foldable (traverse_)-import Data.List (unionBy, nub, (\\))+import Data.List (unionBy, (\\)) +#ifdef CABAL_PARSEC+import Distribution.PackageDescription.Parsec+import Distribution.PackageDescription.Parse (readHookedBuildInfo)+#else+import Distribution.PackageDescription.Parse+#endif+ -- | A simple implementation of @main@ for a Cabal setup script. -- It reads the package description file using IO, and performs the -- action specified on the command line.@@ -122,9 +135,13 @@ -- | Like 'defaultMain', but accepts the package description as input -- rather than using IO to read it. defaultMainNoRead :: GenericPackageDescription -> IO ()-defaultMainNoRead pkg_descr =+defaultMainNoRead = defaultMainWithHooksNoRead simpleUserHooks++-- | A customizable version of 'defaultMainNoRead'.+defaultMainWithHooksNoRead :: UserHooks -> GenericPackageDescription -> IO ()+defaultMainWithHooksNoRead hooks pkg_descr = getArgs >>=- defaultMainHelper simpleUserHooks { readDesc = return (Just pkg_descr) }+ defaultMainHelper hooks { readDesc = return (Just pkg_descr) } defaultMainHelper :: UserHooks -> Args -> IO () defaultMainHelper hooks args = topHandler $@@ -151,14 +168,15 @@ printVersion = putStrLn $ "Cabal library version " ++ display cabalVersion - progs = addKnownPrograms (hookedPrograms hooks) defaultProgramConfiguration+ progs = addKnownPrograms (hookedPrograms hooks) defaultProgramDb commands =- [configureCommand progs `commandAddAction` \fs as ->- configureAction hooks fs as >> return ()+ [configureCommand progs `commandAddAction`+ \fs as -> configureAction hooks fs as >> return () ,buildCommand progs `commandAddAction` buildAction hooks ,replCommand progs `commandAddAction` replAction hooks ,installCommand `commandAddAction` installAction hooks ,copyCommand `commandAddAction` copyAction hooks+ ,doctestCommand `commandAddAction` doctestAction hooks ,haddockCommand `commandAddAction` haddockAction hooks ,cleanCommand `commandAddAction` cleanAction hooks ,sdistCommand `commandAddAction` sdistAction hooks@@ -182,18 +200,17 @@ configureAction :: UserHooks -> ConfigFlags -> Args -> IO LocalBuildInfo configureAction hooks flags args = do distPref <- findDistPrefOrDefault (configDistPref flags)- let flags' = flags { configDistPref = toFlag distPref }+ let flags' = flags { configDistPref = toFlag distPref+ , configArgs = args }++ -- See docs for 'HookedBuildInfo' pbi <- preConf hooks args flags' - (mb_pd_file, pkg_descr0) <- confPkgDescr+ (mb_pd_file, pkg_descr0) <- confPkgDescr hooks verbosity+ (flagToMaybe (configCabalFilePath flags)) - --get_pkg_descr (configVerbosity flags')- --let pkg_descr = updatePackageDescription pbi pkg_descr0 let epkg_descr = (pkg_descr0, pbi) - --(warns, ers) <- sanityCheckPackage pkg_descr- --errorOut (configVerbosity flags') warns ers- localbuildinfo0 <- confHook hooks epkg_descr flags' -- remember the .cabal filename if we know it@@ -209,16 +226,23 @@ return localbuildinfo where verbosity = fromFlag (configVerbosity flags)- confPkgDescr :: IO (Maybe FilePath, GenericPackageDescription)- confPkgDescr = do- mdescr <- readDesc hooks- case mdescr of- Just descr -> return (Nothing, descr)- Nothing -> do- pdfile <- defaultPackageDesc verbosity- descr <- readPackageDescription verbosity pdfile- return (Just pdfile, descr) +confPkgDescr :: UserHooks -> Verbosity -> Maybe FilePath+ -> IO (Maybe FilePath, GenericPackageDescription)+confPkgDescr hooks verbosity mb_path = do+ mdescr <- readDesc hooks+ case mdescr of+ Just descr -> return (Nothing, descr)+ Nothing -> do+ pdfile <- case mb_path of+ Nothing -> defaultPackageDesc verbosity+ Just path -> return path+#ifdef CABAL_PARSEC+ info verbosity "Using Parsec parser"+#endif+ descr <- readGenericPackageDescription verbosity pdfile+ return (Just pdfile, descr)+ buildAction :: UserHooks -> BuildFlags -> Args -> IO () buildAction hooks flags args = do distPref <- findDistPrefOrDefault (buildDistPref flags)@@ -247,10 +271,15 @@ (replProgramArgs flags') (withPrograms lbi) + -- As far as I can tell, the only reason this doesn't use+ -- 'hookedActionWithArgs' is because the arguments of 'replHook'+ -- takes the args explicitly. UGH. -- ezyang pbi <- preRepl hooks args flags'- let lbi' = lbi { withPrograms = progs }- pkg_descr0 = localPkgDescr lbi'- pkg_descr = updatePackageDescription pbi pkg_descr0+ let pkg_descr0 = localPkgDescr lbi+ sanityCheckHookedBuildInfo pkg_descr0 pbi+ let pkg_descr = updatePackageDescription pbi pkg_descr0+ lbi' = lbi { withPrograms = progs+ , localPkgDescr = pkg_descr } replHook hooks pkg_descr lbi' hooks flags' args postRepl hooks args flags' pkg_descr lbi' @@ -263,6 +292,22 @@ (getBuildConfig hooks verbosity distPref) hooks flags' args +doctestAction :: UserHooks -> DoctestFlags -> Args -> IO ()+doctestAction hooks flags args = do+ distPref <- findDistPrefOrDefault (doctestDistPref flags)+ let verbosity = fromFlag $ doctestVerbosity flags+ flags' = flags { doctestDistPref = toFlag distPref }++ lbi <- getBuildConfig hooks verbosity distPref+ progs <- reconfigurePrograms verbosity+ (doctestProgramPaths flags')+ (doctestProgramArgs flags')+ (withPrograms lbi)++ hookedAction preDoctest doctestHook postDoctest+ (return lbi { withPrograms = progs })+ hooks flags' args+ haddockAction :: UserHooks -> HaddockFlags -> Args -> IO () haddockAction hooks flags args = do distPref <- findDistPrefOrDefault (haddockDistPref flags)@@ -286,8 +331,13 @@ pbi <- preClean hooks args flags' - pdfile <- defaultPackageDesc verbosity- ppd <- readPackageDescription verbosity pdfile+ (_, ppd) <- confPkgDescr hooks verbosity Nothing+ -- It might seem like we are doing something clever here+ -- but we're really not: if you look at the implementation+ -- of 'clean' in the end all the package description is+ -- used for is to clear out @extra-tmp-files@. IMO,+ -- the configure script goo should go into @dist@ too!+ -- -- ezyang let pkg_descr0 = flattenPackageDescription ppd -- We don't sanity check for clean as an error -- here would prevent cleaning:@@ -306,7 +356,7 @@ flags' = flags { copyDistPref = toFlag distPref } hookedAction preCopy copyHook postCopy (getBuildConfig hooks verbosity distPref)- hooks flags' args+ hooks flags' { copyArgs = args } args installAction :: UserHooks -> InstallFlags -> Args -> IO () installAction hooks flags args = do@@ -324,14 +374,26 @@ pbi <- preSDist hooks args flags' mlbi <- maybeGetPersistBuildConfig distPref- pdfile <- defaultPackageDesc verbosity- ppd <- readPackageDescription verbosity pdfile++ -- NB: It would be TOTALLY WRONG to use the 'PackageDescription'+ -- store in the 'LocalBuildInfo' for the rest of @sdist@, because+ -- that would result in only the files that would be built+ -- according to the user's configure being packaged up.+ -- In fact, it is not obvious why we need to read the+ -- 'LocalBuildInfo' in the first place, except that we want+ -- to do some architecture-independent preprocessing which+ -- needs to be configured. This is totally awful, see+ -- GH#130.++ (_, ppd) <- confPkgDescr hooks verbosity Nothing+ let pkg_descr0 = flattenPackageDescription ppd sanityCheckHookedBuildInfo pkg_descr0 pbi let pkg_descr = updatePackageDescription pbi pkg_descr0+ mlbi' = fmap (\lbi -> lbi { localPkgDescr = pkg_descr }) mlbi - sDistHook hooks pkg_descr mlbi hooks flags'- postSDist hooks args flags' pkg_descr mlbi+ sDistHook hooks pkg_descr mlbi' hooks flags'+ postSDist hooks args flags' pkg_descr mlbi' where verbosity = fromFlag (sDistVerbosity flags) @@ -367,7 +429,7 @@ flags' = flags { regDistPref = toFlag distPref } hookedAction preReg regHook postReg (getBuildConfig hooks verbosity distPref)- hooks flags' args+ hooks flags' { regArgs = args } args unregisterAction :: UserHooks -> RegisterFlags -> Args -> IO () unregisterAction hooks flags args = do@@ -386,7 +448,8 @@ -> IO LocalBuildInfo -> UserHooks -> flags -> Args -> IO () hookedAction pre_hook cmd_hook =- hookedActionWithArgs pre_hook (\h _ pd lbi uh flags -> cmd_hook h pd lbi uh flags)+ hookedActionWithArgs pre_hook (\h _ pd lbi uh flags ->+ cmd_hook h pd lbi uh flags) hookedActionWithArgs :: (UserHooks -> Args -> flags -> IO HookedBuildInfo) -> (UserHooks -> Args -> PackageDescription -> LocalBuildInfo@@ -395,17 +458,16 @@ -> LocalBuildInfo -> IO ()) -> IO LocalBuildInfo -> UserHooks -> flags -> Args -> IO ()-hookedActionWithArgs pre_hook cmd_hook post_hook get_build_config hooks flags args = do+hookedActionWithArgs pre_hook cmd_hook post_hook+ get_build_config hooks flags args = do pbi <- pre_hook hooks args flags- localbuildinfo <- get_build_config- let pkg_descr0 = localPkgDescr localbuildinfo- --pkg_descr0 <- get_pkg_descr (get_verbose flags)+ lbi0 <- get_build_config+ let pkg_descr0 = localPkgDescr lbi0 sanityCheckHookedBuildInfo pkg_descr0 pbi let pkg_descr = updatePackageDescription pbi pkg_descr0- -- TODO: should we write the modified package descr back to the- -- localbuildinfo?- cmd_hook hooks args pkg_descr localbuildinfo hooks flags- post_hook hooks args flags pkg_descr localbuildinfo+ lbi = lbi0 { localPkgDescr = pkg_descr }+ cmd_hook hooks args pkg_descr lbi hooks flags+ post_hook hooks args flags pkg_descr lbi sanityCheckHookedBuildInfo :: PackageDescription -> HookedBuildInfo -> IO () sanityCheckHookedBuildInfo PackageDescription { library = Nothing } (Just _,_)@@ -415,7 +477,7 @@ sanityCheckHookedBuildInfo pkg_descr (_, hookExes) | not (null nonExistant) = die $ "The buildinfo contains info for an executable called '"- ++ head nonExistant ++ "' but the package does not have a "+ ++ display (head nonExistant) ++ "' but the package does not have a " ++ "executable with that name." where pkgExeNames = nub (map exeName (executables pkg_descr))@@ -430,7 +492,7 @@ lbi_wo_programs <- getPersistBuildConfig distPref -- Restore info about unconfigured programs, since it is not serialized let lbi = lbi_wo_programs {- withPrograms = restoreProgramConfiguration+ withPrograms = restoreProgramDb (builtinPrograms ++ hookedPrograms hooks) (withPrograms lbi_wo_programs) }@@ -454,7 +516,7 @@ -- Since the list of unconfigured programs is not serialized, -- restore it to the same value as normally used at the beginning -- of a configure run:- configPrograms_ = restoreProgramConfiguration+ configPrograms_ = restoreProgramDb (builtinPrograms ++ hookedPrograms hooks) `fmap` configPrograms_ cFlags, @@ -483,13 +545,13 @@ when exists (removeDirectoryRecursive distPref) -- Any extra files the user wants to remove- mapM_ removeFileOrDirectory (extraTmpFiles pkg_descr)+ traverse_ removeFileOrDirectory (extraTmpFiles pkg_descr) -- If the user wanted to save the config, write it back traverse_ (writePersistBuildConfig distPref) maybeConfig where- removeFileOrDirectory :: FilePath -> IO ()+ removeFileOrDirectory :: FilePath -> NoCallStackIO () removeFileOrDirectory fname = do isDir <- doesDirectoryExist fname isFile <- doesFileExist fname@@ -509,7 +571,8 @@ postConf = finalChecks, buildHook = defaultBuildHook, replHook = defaultReplHook,- copyHook = \desc lbi _ f -> install desc lbi f, -- has correct 'copy' behavior with params+ copyHook = \desc lbi _ f -> install desc lbi f,+ -- 'install' has correct 'copy' behavior with params testHook = defaultTestHook, benchHook = defaultBenchHook, instHook = defaultInstallHook,@@ -517,6 +580,7 @@ cleanHook = \p _ _ f -> clean p f, hscolourHook = \p l h f -> hscolour p l (allSuffixHandlers h) f, haddockHook = \p l h f -> haddock p l (allSuffixHandlers h) f,+ doctestHook = \p l h f -> doctest p l (allSuffixHandlers h) f, regHook = defaultRegHook, unregHook = \p l _ f -> unregister p l f }@@ -553,7 +617,6 @@ -- https://github.com/haskell/cabal/issues/158 where oldCompatPostConf args flags pkg_descr lbi = do let verbosity = fromFlag (configVerbosity flags)- noExtraFlags args confExists <- doesFileExist "configure" when confExists $ runConfigureScript verbosity@@ -562,7 +625,8 @@ pbi <- getHookedBuildInfo verbosity sanityCheckHookedBuildInfo pkg_descr pbi let pkg_descr' = updatePackageDescription pbi pkg_descr- postConf simpleUserHooks args flags pkg_descr' lbi+ lbi' = lbi { localPkgDescr = pkg_descr' }+ postConf simpleUserHooks args flags pkg_descr' lbi' backwardsCompatHack = True @@ -571,22 +635,19 @@ = simpleUserHooks { postConf = defaultPostConf,- preBuild = \_ flags ->- -- not using 'readHook' here because 'build' takes- -- extra args- getHookedBuildInfo $ fromFlag $ buildVerbosity flags,+ preBuild = readHookWithArgs buildVerbosity,+ preCopy = readHookWithArgs copyVerbosity, preClean = readHook cleanVerbosity,- preCopy = readHook copyVerbosity, preInst = readHook installVerbosity, preHscolour = readHook hscolourVerbosity, preHaddock = readHook haddockVerbosity, preReg = readHook regVerbosity, preUnreg = readHook regVerbosity }- where defaultPostConf :: Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()+ where defaultPostConf :: Args -> ConfigFlags -> PackageDescription+ -> LocalBuildInfo -> IO () defaultPostConf args flags pkg_descr lbi = do let verbosity = fromFlag (configVerbosity flags)- noExtraFlags args confExists <- doesFileExist "configure" if confExists then runConfigureScript verbosity@@ -596,10 +657,18 @@ pbi <- getHookedBuildInfo verbosity sanityCheckHookedBuildInfo pkg_descr pbi let pkg_descr' = updatePackageDescription pbi pkg_descr- postConf simpleUserHooks args flags pkg_descr' lbi+ lbi' = lbi { localPkgDescr = pkg_descr' }+ postConf simpleUserHooks args flags pkg_descr' lbi' backwardsCompatHack = False + readHookWithArgs :: (a -> Flag Verbosity) -> Args -> a+ -> IO HookedBuildInfo+ readHookWithArgs get_verbosity _ flags = do+ getHookedBuildInfo verbosity+ where+ verbosity = fromFlag (get_verbosity flags)+ readHook :: (a -> Flag Verbosity) -> Args -> a -> IO HookedBuildInfo readHook get_verbosity a flags = do noExtraFlags a@@ -611,8 +680,8 @@ -> IO () runConfigureScript verbosity backwardsCompatHack flags lbi = do env <- getEnvironment- let programConfig = withPrograms lbi- (ccProg, ccFlags) <- configureCCompiler verbosity programConfig+ let programDb = withPrograms lbi+ (ccProg, ccFlags) <- configureCCompiler verbosity programDb ccProgShort <- getShortPathName ccProg -- The C compiler's compilation and linker flags (e.g. -- "C compiler flags" and "Gcc Linker flags" from GHC) have already@@ -621,24 +690,32 @@ -- We don't try and tell configure which ld to use, as we don't have -- a way to pass its flags too let extraPath = fromNubList $ configProgramPathExtra flags- let cflagsEnv = maybe (unwords ccFlags) (++ (" " ++ unwords ccFlags)) $ lookup "CFLAGS" env+ let cflagsEnv = maybe (unwords ccFlags) (++ (" " ++ unwords ccFlags))+ $ lookup "CFLAGS" env spSep = [searchPathSeparator]- pathEnv = maybe (intercalate spSep extraPath) ((intercalate spSep extraPath ++ spSep)++) $ lookup "PATH" env- overEnv = ("CFLAGS", Just cflagsEnv) : [("PATH", Just pathEnv) | not (null extraPath)]+ pathEnv = maybe (intercalate spSep extraPath)+ ((intercalate spSep extraPath ++ spSep)++) $ lookup "PATH" env+ overEnv = ("CFLAGS", Just cflagsEnv) :+ [("PATH", Just pathEnv) | not (null extraPath)] args' = args ++ ["CC=" ++ ccProgShort] shProg = simpleProgram "sh"- progDb = modifyProgramSearchPath (\p -> map ProgramSearchPathDir extraPath ++ p) emptyProgramDb- shConfiguredProg <- lookupProgram shProg `fmap` configureProgram verbosity shProg progDb+ progDb = modifyProgramSearchPath+ (\p -> map ProgramSearchPathDir extraPath ++ p) emptyProgramDb+ shConfiguredProg <- lookupProgram shProg+ `fmap` configureProgram verbosity shProg progDb case shConfiguredProg of- Just sh -> runProgramInvocation verbosity (programInvocation (sh {programOverrideEnv = overEnv}) args')+ Just sh -> runProgramInvocation verbosity+ (programInvocation (sh {programOverrideEnv = overEnv}) args') Nothing -> die notFoundMsg where args = "./configure" : configureArgs backwardsCompatHack flags - notFoundMsg = "The package has a './configure' script. If you are on Windows, This requires a "+ notFoundMsg = "The package has a './configure' script. "+ ++ "If you are on Windows, This requires a " ++ "Unix compatibility toolchain such as MinGW+MSYS or Cygwin. "- ++ "If you are not on Windows, ensure that an 'sh' command is discoverable in your path."+ ++ "If you are not on Windows, ensure that an 'sh' command "+ ++ "is discoverable in your path." getHookedBuildInfo :: Verbosity -> IO HookedBuildInfo getHookedBuildInfo verbosity = do
Distribution/Simple/Bench.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Bench@@ -15,6 +18,10 @@ ( bench ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.UnqualComponentName import qualified Distribution.PackageDescription as PD import Distribution.Simple.BuildPaths import Distribution.Simple.Compiler@@ -25,7 +32,6 @@ import Distribution.Simple.Utils import Distribution.Text -import Control.Monad ( when, unless, forM ) import System.Exit ( ExitCode(..), exitFailure, exitSuccess ) import System.Directory ( doesFileExist ) import System.FilePath ( (</>), (<.>) )@@ -40,23 +46,19 @@ let verbosity = fromFlag $ benchmarkVerbosity flags benchmarkNames = args pkgBenchmarks = PD.benchmarks pkg_descr- enabledBenchmarks = [ t | t <- pkgBenchmarks- , PD.benchmarkEnabled t- , PD.buildable (PD.benchmarkBuildInfo t) ]+ enabledBenchmarks = map fst (LBI.enabledBenchLBIs pkg_descr lbi) -- Run the benchmark doBench :: PD.Benchmark -> IO ExitCode doBench bm = case PD.benchmarkInterface bm of PD.BenchmarkExeV10 _ _ -> do- let cmd = LBI.buildDir lbi </> PD.benchmarkName bm- </> PD.benchmarkName bm <.> exeExtension+ let cmd = LBI.buildDir lbi </> name </> name <.> exeExtension options = map (benchOption pkg_descr lbi bm) $ benchmarkOptions flags- name = PD.benchmarkName bm -- Check that the benchmark executable exists. exists <- doesFileExist cmd- unless exists $ die $+ unless exists $ die' verbosity $ "Error: Could not find benchmark program \"" ++ cmd ++ "\". Did you build the package first?" @@ -69,34 +71,35 @@ _ -> do notice verbosity $ "No support for running "- ++ "benchmark " ++ PD.benchmarkName bm ++ " of type: "- ++ show (disp $ PD.benchmarkType bm)+ ++ "benchmark " ++ name ++ " of type: "+ ++ display (PD.benchmarkType bm) exitFailure+ where name = unUnqualComponentName $ PD.benchmarkName bm unless (PD.hasBenchmarks pkg_descr) $ do notice verbosity "Package has no benchmarks." exitSuccess when (PD.hasBenchmarks pkg_descr && null enabledBenchmarks) $- die $ "No benchmarks enabled. Did you remember to configure with "+ die' verbosity $ "No benchmarks enabled. Did you remember to configure with " ++ "\'--enable-benchmarks\'?" bmsToRun <- case benchmarkNames of [] -> return enabledBenchmarks- names -> forM names $ \bmName ->+ names -> for names $ \bmName -> let benchmarkMap = zip enabledNames enabledBenchmarks enabledNames = map PD.benchmarkName enabledBenchmarks allNames = map PD.benchmarkName pkgBenchmarks- in case lookup bmName benchmarkMap of+ in case lookup (mkUnqualComponentName bmName) benchmarkMap of Just t -> return t- _ | bmName `elem` allNames ->- die $ "Package configured with benchmark "+ _ | mkUnqualComponentName bmName `elem` allNames ->+ die' verbosity $ "Package configured with benchmark " ++ bmName ++ " disabled."- | otherwise -> die $ "no such benchmark: " ++ bmName+ | otherwise -> die' verbosity $ "no such benchmark: " ++ bmName let totalBenchmarks = length bmsToRun notice verbosity $ "Running " ++ show totalBenchmarks ++ " benchmarks..."- exitcodes <- mapM doBench bmsToRun+ exitcodes <- traverse doBench bmsToRun let allOk = totalBenchmarks == length (filter (== ExitSuccess) exitcodes) unless allOk exitFailure where@@ -120,4 +123,4 @@ env = initialPathTemplateEnv (PD.package pkg_descr) (LBI.localUnitId lbi) (compilerInfo $ LBI.compiler lbi) (LBI.hostPlatform lbi) ++- [(BenchmarkNameVar, toPathTemplate $ PD.benchmarkName bm)]+ [(BenchmarkNameVar, toPathTemplate $ unUnqualComponentName $ PD.benchmarkName bm)]
Distribution/Simple/Build.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Build@@ -20,28 +23,48 @@ startInterpreter, initialBuildSteps,+ componentInitialBuildSteps, writeAutogenFiles, ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.Dependency+import Distribution.Types.LocalBuildInfo+import Distribution.Types.TargetInfo+import Distribution.Types.ComponentRequestedSpec+import Distribution.Types.ForeignLib+import Distribution.Types.MungedPackageId+import Distribution.Types.MungedPackageName+import Distribution.Types.UnqualComponentName+import Distribution.Types.ComponentLocalBuildInfo+import Distribution.Types.ExecutableScope+ import Distribution.Package+import Distribution.Backpack+import Distribution.Backpack.DescribeUnitId import qualified Distribution.Simple.GHC as GHC import qualified Distribution.Simple.GHCJS as GHCJS import qualified Distribution.Simple.JHC as JHC import qualified Distribution.Simple.LHC as LHC import qualified Distribution.Simple.UHC as UHC import qualified Distribution.Simple.HaskellSuite as HaskellSuite+import qualified Distribution.Simple.PackageIndex as Index import qualified Distribution.Simple.Build.Macros as Build.Macros import qualified Distribution.Simple.Build.PathsModule as Build.PathsModule+import qualified Distribution.Simple.Program.HcPkg as HcPkg import Distribution.Simple.Compiler hiding (Flag) import Distribution.PackageDescription hiding (Flag) import qualified Distribution.InstalledPackageInfo as IPI+import Distribution.InstalledPackageInfo (InstalledPackageInfo) import qualified Distribution.ModuleName as ModuleName-import Distribution.ModuleName (ModuleName) import Distribution.Simple.Setup import Distribution.Simple.BuildTarget+import Distribution.Simple.BuildToolDepends import Distribution.Simple.PreProcess import Distribution.Simple.LocalBuildInfo import Distribution.Simple.Program.Types@@ -56,18 +79,12 @@ import Distribution.Text import Distribution.Verbosity -import qualified Data.Map as Map-import qualified Data.Set as Set-import Data.Either- ( partitionEithers )-import Data.List- ( intersect )+import Distribution.Compat.Graph (IsNode(..))+ import Control.Monad- ( when, unless, forM_ )-import System.FilePath- ( (</>), (<.>) )-import System.Directory- ( getCurrentDirectory )+import qualified Data.Set as Set+import System.FilePath ( (</>), (<.>), takeDirectory )+import System.Directory ( getCurrentDirectory ) -- ----------------------------------------------------------------------------- -- |Build the libraries and executables in this package.@@ -78,31 +95,37 @@ -> [ PPSuffixHandler ] -- ^ preprocessors to run before compiling -> IO () build pkg_descr lbi flags suffixes = do- let distPref = fromFlag (buildDistPref flags)- verbosity = fromFlag (buildVerbosity flags)-- targets <- readBuildTargets pkg_descr (buildArgs flags)- targets' <- checkBuildTargets verbosity pkg_descr targets- let componentsToBuild = map fst (componentsInBuildOrder lbi (map fst targets'))+ targets <- readTargetInfos verbosity pkg_descr lbi (buildArgs flags)+ let componentsToBuild = neededTargetsInBuildOrder' pkg_descr lbi (map nodeKey targets) info verbosity $ "Component build order: "- ++ intercalate ", " (map showComponentName componentsToBuild)+ ++ intercalate ", "+ (map (showComponentName . componentLocalName . targetCLBI)+ componentsToBuild) - initialBuildSteps distPref pkg_descr lbi verbosity when (null targets) $ -- Only bother with this message if we're building the whole package setupMessage verbosity "Building" (packageId pkg_descr) internalPackageDB <- createInternalPackageDB verbosity lbi distPref - withComponentsInBuildOrder pkg_descr lbi componentsToBuild $ \comp clbi ->+ (\f -> foldM_ f (installedPkgs lbi) componentsToBuild) $ \index target -> do+ let comp = targetComponent target+ clbi = targetCLBI target+ componentInitialBuildSteps distPref pkg_descr lbi clbi verbosity let bi = componentBuildInfo comp progs' = addInternalBuildTools pkg_descr lbi bi (withPrograms lbi) lbi' = lbi { withPrograms = progs',- withPackageDB = withPackageDB lbi ++ [internalPackageDB]+ withPackageDB = withPackageDB lbi ++ [internalPackageDB],+ installedPkgs = index }- in buildComponent verbosity (buildNumJobs flags) pkg_descr- lbi' suffixes comp clbi distPref+ mb_ipi <- buildComponent verbosity (buildNumJobs flags) pkg_descr+ lbi' suffixes comp clbi distPref+ return (maybe index (Index.insert `flip` index) mb_ipi)+ return ()+ where+ distPref = fromFlag (buildDistPref flags)+ verbosity = fromFlag (buildVerbosity flags) repl :: PackageDescription -- ^ Mostly information from the .cabal file@@ -115,19 +138,16 @@ let distPref = fromFlag (replDistPref flags) verbosity = fromFlag (replVerbosity flags) - targets <- readBuildTargets pkg_descr args- targets' <- case targets of- [] -> return $ take 1 [ componentName c- | c <- pkgEnabledComponents pkg_descr ]- [target] -> fmap (map fst) (checkBuildTargets verbosity pkg_descr [target])- _ -> die $ "The 'repl' command does not support multiple targets at once."- let componentsToBuild = componentsInBuildOrder lbi targets'- componentForRepl = last componentsToBuild+ target <- readTargetInfos verbosity pkg_descr lbi args >>= \r -> case r of+ -- This seems DEEPLY questionable.+ [] -> return (head (allTargetsInBuildOrder' pkg_descr lbi))+ [target] -> return target+ _ -> die' verbosity $ "The 'repl' command does not support multiple targets at once."+ let componentsToBuild = neededTargetsInBuildOrder' pkg_descr lbi [nodeKey target] debug verbosity $ "Component build order: " ++ intercalate ", "- [ showComponentName c | (c,_) <- componentsToBuild ]-- initialBuildSteps distPref pkg_descr lbi verbosity+ (map (showComponentName . componentLocalName . targetCLBI)+ componentsToBuild) internalPackageDB <- createInternalPackageDB verbosity lbi distPref @@ -140,17 +160,20 @@ -- build any dependent components sequence_- [ let comp = getComponent pkg_descr cname- lbi' = lbiForComponent comp lbi- in buildComponent verbosity NoFlag- pkg_descr lbi' suffixes comp clbi distPref- | (cname, clbi) <- init componentsToBuild ]+ [ do let clbi = targetCLBI subtarget+ comp = targetComponent subtarget+ lbi' = lbiForComponent comp lbi+ componentInitialBuildSteps distPref pkg_descr lbi clbi verbosity+ buildComponent verbosity NoFlag+ pkg_descr lbi' suffixes comp clbi distPref+ | subtarget <- init componentsToBuild ] -- REPL for target components- let (cname, clbi) = componentForRepl- comp = getComponent pkg_descr cname+ let clbi = targetCLBI target+ comp = targetComponent target lbi' = lbiForComponent comp lbi- in replComponent verbosity pkg_descr lbi' suffixes comp clbi distPref+ componentInitialBuildSteps distPref pkg_descr lbi clbi verbosity+ replComponent verbosity pkg_descr lbi' suffixes comp clbi distPref -- | Start an interpreter without loading any package files.@@ -160,7 +183,7 @@ case compilerFlavor comp of GHC -> GHC.startInterpreter verbosity programDb comp platform packageDBs GHCJS -> GHCJS.startInterpreter verbosity programDb comp platform packageDBs- _ -> die "A REPL is not supported with this compiler."+ _ -> die' verbosity "A REPL is not supported with this compiler." buildComponent :: Verbosity -> Flag (Maybe Int)@@ -170,46 +193,74 @@ -> Component -> ComponentLocalBuildInfo -> FilePath- -> IO ()+ -> IO (Maybe InstalledPackageInfo) buildComponent verbosity numJobs pkg_descr lbi suffixes comp@(CLib lib) clbi distPref = do- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi- info verbosity "Building library..."+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi+ setupMessage' verbosity "Building" (packageId pkg_descr)+ (componentLocalName clbi) (maybeComponentInstantiatedWith clbi) let libbi = libBuildInfo lib lib' = lib { libBuildInfo = addExtraCSources libbi extras } buildLib verbosity numJobs pkg_descr lbi lib' clbi - -- Register the library in-place, so exes can depend- -- on internally defined libraries.- pwd <- getCurrentDirectory- let -- The in place registration uses the "-inplace" suffix, not an ABI hash- installedPkgInfo = inplaceInstalledPackageInfo pwd distPref pkg_descr- (AbiHash "") lib' lbi clbi+ let oneComponentRequested (OneComponentRequestedSpec _) = True+ oneComponentRequested _ = False+ -- Don't register inplace if we're only building a single component;+ -- it's not necessary because there won't be any subsequent builds+ -- that need to tag us+ if (not (oneComponentRequested (componentEnabledSpec lbi)))+ then do+ -- Register the library in-place, so exes can depend+ -- on internally defined libraries.+ pwd <- getCurrentDirectory+ let -- The in place registration uses the "-inplace" suffix, not an ABI hash+ installedPkgInfo = inplaceInstalledPackageInfo pwd distPref pkg_descr+ -- NB: Use a fake ABI hash to avoid+ -- needing to recompute it every build.+ (mkAbiHash "inplace") lib' lbi clbi - registerPackage verbosity (compiler lbi) (withPrograms lbi) False- (withPackageDB lbi) installedPkgInfo+ debug verbosity $ "Registering inplace:\n" ++ (IPI.showInstalledPackageInfo installedPkgInfo)+ registerPackage verbosity (compiler lbi) (withPrograms lbi)+ (withPackageDB lbi) installedPkgInfo+ HcPkg.defaultRegisterOptions {+ HcPkg.registerMultiInstance = True+ }+ return (Just installedPkgInfo)+ else return Nothing buildComponent verbosity numJobs pkg_descr lbi suffixes+ comp@(CFLib flib) clbi _distPref = do+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ setupMessage' verbosity "Building" (packageId pkg_descr)+ (componentLocalName clbi) (maybeComponentInstantiatedWith clbi)+ buildFLib verbosity numJobs pkg_descr lbi flib clbi+ return Nothing++buildComponent verbosity numJobs pkg_descr lbi suffixes comp@(CExe exe) clbi _ = do- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi- info verbosity $ "Building executable " ++ exeName exe ++ "..."+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi+ setupMessage' verbosity "Building" (packageId pkg_descr)+ (componentLocalName clbi) (maybeComponentInstantiatedWith clbi) let ebi = buildInfo exe exe' = exe { buildInfo = addExtraCSources ebi extras } buildExe verbosity numJobs pkg_descr lbi exe' clbi+ return Nothing buildComponent verbosity numJobs pkg_descr lbi suffixes comp@(CTest test@TestSuite { testInterface = TestSuiteExeV10{} }) clbi _distPref = do let exe = testSuiteExeV10AsExe test- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi- info verbosity $ "Building test suite " ++ testName test ++ "..."+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi+ setupMessage' verbosity "Building" (packageId pkg_descr)+ (componentLocalName clbi) (maybeComponentInstantiatedWith clbi) let ebi = buildInfo exe exe' = exe { buildInfo = addExtraCSources ebi extras } buildExe verbosity numJobs pkg_descr lbi exe' clbi+ return Nothing buildComponent verbosity numJobs pkg_descr lbi0 suffixes@@ -224,42 +275,49 @@ pwd <- getCurrentDirectory let (pkg, lib, libClbi, lbi, ipi, exe, exeClbi) = testSuiteLibV09AsLibAndExe pkg_descr test clbi lbi0 distPref pwd- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi- info verbosity $ "Building test suite " ++ testName test ++ "..."+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi+ setupMessage' verbosity "Building" (packageId pkg_descr)+ (componentLocalName clbi) (maybeComponentInstantiatedWith clbi) buildLib verbosity numJobs pkg lbi lib libClbi -- NB: need to enable multiple instances here, because on 7.10+ -- the package name is the same as the library, and we still -- want the registration to go through.- registerPackage verbosity (compiler lbi) (withPrograms lbi) True+ registerPackage verbosity (compiler lbi) (withPrograms lbi) (withPackageDB lbi) ipi+ HcPkg.defaultRegisterOptions {+ HcPkg.registerMultiInstance = True+ } let ebi = buildInfo exe exe' = exe { buildInfo = addExtraCSources ebi extras } buildExe verbosity numJobs pkg_descr lbi exe' exeClbi+ return Nothing -- Can't depend on test suite -buildComponent _ _ _ _ _+buildComponent verbosity _ _ _ _ (CTest TestSuite { testInterface = TestSuiteUnsupported tt }) _ _ =- die $ "No support for building test suite type " ++ display tt+ die' verbosity $ "No support for building test suite type " ++ display tt buildComponent verbosity numJobs pkg_descr lbi suffixes comp@(CBench bm@Benchmark { benchmarkInterface = BenchmarkExeV10 {} }) clbi _ = do let (exe, exeClbi) = benchmarkExeV10asExe bm clbi- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi- info verbosity $ "Building benchmark " ++ benchmarkName bm ++ "..."+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi+ setupMessage' verbosity "Building" (packageId pkg_descr)+ (componentLocalName clbi) (maybeComponentInstantiatedWith clbi) let ebi = buildInfo exe exe' = exe { buildInfo = addExtraCSources ebi extras } buildExe verbosity numJobs pkg_descr lbi exe' exeClbi+ return Nothing -buildComponent _ _ _ _ _+buildComponent verbosity _ _ _ _ (CBench Benchmark { benchmarkInterface = BenchmarkUnsupported tt }) _ _ =- die $ "No support for building benchmark type " ++ display tt+ die' verbosity $ "No support for building benchmark type " ++ display tt -- | Add extra C sources generated by preprocessing to build@@ -281,16 +339,21 @@ -> IO () replComponent verbosity pkg_descr lbi suffixes comp@(CLib lib) clbi _ = do- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi let libbi = libBuildInfo lib lib' = lib { libBuildInfo = libbi { cSources = cSources libbi ++ extras } } replLib verbosity pkg_descr lbi lib' clbi replComponent verbosity pkg_descr lbi suffixes+ comp@(CFLib flib) clbi _ = do+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ replFLib verbosity pkg_descr lbi flib clbi++replComponent verbosity pkg_descr lbi suffixes comp@(CExe exe) clbi _ = do- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi let ebi = buildInfo exe exe' = exe { buildInfo = ebi { cSources = cSources ebi ++ extras } } replExe verbosity pkg_descr lbi exe' clbi@@ -300,8 +363,8 @@ comp@(CTest test@TestSuite { testInterface = TestSuiteExeV10{} }) clbi _distPref = do let exe = testSuiteExeV10AsExe test- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi let ebi = buildInfo exe exe' = exe { buildInfo = ebi { cSources = cSources ebi ++ extras } } replExe verbosity pkg_descr lbi exe' clbi@@ -314,34 +377,34 @@ pwd <- getCurrentDirectory let (pkg, lib, libClbi, lbi, _, _, _) = testSuiteLibV09AsLibAndExe pkg_descr test clbi lbi0 distPref pwd- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi let libbi = libBuildInfo lib lib' = lib { libBuildInfo = libbi { cSources = cSources libbi ++ extras } } replLib verbosity pkg lbi lib' libClbi -replComponent _ _ _ _+replComponent verbosity _ _ _ (CTest TestSuite { testInterface = TestSuiteUnsupported tt }) _ _ =- die $ "No support for building test suite type " ++ display tt+ die' verbosity $ "No support for building test suite type " ++ display tt replComponent verbosity pkg_descr lbi suffixes comp@(CBench bm@Benchmark { benchmarkInterface = BenchmarkExeV10 {} }) clbi _ = do let (exe, exeClbi) = benchmarkExeV10asExe bm clbi- preprocessComponent pkg_descr comp lbi False verbosity suffixes- extras <- preprocessExtras comp lbi+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes+ extras <- preprocessExtras verbosity comp lbi let ebi = buildInfo exe exe' = exe { buildInfo = ebi { cSources = cSources ebi ++ extras } } replExe verbosity pkg_descr lbi exe' exeClbi -replComponent _ _ _ _+replComponent verbosity _ _ _ (CBench Benchmark { benchmarkInterface = BenchmarkUnsupported tt }) _ _ =- die $ "No support for building benchmark type " ++ display tt+ die' verbosity $ "No support for building benchmark type " ++ display tt ---------------------------------------------------- -- Shared code for buildComponent and replComponent@@ -353,6 +416,7 @@ Executable { exeName = testName test, modulePath = mainFile,+ exeScope = ExecutablePublic, buildInfo = testBuildInfo test } testSuiteExeV10AsExe TestSuite{} = error "testSuiteExeV10AsExe: wrong kind"@@ -376,60 +440,74 @@ where bi = testBuildInfo test lib = Library {+ libName = Nothing, exposedModules = [ m ], reexportedModules = [],- requiredSignatures = [],- exposedSignatures = [],+ signatures = [], libExposed = True, libBuildInfo = bi }- -- NB: temporary hack; I have a refactor which solves this- cid = computeComponentId (package pkg_descr)- (CTestName (testName test))- (map ((\(SimpleUnitId cid0) -> cid0) . fst)- (componentPackageDeps clbi))- (flagAssignment lbi)- uid = SimpleUnitId cid- (pkg_name, compat_key) = computeCompatPackageKey- (compiler lbi) (package pkg_descr)- (CTestName (testName test)) uid+ -- This is, like, the one place where we use a CTestName for a library.+ -- Should NOT use library name, since that could conflict!+ PackageIdentifier pkg_name pkg_ver = package pkg_descr+ compat_name = computeCompatPackageName pkg_name (Just (testName test))+ compat_key = computeCompatPackageKey (compiler lbi) compat_name pkg_ver (componentUnitId clbi) libClbi = LibComponentLocalBuildInfo { componentPackageDeps = componentPackageDeps clbi- , componentPackageRenaming = componentPackageRenaming clbi- , componentUnitId = uid+ , componentInternalDeps = componentInternalDeps clbi+ , componentIsIndefinite_ = False+ , componentExeDeps = componentExeDeps clbi+ , componentLocalName = CSubLibName (testName test)+ , componentIsPublic = False+ , componentIncludes = componentIncludes clbi+ , componentUnitId = componentUnitId clbi+ , componentComponentId = componentComponentId clbi+ , componentInstantiatedWith = []+ , componentCompatPackageName = compat_name , componentCompatPackageKey = compat_key , componentExposedModules = [IPI.ExposedModule m Nothing] } pkg = pkg_descr {- package = (package pkg_descr) { pkgName = pkg_name }+ package = (package pkg_descr) { pkgName = mkPackageName $ unMungedPackageName compat_name } , buildDepends = targetBuildDepends $ testBuildInfo test , executables = [] , testSuites = []- , library = Just lib+ , subLibraries = [lib] }- ipi = inplaceInstalledPackageInfo pwd distPref pkg (AbiHash "") lib lbi libClbi+ ipi = inplaceInstalledPackageInfo pwd distPref pkg (mkAbiHash "") lib lbi libClbi testDir = buildDir lbi </> stubName test </> stubName test ++ "-tmp" testLibDep = thisPackageVersion $ package pkg exe = Executable {- exeName = stubName test,+ exeName = mkUnqualComponentName $ stubName test, modulePath = stubFilePath test,+ exeScope = ExecutablePublic, buildInfo = (testBuildInfo test) { hsSourceDirs = [ testDir ], targetBuildDepends = testLibDep- : (targetBuildDepends $ testBuildInfo test),- targetBuildRenaming = Map.empty+ : (targetBuildDepends $ testBuildInfo test) } } -- | The stub executable needs a new 'ComponentLocalBuildInfo' -- that exposes the relevant test suite library.+ deps = (IPI.installedUnitId ipi, mungedId ipi)+ : (filter (\(_, x) -> let name = unMungedPackageName $ mungedName x+ in name == "Cabal" || name == "base")+ (componentPackageDeps clbi)) exeClbi = ExeComponentLocalBuildInfo {- componentPackageDeps =- (IPI.installedUnitId ipi, packageId ipi)- : (filter (\(_, x) -> let PackageName name = pkgName x- in name == "Cabal" || name == "base")- (componentPackageDeps clbi)),- componentPackageRenaming = Map.empty+ -- TODO: this is a hack, but as long as this is unique+ -- (doesn't clobber something) we won't run into trouble+ componentUnitId = mkUnitId (stubName test),+ componentComponentId = mkComponentId (stubName test),+ componentInternalDeps = [componentUnitId clbi],+ componentExeDeps = [],+ componentLocalName = CExeName $ mkUnqualComponentName $ stubName test,+ componentPackageDeps = deps,+ -- Assert DefUnitId invariant!+ -- Executable can't be indefinite, so dependencies must+ -- be definite packages.+ componentIncludes = zip (map (DefiniteUnitId . unsafeMkDefUnitId . fst) deps)+ (repeat defaultRenaming) } testSuiteLibV09AsLibAndExe _ TestSuite{} _ _ _ _ = error "testSuiteLibV09AsLibAndExe: wrong kind" @@ -444,11 +522,17 @@ exe = Executable { exeName = benchmarkName bm, modulePath = f,+ exeScope = ExecutablePublic, buildInfo = benchmarkBuildInfo bm } exeClbi = ExeComponentLocalBuildInfo {+ componentUnitId = componentUnitId clbi,+ componentComponentId = componentComponentId clbi,+ componentLocalName = CExeName (benchmarkName bm),+ componentInternalDeps = componentInternalDeps clbi,+ componentExeDeps = componentExeDeps clbi, componentPackageDeps = componentPackageDeps clbi,- componentPackageRenaming = componentPackageRenaming clbi+ componentIncludes = componentIncludes clbi } benchmarkExeV10asExe Benchmark{} _ = error "benchmarkExeV10asExe: wrong kind" @@ -459,12 +543,10 @@ createInternalPackageDB verbosity lbi distPref = do existsAlready <- doesPackageDBExist dbPath when existsAlready $ deletePackageDB dbPath- createPackageDB verbosity (compiler lbi) (withPrograms lbi) False dbPath + createPackageDB verbosity (compiler lbi) (withPrograms lbi) False dbPath return (SpecificPackageDB dbPath) where- dbPath = case compilerFlavor (compiler lbi) of- UHC -> UHC.inplacePackageDbPath lbi- _ -> distPref </> "package.conf.inplace"+ dbPath = internalPackageDBPath lbi distPref addInternalBuildTools :: PackageDescription -> LocalBuildInfo -> BuildInfo -> ProgramDb -> ProgramDb@@ -472,14 +554,10 @@ foldr updateProgram progs internalBuildTools where internalBuildTools =- [ simpleConfiguredProgram toolName (FoundOnSystem toolLocation)- | toolName <- toolNames- , let toolLocation = buildDir lbi </> toolName </> toolName <.> exeExtension ]- toolNames = intersect buildToolNames internalExeNames- internalExeNames = map exeName (executables pkg)- buildToolNames = map buildToolName (buildTools bi)- where- buildToolName (Dependency (PackageName name) _ ) = name+ [ simpleConfiguredProgram toolName' (FoundOnSystem toolLocation)+ | toolName <- getAllInternalToolDependencies pkg bi+ , let toolName' = unUnqualComponentName toolName+ , let toolLocation = buildDir lbi </> toolName' </> toolName' <.> exeExtension ] -- TODO: build separate libs in separate dirs so that we can build@@ -495,8 +573,20 @@ LHC -> LHC.buildLib verbosity pkg_descr lbi lib clbi UHC -> UHC.buildLib verbosity pkg_descr lbi lib clbi HaskellSuite {} -> HaskellSuite.buildLib verbosity pkg_descr lbi lib clbi- _ -> die "Building is not supported with this compiler."+ _ -> die' verbosity "Building is not supported with this compiler." +-- | Build a foreign library+--+-- NOTE: We assume that we already checked that we can actually build the+-- foreign library in configure.+buildFLib :: Verbosity -> Flag (Maybe Int)+ -> PackageDescription -> LocalBuildInfo+ -> ForeignLib -> ComponentLocalBuildInfo -> IO ()+buildFLib verbosity numJobs pkg_descr lbi flib clbi =+ case compilerFlavor (compiler lbi) of+ GHC -> GHC.buildFLib verbosity numJobs pkg_descr lbi flib clbi+ _ -> die' verbosity "Building is not supported with this compiler."+ buildExe :: Verbosity -> Flag (Maybe Int) -> PackageDescription -> LocalBuildInfo -> Executable -> ComponentLocalBuildInfo -> IO ()@@ -507,7 +597,7 @@ JHC -> JHC.buildExe verbosity pkg_descr lbi exe clbi LHC -> LHC.buildExe verbosity pkg_descr lbi exe clbi UHC -> UHC.buildExe verbosity pkg_descr lbi exe clbi- _ -> die "Building is not supported with this compiler."+ _ -> die' verbosity "Building is not supported with this compiler." replLib :: Verbosity -> PackageDescription -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO ()@@ -517,7 +607,7 @@ -- NoFlag as the numJobs parameter. GHC -> GHC.replLib verbosity NoFlag pkg_descr lbi lib clbi GHCJS -> GHCJS.replLib verbosity NoFlag pkg_descr lbi lib clbi- _ -> die "A REPL is not supported for this compiler."+ _ -> die' verbosity "A REPL is not supported for this compiler." replExe :: Verbosity -> PackageDescription -> LocalBuildInfo -> Executable -> ComponentLocalBuildInfo -> IO ()@@ -525,82 +615,71 @@ case compilerFlavor (compiler lbi) of GHC -> GHC.replExe verbosity NoFlag pkg_descr lbi exe clbi GHCJS -> GHCJS.replExe verbosity NoFlag pkg_descr lbi exe clbi- _ -> die "A REPL is not supported for this compiler."+ _ -> die' verbosity "A REPL is not supported for this compiler." +replFLib :: Verbosity -> PackageDescription -> LocalBuildInfo+ -> ForeignLib -> ComponentLocalBuildInfo -> IO ()+replFLib verbosity pkg_descr lbi exe clbi =+ case compilerFlavor (compiler lbi) of+ GHC -> GHC.replFLib verbosity NoFlag pkg_descr lbi exe clbi+ _ -> die' verbosity "A REPL is not supported for this compiler." +-- | Runs 'componentInitialBuildSteps' on every configured component. initialBuildSteps :: FilePath -- ^"dist" prefix -> PackageDescription -- ^mostly information from the .cabal file -> LocalBuildInfo -- ^Configuration information -> Verbosity -- ^The verbosity to use -> IO ()-initialBuildSteps _distPref pkg_descr lbi verbosity = do- -- check that there's something to build- unless (not . null $ allBuildInfo pkg_descr) $ do- let name = display (packageId pkg_descr)- die $ "No libraries, executables, tests, or benchmarks "- ++ "are enabled for package " ++ name ++ "."+initialBuildSteps distPref pkg_descr lbi verbosity =+ withAllComponentsInBuildOrder pkg_descr lbi $ \_comp clbi ->+ componentInitialBuildSteps distPref pkg_descr lbi clbi verbosity - createDirectoryIfMissingVerbose verbosity True (buildDir lbi)+-- | Creates the autogenerated files for a particular configured component.+componentInitialBuildSteps :: FilePath -- ^"dist" prefix+ -> PackageDescription -- ^mostly information from the .cabal file+ -> LocalBuildInfo -- ^Configuration information+ -> ComponentLocalBuildInfo+ -> Verbosity -- ^The verbosity to use+ -> IO ()+componentInitialBuildSteps _distPref pkg_descr lbi clbi verbosity = do+ createDirectoryIfMissingVerbose verbosity True (componentBuildDir lbi clbi) - writeAutogenFiles verbosity pkg_descr lbi+ writeAutogenFiles verbosity pkg_descr lbi clbi -- | Generate and write out the Paths_<pkg>.hs and cabal_macros.h files -- writeAutogenFiles :: Verbosity -> PackageDescription -> LocalBuildInfo+ -> ComponentLocalBuildInfo -> IO ()-writeAutogenFiles verbosity pkg lbi = do- createDirectoryIfMissingVerbose verbosity True (autogenModulesDir lbi)-- let pathsModulePath = autogenModulesDir lbi- </> ModuleName.toFilePath (autogenModuleName pkg) <.> "hs"- rewriteFile pathsModulePath (Build.PathsModule.generate pkg lbi)-- let cppHeaderPath = autogenModulesDir lbi </> cppHeaderName- rewriteFile cppHeaderPath (Build.Macros.generate pkg lbi)---- | Check that the given build targets are valid in the current context.------ Also swizzle into a more convenient form.----checkBuildTargets :: Verbosity -> PackageDescription -> [BuildTarget]- -> IO [(ComponentName, Maybe (Either ModuleName FilePath))]-checkBuildTargets _ pkg [] =- return [ (componentName c, Nothing) | c <- pkgEnabledComponents pkg ]--checkBuildTargets verbosity pkg targets = do-- let (enabled, disabled) =- partitionEithers- [ case componentDisabledReason (getComponent pkg cname) of- Nothing -> Left target'- Just reason -> Right (cname, reason)- | target <- targets- , let target'@(cname,_) = swizzleTarget target ]-- case disabled of- [] -> return ()- ((cname,reason):_) -> die $ formatReason (showComponentName cname) reason-- forM_ [ (c, t) | (c, Just t) <- enabled ] $ \(c, t) ->- warn verbosity $ "Ignoring '" ++ either display id t ++ ". The whole "- ++ showComponentName c ++ " will be built. (Support for "- ++ "module and file targets has not been implemented yet.)"+writeAutogenFiles verbosity pkg lbi clbi = do+ createDirectoryIfMissingVerbose verbosity True (autogenComponentModulesDir lbi clbi) - return enabled+ let pathsModulePath = autogenComponentModulesDir lbi clbi+ </> ModuleName.toFilePath (autogenPathsModuleName pkg) <.> "hs"+ pathsModuleDir = takeDirectory pathsModulePath+ -- Ensure that the directory exists!+ createDirectoryIfMissingVerbose verbosity True pathsModuleDir+ rewriteFileEx verbosity pathsModulePath (Build.PathsModule.generate pkg lbi clbi) - where- swizzleTarget (BuildTargetComponent c) = (c, Nothing)- swizzleTarget (BuildTargetModule c m) = (c, Just (Left m))- swizzleTarget (BuildTargetFile c f) = (c, Just (Right f))+ --TODO: document what we're doing here, and move it to its own function+ case clbi of+ LibComponentLocalBuildInfo { componentInstantiatedWith = insts } ->+ -- Write out empty hsig files for all requirements, so that GHC+ -- has a source file to look at it when it needs to typecheck+ -- a signature. It's harmless to write these out even when+ -- there is a real hsig file written by the user, since+ -- include path ordering ensures that the real hsig file+ -- will always be picked up before the autogenerated one.+ for_ (map fst insts) $ \mod_name -> do+ let sigPath = autogenComponentModulesDir lbi clbi+ </> ModuleName.toFilePath mod_name <.> "hsig"+ createDirectoryIfMissingVerbose verbosity True (takeDirectory sigPath)+ rewriteFileEx verbosity sigPath $+ "{-# LANGUAGE NoImplicitPrelude #-}\n" +++ "signature " ++ display mod_name ++ " where"+ _ -> return () - formatReason cn DisabledComponent =- "Cannot build the " ++ cn ++ " because the component is marked "- ++ "as disabled in the .cabal file."- formatReason cn DisabledAllTests =- "Cannot build the " ++ cn ++ " because test suites are not "- ++ "enabled. Run configure with the flag --enable-tests"- formatReason cn DisabledAllBenchmarks =- "Cannot build the " ++ cn ++ " because benchmarks are not "- ++ "enabled. Re-run configure with the flag --enable-benchmarks"+ let cppHeaderPath = autogenComponentModulesDir lbi clbi </> cppHeaderName+ rewriteFileEx verbosity cppHeaderPath (Build.Macros.generate pkg lbi clbi)
Distribution/Simple/Build/Macros.hs view
@@ -17,50 +17,86 @@ -- /package/ in use is @>= A.B.C@, using the normal ordering on version -- numbers. --+-- TODO Figure out what to do about backpack and internal libraries. It is very+-- suspecious that this stuff works with munged package identifiers module Distribution.Simple.Build.Macros ( generate, generatePackageVersionMacros, ) where -import Data.Maybe- ( isJust )-import Distribution.Package- ( PackageIdentifier(PackageIdentifier) )+import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Version- ( Version(versionBranch) ) import Distribution.PackageDescription- ( PackageDescription ( package ) ) import Distribution.Simple.LocalBuildInfo- ( LocalBuildInfo(withPrograms), externalPackageDeps- , localComponentId, localCompatPackageKey ) import Distribution.Simple.Program.Db- ( configuredPrograms ) import Distribution.Simple.Program.Types- ( ConfiguredProgram(programId, programVersion) )+import Distribution.Types.MungedPackageId+import Distribution.Types.MungedPackageName+import Distribution.Types.PackageId import Distribution.Text- ( display ) -- ------------------------------------------------------------ -- * Generate cabal_macros.h -- ------------------------------------------------------------ +-- Invariant: HeaderLines always has a trailing newline+type HeaderLines = String++line :: String -> HeaderLines+line str = str ++ "\n"++ifndef :: String -> HeaderLines -> HeaderLines+ifndef macro body =+ line ("#ifndef " ++ macro) +++ body +++ line ("#endif /* " ++ macro ++ " */")++define :: String -> Maybe [String] -> String -> HeaderLines+define macro params val =+ line ("#define " ++ macro ++ f params ++ " " ++ val)+ where+ f Nothing = ""+ f (Just xs) = "(" ++ intercalate "," xs ++ ")"++defineStr :: String -> String -> HeaderLines+defineStr macro str = define macro Nothing (show str)++ifndefDefine :: String -> Maybe [String] -> String -> HeaderLines+ifndefDefine macro params str =+ ifndef macro (define macro params str)++ifndefDefineStr :: String -> String -> HeaderLines+ifndefDefineStr macro str =+ ifndef macro (defineStr macro str)+ -- | The contents of the @cabal_macros.h@ for the given configured package. ---generate :: PackageDescription -> LocalBuildInfo -> String-generate pkg_descr lbi =+generate :: PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> String+generate pkg_descr lbi clbi = "/* DO NOT EDIT: This file is automatically generated by Cabal */\n\n" ++ generatePackageVersionMacros- (package pkg_descr : map snd (externalPackageDeps lbi)) +++ (package pkg_descr : map getPid (componentPackageDeps clbi)) ++ generateToolVersionMacros (configuredPrograms . withPrograms $ lbi) ++- generateComponentIdMacro lbi+ generateComponentIdMacro lbi clbi +++ generateCurrentPackageVersion pkg_descr+ where+ getPid (_, MungedPackageId mpn v) =+ PackageIdentifier pn v+ where+ -- NB: Drop the component name! We're just reporting package versions.+ -- This would have to be revisited if you are allowed to depend+ -- on different versions of the same package+ pn = fst (decodeCompatPackageName mpn) -- | Helper function that generates just the @VERSION_pkg@ and @MIN_VERSION_pkg@ -- macros for a list of package ids (usually used with the specific deps of -- a configured package). ---generatePackageVersionMacros :: [PackageIdentifier] -> String+generatePackageVersionMacros :: [PackageId] -> String generatePackageVersionMacros pkgids = concat- [ "/* package " ++ display pkgid ++ " */\n"+ [ line ("/* package " ++ display pkgid ++ " */") ++ generateMacros "" pkgname version | pkgid@(PackageIdentifier name version) <- pkgids , let pkgname = map fixchar (display name)@@ -71,7 +107,7 @@ -- generateToolVersionMacros :: [ConfiguredProgram] -> String generateToolVersionMacros progs = concat- [ "/* tool " ++ progid ++ " */\n"+ [ line ("/* tool " ++ progid ++ " */") ++ generateMacros "TOOL_" progname version | prog <- progs , isJust . programVersion $ prog@@ -84,26 +120,38 @@ -- 'generateToolVersionMacros'. -- generateMacros :: String -> String -> Version -> String-generateMacros prefix name version =+generateMacros macro_prefix name version = concat- ["#define ", prefix, "VERSION_",name," ",show (display version),"\n"- ,"#define MIN_", prefix, "VERSION_",name,"(major1,major2,minor) (\\\n"- ," (major1) < ",major1," || \\\n"- ," (major1) == ",major1," && (major2) < ",major2," || \\\n"- ," (major1) == ",major1," && (major2) == ",major2," && (minor) <= ",minor,")"- ,"\n\n"- ]+ [ifndefDefineStr (macro_prefix ++ "VERSION_" ++ name) (display version)+ ,ifndefDefine ("MIN_" ++ macro_prefix ++ "VERSION_" ++ name)+ (Just ["major1","major2","minor"])+ $ concat [+ "(\\\n"+ ," (major1) < ",major1," || \\\n"+ ," (major1) == ",major1," && (major2) < ",major2," || \\\n"+ ," (major1) == ",major1," && (major2) == ",major2," && (minor) <= ",minor,")"+ ]+ ,"\n"] where- (major1:major2:minor:_) = map show (versionBranch version ++ repeat 0)+ (major1:major2:minor:_) = map show (versionNumbers version ++ repeat 0) -- | Generate the @CURRENT_COMPONENT_ID@ definition for the component ID -- of the current package.-generateComponentIdMacro :: LocalBuildInfo -> String-generateComponentIdMacro lbi =- concat- [ "#define CURRENT_COMPONENT_ID \"" ++ display (localComponentId lbi) ++ "\"\n\n"- , "#define CURRENT_PACKAGE_KEY \"" ++ localCompatPackageKey lbi ++ "\"\n\n"- ]+generateComponentIdMacro :: LocalBuildInfo -> ComponentLocalBuildInfo -> String+generateComponentIdMacro _lbi clbi =+ concat $+ [case clbi of+ LibComponentLocalBuildInfo{} ->+ ifndefDefineStr "CURRENT_PACKAGE_KEY" (componentCompatPackageKey clbi)+ _ -> ""+ ,ifndefDefineStr "CURRENT_COMPONENT_ID" (display (componentComponentId clbi))+ ]++-- | Generate the @CURRENT_PACKAGE_VERSION@ definition for the declared version+-- of the current package.+generateCurrentPackageVersion :: PackageDescription -> String+generateCurrentPackageVersion pd =+ ifndefDefineStr "CURRENT_PACKAGE_VERSION" (display (pkgVersion (package pd))) fixchar :: Char -> Char fixchar '-' = '_'
Distribution/Simple/Build/PathsModule.hs view
@@ -18,6 +18,9 @@ generate, pkgPathEnvVar ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.System import Distribution.Simple.Compiler import Distribution.Package@@ -28,17 +31,14 @@ import Distribution.Text import Distribution.Version -import System.FilePath- ( pathSeparator )-import Data.Maybe- ( fromJust, isNothing )+import System.FilePath ( pathSeparator ) -- ------------------------------------------------------------ -- * Building Paths_<pkg>.hs -- ------------------------------------------------------------ -generate :: PackageDescription -> LocalBuildInfo -> String-generate pkg_descr lbi =+generate :: PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> String+generate pkg_descr lbi clbi = let pragmas = cpp_pragma ++ ffi_pragmas ++ warning_pragmas cpp_pragma | supports_cpp = "{-# LANGUAGE CPP #-}\n"@@ -100,18 +100,18 @@ "catchIO = Exception.catch\n" ++ "\n"++ "version :: Version"++- "\nversion = Version " ++ show branch ++ " " ++ show tags- where Version branch tags = packageVersion pkg_descr+ "\nversion = Version " ++ show branch ++ " []"+ where branch = versionNumbers $ packageVersion pkg_descr body | reloc = "\n\nbindirrel :: FilePath\n" ++ "bindirrel = " ++ show flat_bindirreloc ++ "\n"++- "\ngetBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath\n"+++ "\ngetBinDir, getLibDir, genDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath\n"++ "getBinDir = "++mkGetEnvOrReloc "bindir" flat_bindirreloc++"\n"++ "getLibDir = "++mkGetEnvOrReloc "libdir" flat_libdirreloc++"\n"++- "getDynLibDir = "++mkGetEnvOrReloc "dynlibdir" flat_dynlibdirreloc++"\n"+++ "getDynLibDir = "++mkGetEnvOrReloc "libdir" flat_dynlibdirreloc++"\n"++ "getDataDir = "++mkGetEnvOrReloc "datadir" flat_datadirreloc++"\n"++ "getLibexecDir = "++mkGetEnvOrReloc "libexecdir" flat_libexecdirreloc++"\n"++ "getSysconfDir = "++mkGetEnvOrReloc "sysconfdir" flat_sysconfdirreloc++"\n"++@@ -148,7 +148,7 @@ | otherwise = "\nprefix, bindirrel :: FilePath" ++ "\nprefix = " ++ show flat_prefix ++- "\nbindirrel = " ++ show (fromJust flat_bindirrel) +++ "\nbindirrel = " ++ show (fromMaybe (error "PathsModule.generate") flat_bindirrel) ++ "\n\n"++ "getBinDir :: IO FilePath\n"++ "getBinDir = getPrefixDirRel bindirrel\n\n"++@@ -174,6 +174,8 @@ in header++body where+ cid = componentUnitId clbi+ InstallDirs { prefix = flat_prefix, bindir = flat_bindir,@@ -182,7 +184,7 @@ datadir = flat_datadir, libexecdir = flat_libexecdir, sysconfdir = flat_sysconfdir- } = absoluteInstallDirs pkg_descr lbi NoCopyDest+ } = absoluteComponentInstallDirs pkg_descr lbi cid NoCopyDest InstallDirs { bindir = flat_bindirrel, libdir = flat_libdirrel,@@ -190,7 +192,7 @@ datadir = flat_datadirrel, libexecdir = flat_libexecdirrel, sysconfdir = flat_sysconfdirrel- } = prefixRelativeInstallDirs (packageId pkg_descr) lbi+ } = prefixRelativeComponentInstallDirs (packageId pkg_descr) lbi cid flat_bindirreloc = shortRelativePath flat_prefix flat_bindir flat_libdirreloc = shortRelativePath flat_prefix flat_libdir@@ -227,7 +229,7 @@ _ -> False supportsRelocatableProgs _ = False - paths_modulename = autogenModuleName pkg_descr+ paths_modulename = autogenPathsModuleName pkg_descr get_prefix_stuff = get_prefix_win32 buildArch @@ -238,11 +240,14 @@ supports_language_pragma = (compilerFlavor (compiler lbi) == GHC && (compilerVersion (compiler lbi)- `withinRange` orLaterVersion (Version [6,6,1] []))) ||+ `withinRange` orLaterVersion (mkVersion [6,6,1]))) || compilerFlavor (compiler lbi) == GHCJS -- | Generates the name of the environment variable controlling the path -- component of interest.+--+-- Note: The format of these strings is part of Cabal's public API;+-- changing this function constitutes a *backwards-compatibility* break. pkgPathEnvVar :: PackageDescription -> String -- ^ path component; one of \"bindir\", \"libdir\", -- \"datadir\", \"libexecdir\", or \"sysconfdir\"
Distribution/Simple/BuildPaths.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-} ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.BuildPaths@@ -13,11 +15,13 @@ module Distribution.Simple.BuildPaths ( defaultDistPref, srcPref,- haddockDirName,- hscolourPref, hscolourPref', haddockPref, haddockPref',+ haddockDirName, hscolourPref, haddockPref, autogenModulesDir,+ autogenPackageModulesDir,+ autogenComponentModulesDir, autogenModuleName,+ autogenPathsModuleName, cppHeaderName, haddockName, @@ -28,10 +32,17 @@ exeExtension, objExtension, dllExtension,-+ staticLibExtension,+ -- * Source files & build directories+ getSourceFiles, getLibSourceFiles, getExeSourceFiles,+ getFLibSourceFiles, exeBuildDir, flibBuildDir, ) where +import Prelude ()+import Distribution.Compat.Prelude +import Distribution.Types.ForeignLib+import Distribution.Types.UnqualComponentName (unUnqualComponentName) import Distribution.Package import Distribution.ModuleName as ModuleName import Distribution.Compiler@@ -40,8 +51,10 @@ import Distribution.Simple.Setup import Distribution.Text import Distribution.System+import Distribution.Verbosity+import Distribution.Simple.Utils -import System.FilePath ((</>), (<.>))+import System.FilePath ((</>), (<.>), normalise) -- --------------------------------------------------------------------------- -- Build directories and files@@ -49,13 +62,8 @@ srcPref :: FilePath -> FilePath srcPref distPref = distPref </> "src" --- Backwards compat, see #4123.-haddockPref, hscolourPref :: FilePath -> PackageDescription -> FilePath-haddockPref = haddockPref' ForDevelopment-hscolourPref = haddockPref' ForDevelopment--hscolourPref' :: HaddockTarget -> FilePath -> PackageDescription -> FilePath-hscolourPref' = haddockPref'+hscolourPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath+hscolourPref = haddockPref -- | This is the name of the directory in which the generated haddocks -- should be stored. It does not include the @<dist>/doc/html@ prefix.@@ -64,20 +72,39 @@ haddockDirName ForHackage = (++ "-docs") . display . packageId -- | The directory to which generated haddock documentation should be written.-haddockPref' :: HaddockTarget -> FilePath -> PackageDescription -> FilePath-haddockPref' haddockTarget distPref pkg_descr+haddockPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath+haddockPref haddockTarget distPref pkg_descr = distPref </> "doc" </> "html" </> haddockDirName haddockTarget pkg_descr --- |The directory in which we put auto-generated modules+-- | The directory in which we put auto-generated modules for EVERY+-- component in the package. See deprecation notice.+{-# DEPRECATED autogenModulesDir "If you can, use 'autogenComponentModulesDir' instead, but if you really wanted package-global generated modules, use 'autogenPackageModulesDir'. In Cabal 2.0, we avoid using autogenerated files which apply to all components, because the information you often want in these files, e.g., dependency information, is best specified per component, so that reconfiguring a different component (e.g., enabling tests) doesn't force the entire to be rebuilt. 'autogenPackageModulesDir' still provides a place to put files you want to apply to the entire package, but most users of 'autogenModulesDir' should seriously consider 'autogenComponentModulesDir' if you really wanted the module to apply to one component." #-} autogenModulesDir :: LocalBuildInfo -> String-autogenModulesDir lbi = buildDir lbi </> "autogen"+autogenModulesDir = autogenPackageModulesDir +-- | The directory in which we put auto-generated modules for EVERY+-- component in the package.+autogenPackageModulesDir :: LocalBuildInfo -> String+autogenPackageModulesDir lbi = buildDir lbi </> "global-autogen"++-- | The directory in which we put auto-generated modules for a+-- particular component.+autogenComponentModulesDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> String+autogenComponentModulesDir lbi clbi = componentBuildDir lbi clbi </> "autogen"+-- NB: Look at 'checkForeignDeps' for where a simplified version of this+-- has been copy-pasted.+ cppHeaderName :: String cppHeaderName = "cabal_macros.h" +{-# DEPRECATED autogenModuleName "Use autogenPathsModuleName instead" #-} -- |The name of the auto-generated module associated with a package autogenModuleName :: PackageDescription -> ModuleName-autogenModuleName pkg_descr =+autogenModuleName = autogenPathsModuleName++-- | The name of the auto-generated Paths_* module associated with a package+autogenPathsModuleName :: PackageDescription -> ModuleName+autogenPathsModuleName pkg_descr = ModuleName.fromString $ "Paths_" ++ map fixchar (display (packageName pkg_descr)) where fixchar '-' = '_'@@ -86,12 +113,80 @@ haddockName :: PackageDescription -> FilePath haddockName pkg_descr = display (packageName pkg_descr) <.> "haddock" +-- -----------------------------------------------------------------------------+-- Source File helper++getLibSourceFiles :: Verbosity+ -> LocalBuildInfo+ -> Library+ -> ComponentLocalBuildInfo+ -> IO [(ModuleName.ModuleName, FilePath)]+getLibSourceFiles verbosity lbi lib clbi = getSourceFiles verbosity searchpaths modules+ where+ bi = libBuildInfo lib+ modules = allLibModules lib clbi+ searchpaths = componentBuildDir lbi clbi : hsSourceDirs bi +++ [ autogenComponentModulesDir lbi clbi+ , autogenPackageModulesDir lbi ]++getExeSourceFiles :: Verbosity+ -> LocalBuildInfo+ -> Executable+ -> ComponentLocalBuildInfo+ -> IO [(ModuleName.ModuleName, FilePath)]+getExeSourceFiles verbosity lbi exe clbi = do+ moduleFiles <- getSourceFiles verbosity searchpaths modules+ srcMainPath <- findFile (hsSourceDirs bi) (modulePath exe)+ return ((ModuleName.main, srcMainPath) : moduleFiles)+ where+ bi = buildInfo exe+ modules = otherModules bi+ searchpaths = autogenComponentModulesDir lbi clbi+ : autogenPackageModulesDir lbi+ : exeBuildDir lbi exe : hsSourceDirs bi++getFLibSourceFiles :: Verbosity+ -> LocalBuildInfo+ -> ForeignLib+ -> ComponentLocalBuildInfo+ -> IO [(ModuleName.ModuleName, FilePath)]+getFLibSourceFiles verbosity lbi flib clbi = getSourceFiles verbosity searchpaths modules+ where+ bi = foreignLibBuildInfo flib+ modules = otherModules bi+ searchpaths = autogenComponentModulesDir lbi clbi+ : autogenPackageModulesDir lbi+ : flibBuildDir lbi flib : hsSourceDirs bi++getSourceFiles :: Verbosity -> [FilePath]+ -> [ModuleName.ModuleName]+ -> IO [(ModuleName.ModuleName, FilePath)]+getSourceFiles verbosity dirs modules = flip traverse modules $ \m -> fmap ((,) m) $+ findFileWithExtension ["hs", "lhs", "hsig", "lhsig"] dirs (ModuleName.toFilePath m)+ >>= maybe (notFound m) (return . normalise)+ where+ notFound module_ = die' verbosity $ "can't find source for module " ++ display module_++-- | The directory where we put build results for an executable+exeBuildDir :: LocalBuildInfo -> Executable -> FilePath+exeBuildDir lbi exe = buildDir lbi </> nm </> nm ++ "-tmp"+ where+ nm = unUnqualComponentName $ exeName exe++-- | The directory where we put build results for a foreign library+flibBuildDir :: LocalBuildInfo -> ForeignLib -> FilePath+flibBuildDir lbi flib = buildDir lbi </> nm </> nm ++ "-tmp"+ where+ nm = unUnqualComponentName $ foreignLibName flib+ -- --------------------------------------------------------------------------- -- Library file names +-- TODO: Should this use staticLibExtension? mkLibName :: UnitId -> String mkLibName lib = "lib" ++ getHSLibraryName lib <.> "a" +-- TODO: Should this use staticLibExtension? mkProfLibName :: UnitId -> String mkProfLibName lib = "lib" ++ getHSLibraryName lib ++ "_p" <.> "a" @@ -125,3 +220,12 @@ Windows -> "dll" OSX -> "dylib" _ -> "so"++-- | Extension for static libraries+--+-- TODO: Here, as well as in dllExtension, it's really the target OS that we're+-- interested in, not the build OS.+staticLibExtension :: String+staticLibExtension = case buildOS of+ Windows -> "lib"+ _ -> "a"
Distribution/Simple/BuildTarget.hs view
@@ -1,4 +1,7 @@ {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Client.BuildTargets@@ -10,10 +13,12 @@ -- Handling for user-specified build targets ----------------------------------------------------------------------------- module Distribution.Simple.BuildTarget (+ -- * Main interface+ readTargetInfos,+ readBuildTargets, -- in case you don't have LocalBuildInfo -- * Build targets BuildTarget(..),- readBuildTargets, showBuildTarget, QualLevel(..), buildTargetComponentName,@@ -31,36 +36,43 @@ reportBuildTargetProblems, ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.TargetInfo+import Distribution.Types.LocalBuildInfo+import Distribution.Types.ComponentRequestedSpec+import Distribution.Types.ForeignLib+import Distribution.Types.UnqualComponentName+ import Distribution.Package import Distribution.PackageDescription import Distribution.ModuleName import Distribution.Simple.LocalBuildInfo import Distribution.Text import Distribution.Simple.Utils+import Distribution.Verbosity -import Distribution.Compat.Binary (Binary) import qualified Distribution.Compat.ReadP as Parse-import Distribution.Compat.ReadP- ( (+++), (<++) )+import Distribution.Compat.ReadP ( (+++), (<++) )+import Distribution.ParseUtils ( readPToMaybe ) -import Data.List- ( nub, stripPrefix, sortBy, groupBy, partition )-import Data.Maybe- ( listToMaybe, catMaybes )-import Data.Either- ( partitionEithers )-import GHC.Generics (Generic)-import qualified Data.Map as Map-import Control.Monad-import Control.Applicative as AP (Alternative(..), Applicative(..))-import Data.Char- ( isSpace, isAlphaNum )+import Control.Monad ( msum )+import Data.List ( stripPrefix, groupBy, partition )+import Data.Either ( partitionEithers ) import System.FilePath as FilePath ( dropExtension, normalise, splitDirectories, joinPath, splitPath , hasTrailingPathSeparator )-import System.Directory- ( doesFileExist, doesDirectoryExist )+import System.Directory ( doesFileExist, doesDirectoryExist )+import qualified Data.Map as Map +-- | Take a list of 'String' build targets, and parse and validate them+-- into actual 'TargetInfo's to be built/registered/whatever.+readTargetInfos :: Verbosity -> PackageDescription -> LocalBuildInfo -> [String] -> IO [TargetInfo]+readTargetInfos verbosity pkg_descr lbi args = do+ build_targets <- readBuildTargets verbosity pkg_descr args+ checkBuildTargets verbosity pkg_descr lbi build_targets+ -- ------------------------------------------------------------ -- * User build targets -- ------------------------------------------------------------@@ -88,7 +100,7 @@ -- | UserBuildTargetDouble String String - -- A fully qualified target, either a module or file qualified by a+ -- | A fully qualified target, either a module or file qualified by a -- component name with the component namespace kind. -- -- > cabal build lib:foo:Data/Foo.hs exe:foo:Data/Foo.hs@@ -130,19 +142,19 @@ -- 'BuildTarget's according to a 'PackageDescription'. If there are problems -- with any of the targets e.g. they don't exist or are misformatted, throw an -- 'IOException'.-readBuildTargets :: PackageDescription -> [String] -> IO [BuildTarget]-readBuildTargets pkg targetStrs = do+readBuildTargets :: Verbosity -> PackageDescription -> [String] -> IO [BuildTarget]+readBuildTargets verbosity pkg targetStrs = do let (uproblems, utargets) = readUserBuildTargets targetStrs- reportUserBuildTargetProblems uproblems+ reportUserBuildTargetProblems verbosity uproblems - utargets' <- mapM checkTargetExistsAsFile utargets+ utargets' <- traverse checkTargetExistsAsFile utargets let (bproblems, btargets) = resolveBuildTargets pkg utargets'- reportBuildTargetProblems bproblems+ reportBuildTargetProblems verbosity bproblems return btargets -checkTargetExistsAsFile :: UserBuildTarget -> IO (UserBuildTarget, Bool)+checkTargetExistsAsFile :: UserBuildTarget -> NoCallStackIO (UserBuildTarget, Bool) checkTargetExistsAsFile t = do fexists <- existsAsFile (fileComponentOfTarget t) return (t, fexists)@@ -196,20 +208,16 @@ parseHaskellString :: Parse.ReadP r String parseHaskellString = Parse.readS_to_P reads - readPToMaybe :: Parse.ReadP a a -> String -> Maybe a- readPToMaybe p str = listToMaybe [ r | (r,s) <- Parse.readP_to_S p str- , all isSpace s ]- data UserBuildTargetProblem = UserBuildTargetUnrecognised String deriving Show -reportUserBuildTargetProblems :: [UserBuildTargetProblem] -> IO ()-reportUserBuildTargetProblems problems = do+reportUserBuildTargetProblems :: Verbosity -> [UserBuildTargetProblem] -> IO ()+reportUserBuildTargetProblems verbosity problems = do case [ target | UserBuildTargetUnrecognised target <- problems ] of [] -> return () target ->- die $ unlines+ die' verbosity $ unlines [ "Unrecognised build target '" ++ name ++ "'." | name <- target ] ++ "Examples:\n"@@ -228,11 +236,22 @@ getComponents (UserBuildTargetDouble s1 s2) = [s1,s2] getComponents (UserBuildTargetTriple s1 s2 s3) = [s1,s2,s3] -showBuildTarget :: QualLevel -> PackageId -> BuildTarget -> String-showBuildTarget ql pkgid bt =+-- | Unless you use 'QL1', this function is PARTIAL;+-- use 'showBuildTarget' instead.+showBuildTarget' :: QualLevel -> PackageId -> BuildTarget -> String+showBuildTarget' ql pkgid bt = showUserBuildTarget (renderBuildTarget ql bt pkgid) +-- | Unambiguously render a 'BuildTarget', so that it can+-- be parsed in all situations.+showBuildTarget :: PackageId -> BuildTarget -> String+showBuildTarget pkgid t =+ showBuildTarget' (qlBuildTarget t) pkgid t+ where+ qlBuildTarget BuildTargetComponent{} = QL2+ qlBuildTarget _ = QL3 + -- ------------------------------------------------------------ -- * Resolving user targets to build targets -- ------------------------------------------------------------@@ -267,7 +286,8 @@ Unambiguous target -> Right target Ambiguous targets -> Left (BuildTargetAmbiguous userTarget targets') where targets' = disambiguateBuildTargets- (packageId pkg) userTarget+ (packageId pkg)+ userTarget targets None errs -> Left (classifyMatchErrors errs) @@ -340,13 +360,13 @@ dispCName = componentStringName pkgid dispKind = showComponentKindShort . componentKind -reportBuildTargetProblems :: [BuildTargetProblem] -> IO ()-reportBuildTargetProblems problems = do+reportBuildTargetProblems :: Verbosity -> [BuildTargetProblem] -> IO ()+reportBuildTargetProblems verbosity problems = do case [ (t, e, g) | BuildTargetExpected t e g <- problems ] of [] -> return () targets ->- die $ unlines+ die' verbosity $ unlines [ "Unrecognised build target '" ++ showUserBuildTarget target ++ "'.\n" ++ "Expected a " ++ intercalate " or " expected@@ -356,7 +376,7 @@ case [ (t, e) | BuildTargetNoSuch t e <- problems ] of [] -> return () targets ->- die $ unlines+ die' verbosity $ unlines [ "Unknown build target '" ++ showUserBuildTarget target ++ "'.\nThere is no " ++ intercalate " or " [ mungeThing thing ++ " '" ++ got ++ "'"@@ -369,7 +389,7 @@ case [ (t, ts) | BuildTargetAmbiguous t ts <- problems ] of [] -> return () targets ->- die $ unlines+ die' verbosity $ unlines [ "Ambiguous build target '" ++ showUserBuildTarget target ++ "'. It could be:\n " ++ unlines [ " "++ showUserBuildTarget ut ++@@ -452,12 +472,22 @@ componentStringName :: Package pkg => pkg -> ComponentName -> ComponentStringName componentStringName pkg CLibName = display (packageName pkg)-componentStringName _ (CExeName name) = name-componentStringName _ (CTestName name) = name-componentStringName _ (CBenchName name) = name+componentStringName _ (CSubLibName name) = unUnqualComponentName name+componentStringName _ (CFLibName name) = unUnqualComponentName name+componentStringName _ (CExeName name) = unUnqualComponentName name+componentStringName _ (CTestName name) = unUnqualComponentName name+componentStringName _ (CBenchName name) = unUnqualComponentName name componentModules :: Component -> [ModuleName]-componentModules (CLib lib) = libModules lib+-- TODO: Use of 'explicitLibModules' here is a bit wrong:+-- a user could very well ask to build a specific signature+-- that was inherited from other packages. To fix this+-- we have to plumb 'LocalBuildInfo' through this code.+-- Fortunately, this is only used by 'pkgComponentInfo' +-- Please don't export this function unless you plan on fixing+-- this.+componentModules (CLib lib) = explicitLibModules lib+componentModules (CFLib flib) = foreignLibModules flib componentModules (CExe exe) = exeModules exe componentModules (CTest test) = testModules test componentModules (CBench bench) = benchmarkModules bench@@ -490,12 +520,14 @@ -- Matching component kinds -- -data ComponentKind = LibKind | ExeKind | TestKind | BenchKind+data ComponentKind = LibKind | FLibKind | ExeKind | TestKind | BenchKind deriving (Eq, Ord, Show) componentKind :: ComponentName -> ComponentKind-componentKind CLibName = LibKind-componentKind (CExeName _) = ExeKind+componentKind CLibName = LibKind+componentKind (CSubLibName _) = LibKind+componentKind (CFLibName _) = FLibKind+componentKind (CExeName _) = ExeKind componentKind (CTestName _) = TestKind componentKind (CBenchName _) = BenchKind @@ -504,23 +536,25 @@ matchComponentKind :: String -> Match ComponentKind matchComponentKind s- | s `elem` ["lib", "library"] = increaseConfidence >> return LibKind- | s `elem` ["exe", "executable"] = increaseConfidence >> return ExeKind- | s `elem` ["tst", "test", "test-suite"] = increaseConfidence- >> return TestKind- | s `elem` ["bench", "benchmark"] = increaseConfidence- >> return BenchKind- | otherwise = matchErrorExpected- "component kind" s+ | s `elem` ["lib", "library"] = return' LibKind+ | s `elem` ["flib", "foreign-lib", "foreign-library"] = return' FLibKind+ | s `elem` ["exe", "executable"] = return' ExeKind+ | s `elem` ["tst", "test", "test-suite"] = return' TestKind+ | s `elem` ["bench", "benchmark"] = return' BenchKind+ | otherwise = matchErrorExpected "component kind" s+ where+ return' ck = increaseConfidence >> return ck showComponentKind :: ComponentKind -> String showComponentKind LibKind = "library"+showComponentKind FLibKind = "foreign-library" showComponentKind ExeKind = "executable" showComponentKind TestKind = "test-suite" showComponentKind BenchKind = "benchmark" showComponentKindShort :: ComponentKind -> String showComponentKindShort LibKind = "lib"+showComponentKindShort FLibKind = "flib" showComponentKindShort ExeKind = "exe" showComponentKindShort TestKind = "test" showComponentKindShort BenchKind = "bench"@@ -802,7 +836,7 @@ (<*>) = ap instance Monad Match where- return = AP.pure+ return = pure NoMatch d ms >>= _ = NoMatch d ms ExactMatch d xs >>= f = addDepth d@@ -938,3 +972,61 @@ caseFold :: String -> String caseFold = lowercase+++-- | Check that the given build targets are valid in the current context.+--+-- Also swizzle into a more convenient form.+--+checkBuildTargets :: Verbosity -> PackageDescription -> LocalBuildInfo -> [BuildTarget]+ -> IO [TargetInfo]+checkBuildTargets _ pkg_descr lbi [] =+ return (allTargetsInBuildOrder' pkg_descr lbi)++checkBuildTargets verbosity pkg_descr lbi targets = do++ let (enabled, disabled) =+ partitionEithers+ [ case componentDisabledReason (componentEnabledSpec lbi) comp of+ Nothing -> Left target'+ Just reason -> Right (cname, reason)+ | target <- targets+ , let target'@(cname,_) = swizzleTarget target+ , let comp = getComponent pkg_descr cname ]++ case disabled of+ [] -> return ()+ ((cname,reason):_) -> die' verbosity $ formatReason (showComponentName cname) reason++ for_ [ (c, t) | (c, Just t) <- enabled ] $ \(c, t) ->+ warn verbosity $ "Ignoring '" ++ either display id t ++ ". The whole "+ ++ showComponentName c ++ " will be processed. (Support for "+ ++ "module and file targets has not been implemented yet.)"++ -- Pick out the actual CLBIs for each of these cnames+ enabled' <- for enabled $ \(cname, _) -> do+ case componentNameTargets' pkg_descr lbi cname of+ [] -> error "checkBuildTargets: nothing enabled"+ [target] -> return target+ _targets -> error "checkBuildTargets: multiple copies enabled"++ return enabled'++ where+ swizzleTarget (BuildTargetComponent c) = (c, Nothing)+ swizzleTarget (BuildTargetModule c m) = (c, Just (Left m))+ swizzleTarget (BuildTargetFile c f) = (c, Just (Right f))++ formatReason cn DisabledComponent =+ "Cannot process the " ++ cn ++ " because the component is marked "+ ++ "as disabled in the .cabal file."+ formatReason cn DisabledAllTests =+ "Cannot process the " ++ cn ++ " because test suites are not "+ ++ "enabled. Run configure with the flag --enable-tests"+ formatReason cn DisabledAllBenchmarks =+ "Cannot process the " ++ cn ++ " because benchmarks are not "+ ++ "enabled. Re-run configure with the flag --enable-benchmarks"+ formatReason cn (DisabledAllButOne cn') =+ "Cannot process the " ++ cn ++ " because this package was "+ ++ "configured only to build " ++ cn' ++ ". Re-run configure "+ ++ "with the argument " ++ cn
+ Distribution/Simple/BuildToolDepends.hs view
@@ -0,0 +1,96 @@+-- |+--+-- This modules provides functions for working with both the legacy+-- "build-tools" field, and its replacement, "build-tool-depends". Prefer using+-- the functions contained to access those fields directly.+module Distribution.Simple.BuildToolDepends where++import Prelude ()+import Distribution.Compat.Prelude++import qualified Data.Map as Map++import Distribution.Package+import Distribution.PackageDescription+import Distribution.Types.ExeDependency+import Distribution.Types.LegacyExeDependency+import Distribution.Types.UnqualComponentName++-- | Desugar a "build-tools" entry into proper a executable dependency if+-- possible.+--+-- An entry can be so desguared in two cases:+--+-- 1. The name in build-tools matches a locally defined executable. The+-- executable dependency produced is on that exe in the current package.+--+-- 2. The name in build-tools matches a hard-coded set of known tools. For now,+-- the executable dependency produced is one an executable in a package of+-- the same, but the hard-coding could just as well be per-key.+--+-- The first cases matches first.+desugarBuildTool :: PackageDescription+ -> LegacyExeDependency+ -> Maybe ExeDependency+desugarBuildTool pkg led =+ if foundLocal+ then Just $ ExeDependency (packageName pkg) toolName reqVer+ else Map.lookup name whiteMap+ where+ LegacyExeDependency name reqVer = led+ toolName = mkUnqualComponentName name+ foundLocal = toolName `elem` map exeName (executables pkg)+ whitelist = [ "hscolour", "haddock", "happy", "alex", "hsc2hs", "c2hs"+ , "cpphs", "greencard", "hspec-discover"+ ]+ whiteMap = Map.fromList $ flip map whitelist $ \n ->+ (n, ExeDependency (mkPackageName n) (mkUnqualComponentName n) reqVer)++-- | Get everything from "build-tool-depends", along with entries from+-- "build-tools" that we know how to desugar.+--+-- This should almost always be used instead of just accessing the+-- `buildToolDepends` field directly.+getAllToolDependencies :: PackageDescription+ -> BuildInfo+ -> [ExeDependency]+getAllToolDependencies pkg bi =+ buildToolDepends bi ++ mapMaybe (desugarBuildTool pkg) (buildTools bi)++-- | Does the given executable dependency map to this current package?+--+-- This is a tiny function, but used in a number of places.+--+-- This function is only sound to call on `BuildInfo`s from the given package+-- description. This is because it just filters the package names of each+-- dependency, and does not check whether version bounds in fact exclude the+-- current package, or the referenced components in fact exist in the current+-- package.+--+-- This is OK because when a package is loaded, it is checked (in+-- `Distribution.Package.Check`) that dependencies matching internal components+-- do indeed have version bounds accepting the current package, and any+-- depended-on component in the current package actually exists. In fact this+-- check is performed by gathering the internal tool dependencies of each+-- component of the package according to this module, and ensuring those+-- properties on each so-gathered dependency.+--+-- version bounds and components of the package are unchecked. This is because+-- we sanitize exe deps so that the matching name implies these other+-- conditions.+isInternal :: PackageDescription -> ExeDependency -> Bool+isInternal pkg (ExeDependency n _ _) = n == packageName pkg+++-- | Get internal "build-tool-depends", along with internal "build-tools"+--+-- This is a tiny function, but used in a number of places. The same+-- restrictions that apply to `isInternal` also apply to this function.+getAllInternalToolDependencies :: PackageDescription+ -> BuildInfo+ -> [UnqualComponentName]+getAllInternalToolDependencies pkg bi =+ [ toolname+ | dep@(ExeDependency _ toolname _) <- getAllToolDependencies pkg bi+ , isInternal pkg dep+ ]
Distribution/Simple/CCompiler.hs view
@@ -46,7 +46,8 @@ filenameCDialect ) where -import Distribution.Compat.Semigroup as Semi+import Prelude ()+import Distribution.Compat.Prelude import System.FilePath ( takeExtension )@@ -63,7 +64,7 @@ instance Monoid CDialect where mempty = C- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup CDialect where C <> anything = anything
Distribution/Simple/Command.hs view
@@ -1,4 +1,7 @@ {-# LANGUAGE ExistentialQuantification #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Command@@ -65,17 +68,15 @@ ) where +import Prelude ()+import Distribution.Compat.Prelude hiding (get)+ import qualified Distribution.GetOpt as GetOpt import Distribution.Text import Distribution.ParseUtils import Distribution.ReadE import Distribution.Simple.Utils -import Control.Monad-import Data.Char (isAlpha, toLower)-import Data.List (sortBy)-import Data.Maybe-import Data.Monoid as Mon import Text.PrettyPrint ( punctuate, cat, comma, text ) import Text.PrettyPrint as PP ( empty ) @@ -174,7 +175,7 @@ reqArg ad (succeedReadE mkflag) showflag -- | (String -> a) variant of "optArg"-optArg' :: Mon.Monoid b => ArgPlaceHolder -> (Maybe String -> b)+optArg' :: Monoid b => ArgPlaceHolder -> (Maybe String -> b) -> (b -> [Maybe String]) -> MkOptDescr (a -> b) (b -> a -> a) a optArg' ad mkflag showflag =@@ -584,7 +585,7 @@ noExtraFlags :: [String] -> IO () noExtraFlags [] = return () noExtraFlags extraFlags =- die $ "Unrecognised flags: " ++ intercalate ", " extraFlags+ dieNoVerbosity $ "Unrecognised flags: " ++ intercalate ", " extraFlags --TODO: eliminate this function and turn it into a variant on commandAddAction -- instead like commandAddActionNoArgs that doesn't supply the [String]
Distribution/Simple/Compiler.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveDataTypeable #-} ----------------------------------------------------------------------------- -- |@@ -26,6 +27,7 @@ Compiler(..), showCompilerId, showCompilerIdWithAbi, compilerFlavor, compilerVersion,+ compilerCompatFlavor, compilerCompatVersion, compilerInfo, @@ -56,6 +58,9 @@ unifiedIPIDRequired, packageKeySupported, unitIdSupported,+ coverageSupported,+ profilingSupported,+ backpackSupported, libraryDynDirSupported, -- * Support for profiling detail levels@@ -65,35 +70,35 @@ showProfDetailLevel, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Compiler import Distribution.Version import Distribution.Text import Language.Haskell.Extension import Distribution.Simple.Utils-import Distribution.Compat.Binary -import Control.Monad (liftM)-import Data.List (nub)-import qualified Data.Map as M (Map, lookup)-import Data.Maybe (catMaybes, isNothing, listToMaybe)-import GHC.Generics (Generic)+import qualified Data.Map as Map (lookup) import System.Directory (canonicalizePath) data Compiler = Compiler { compilerId :: CompilerId, -- ^ Compiler flavour and version. compilerAbiTag :: AbiTag,- -- ^ Tag for distinguishing incompatible ABI's on the same architecture/os.+ -- ^ Tag for distinguishing incompatible ABI's on the same+ -- architecture/os. compilerCompat :: [CompilerId],- -- ^ Other implementations that this compiler claims to be compatible with.+ -- ^ Other implementations that this compiler claims to be+ -- compatible with. compilerLanguages :: [(Language, Flag)], -- ^ Supported language standards. compilerExtensions :: [(Extension, Flag)], -- ^ Supported extensions.- compilerProperties :: M.Map String String+ compilerProperties :: Map String String -- ^ A key-value map for properties not covered by the above fields. }- deriving (Eq, Generic, Show, Read)+ deriving (Eq, Generic, Typeable, Show, Read) instance Binary Compiler @@ -113,6 +118,30 @@ compilerVersion :: Compiler -> Version compilerVersion = (\(CompilerId _ v) -> v) . compilerId ++-- | Is this compiler compatible with the compiler flavour we're interested in?+--+-- For example this checks if the compiler is actually GHC or is another+-- compiler that claims to be compatible with some version of GHC, e.g. GHCJS.+--+-- > if compilerCompatFlavor GHC compiler then ... else ...+--+compilerCompatFlavor :: CompilerFlavor -> Compiler -> Bool+compilerCompatFlavor flavor comp =+ flavor == compilerFlavor comp+ || flavor `elem` [ flavor' | CompilerId flavor' _ <- compilerCompat comp ]+++-- | Is this compiler compatible with the compiler flavour we're interested in,+-- and if so what version does it claim to be compatible with.+--+-- For example this checks if the compiler is actually GHC-7.x or is another+-- compiler that claims to be compatible with some GHC-7.x version.+--+-- > case compilerCompatVersion GHC compiler of+-- > Just (Version (7:_)) -> ...+-- > _ -> ...+-- compilerCompatVersion :: CompilerFlavor -> Compiler -> Maybe Version compilerCompatVersion flavor comp | compilerFlavor comp == flavor = Just (compilerVersion comp)@@ -172,10 +201,10 @@ -- | Make package paths absolute -absolutePackageDBPaths :: PackageDBStack -> IO PackageDBStack-absolutePackageDBPaths = mapM absolutePackageDBPath+absolutePackageDBPaths :: PackageDBStack -> NoCallStackIO PackageDBStack+absolutePackageDBPaths = traverse absolutePackageDBPath -absolutePackageDBPath :: PackageDB -> IO PackageDB+absolutePackageDBPath :: PackageDB -> NoCallStackIO PackageDB absolutePackageDBPath GlobalPackageDB = return GlobalPackageDB absolutePackageDBPath UserPackageDB = return UserPackageDB absolutePackageDBPath (SpecificPackageDB db) =@@ -278,7 +307,8 @@ -- | Does this compiler support thinning/renaming on package flags? renamingPackageFlagsSupported :: Compiler -> Bool-renamingPackageFlagsSupported = ghcSupported "Support thinning and renaming package flags"+renamingPackageFlagsSupported = ghcSupported+ "Support thinning and renaming package flags" -- | Does this compiler have unified IPIDs (so no package keys) unifiedIPIDRequired :: Compiler -> Bool@@ -292,13 +322,40 @@ unitIdSupported :: Compiler -> Bool unitIdSupported = ghcSupported "Uses unit IDs" +-- | Does this compiler support Backpack?+backpackSupported :: Compiler -> Bool+backpackSupported = ghcSupported "Support Backpack"+ -- | Does this compiler support a package database entry with: -- "dynamic-library-dirs"? libraryDynDirSupported :: Compiler -> Bool libraryDynDirSupported comp = case compilerFlavor comp of- GHC -> compilerVersion comp >= Version [8,0,1,20161021] []+ GHC ->+ -- Not just v >= mkVersion [8,0,1,20161022], as there+ -- are many GHC 8.1 nightlies which don't support this.+ ((v >= mkVersion [8,0,1,20161022] && v < mkVersion [8,1]) ||+ v >= mkVersion [8,1,20161021]) _ -> False+ where+ v = compilerVersion comp +-- | Does this compiler support Haskell program coverage?+coverageSupported :: Compiler -> Bool+coverageSupported comp =+ case compilerFlavor comp of+ GHC -> True+ GHCJS -> True+ _ -> False++-- | Does this compiler support profiling?+profilingSupported :: Compiler -> Bool+profilingSupported comp =+ case compilerFlavor comp of+ GHC -> True+ GHCJS -> True+ LHC -> True+ _ -> False+ -- | Utility function for GHC only features ghcSupported :: String -> Compiler -> Bool ghcSupported key comp =@@ -307,7 +364,7 @@ GHCJS -> checkProp _ -> False where checkProp =- case M.lookup key (compilerProperties comp) of+ case Map.lookup key (compilerProperties comp) of Just "YES" -> True _ -> False
Distribution/Simple/Configure.hs view
@@ -1,2037 +1,1961 @@ {-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE ScopedTypeVariables #-}---------------------------------------------------------------------------------- |--- Module : Distribution.Simple.Configure--- Copyright : Isaac Jones 2003-2005--- License : BSD3------ Maintainer : cabal-devel@haskell.org--- Portability : portable------ This deals with the /configure/ phase. It provides the 'configure' action--- which is given the package description and configure flags. It then tries--- to: configure the compiler; resolves any conditionals in the package--- description; resolve the package dependencies; check if all the extensions--- used by this package are supported by the compiler; check that all the build--- tools are available (including version checks if appropriate); checks for--- any required @pkg-config@ packages (updating the 'BuildInfo' with the--- results)------ Then based on all this it saves the info in the 'LocalBuildInfo' and writes--- it out to the @dist\/setup-config@ file. It also displays various details to--- the user, the amount of information displayed depending on the verbosity--- level.--module Distribution.Simple.Configure (configure,- writePersistBuildConfig,- getConfigStateFile,- getPersistBuildConfig,- checkPersistBuildConfigOutdated,- tryGetPersistBuildConfig,- maybeGetPersistBuildConfig,- findDistPref, findDistPrefOrDefault,- computeComponentId,- computeCompatPackageKey,- localBuildInfoFile,- getInstalledPackages,- getInstalledPackagesMonitorFiles,- getPackageDBContents,- configCompiler, configCompilerAux,- configCompilerEx, configCompilerAuxEx,- computeEffectiveProfiling,- ccLdOptionsBuildInfo,- checkForeignDeps,- interpretPackageDbFlags,- ConfigStateFileError(..),- tryGetConfigStateFile,- platformDefines,- relaxPackageDeps,- )- where--import Distribution.Compiler-import Distribution.Utils.NubList-import Distribution.Simple.Compiler hiding (Flag)-import Distribution.Simple.PreProcess-import Distribution.Package-import qualified Distribution.InstalledPackageInfo as Installed-import Distribution.InstalledPackageInfo (InstalledPackageInfo- ,emptyInstalledPackageInfo)-import qualified Distribution.Simple.PackageIndex as PackageIndex-import Distribution.Simple.PackageIndex (InstalledPackageIndex)-import Distribution.PackageDescription as PD hiding (Flag)-import Distribution.ModuleName-import Distribution.PackageDescription.Configuration-import Distribution.PackageDescription.Check hiding (doesFileExist)-import Distribution.Simple.Program-import Distribution.Simple.Setup as Setup-import qualified Distribution.Simple.InstallDirs as InstallDirs-import Distribution.Simple.LocalBuildInfo-import Distribution.Simple.BuildPaths-import Distribution.Simple.Utils-import Distribution.System-import Distribution.Version-import Distribution.Verbosity--import qualified Distribution.Simple.GHC as GHC-import qualified Distribution.Simple.GHCJS as GHCJS-import qualified Distribution.Simple.JHC as JHC-import qualified Distribution.Simple.LHC as LHC-import qualified Distribution.Simple.UHC as UHC-import qualified Distribution.Simple.HaskellSuite as HaskellSuite---- Prefer the more generic Data.Traversable.mapM to Prelude.mapM-import Prelude hiding ( mapM )-import Control.Exception- ( Exception, evaluate, throw, throwIO, try )-import Control.Exception ( ErrorCall )-import Control.Monad- ( liftM, when, unless, foldM, filterM, mplus )-import Distribution.Compat.Binary ( decodeOrFailIO, encode )-import GHC.Fingerprint ( Fingerprint(..), fingerprintString )-import Data.ByteString.Lazy (ByteString)-import qualified Data.ByteString as BS-import qualified Data.ByteString.Lazy.Char8 as BLC8-import Data.List- ( (\\), nub, partition, isPrefixOf, inits, stripPrefix )-import Data.Maybe- ( isNothing, catMaybes, fromMaybe, mapMaybe, isJust )-import Data.Either- ( partitionEithers )-import qualified Data.Set as Set-import Data.Monoid as Mon ( Monoid(..) )-import qualified Data.Map as Map-import Data.Map (Map)-import Data.Traversable- ( mapM )-import Data.Typeable-import Data.Char ( chr, isAlphaNum )-import Numeric ( showIntAtBase )-import System.Directory- ( doesFileExist, createDirectoryIfMissing, getTemporaryDirectory )-import System.FilePath- ( (</>), isAbsolute )-import qualified System.Info- ( compilerName, compilerVersion )-import System.IO- ( hPutStrLn, hClose )-import Distribution.Text- ( Text(disp), defaultStyle, display, simpleParse )-import Text.PrettyPrint- ( Doc, (<>), (<+>), ($+$), char, comma, empty, hsep, nest- , punctuate, quotes, render, renderStyle, sep, text )-import Distribution.Compat.Environment ( lookupEnv )-import Distribution.Compat.Exception ( catchExit, catchIO )---- | The errors that can be thrown when reading the @setup-config@ file.-data ConfigStateFileError- = ConfigStateFileNoHeader -- ^ No header found.- | ConfigStateFileBadHeader -- ^ Incorrect header.- | ConfigStateFileNoParse -- ^ Cannot parse file contents.- | ConfigStateFileMissing -- ^ No file!- | ConfigStateFileBadVersion PackageIdentifier PackageIdentifier- (Either ConfigStateFileError LocalBuildInfo) -- ^ Mismatched version.- deriving (Typeable)---- | Format a 'ConfigStateFileError' as a user-facing error message.-dispConfigStateFileError :: ConfigStateFileError -> Doc-dispConfigStateFileError ConfigStateFileNoHeader =- text "Saved package config file header is missing."- <+> text "Re-run the 'configure' command."-dispConfigStateFileError ConfigStateFileBadHeader =- text "Saved package config file header is corrupt."- <+> text "Re-run the 'configure' command."-dispConfigStateFileError ConfigStateFileNoParse =- text "Saved package config file is corrupt."- <+> text "Re-run the 'configure' command."-dispConfigStateFileError ConfigStateFileMissing =- text "Run the 'configure' command first."-dispConfigStateFileError (ConfigStateFileBadVersion oldCabal oldCompiler _) =- text "Saved package config file is outdated:"- $+$ badCabal $+$ badCompiler- $+$ text "Re-run the 'configure' command."- where- badCabal =- text "• the Cabal version changed from"- <+> disp oldCabal <+> "to" <+> disp currentCabalId- badCompiler- | oldCompiler == currentCompilerId = empty- | otherwise =- text "• the compiler changed from"- <+> disp oldCompiler <+> "to" <+> disp currentCompilerId--instance Show ConfigStateFileError where- show = renderStyle defaultStyle . dispConfigStateFileError--instance Exception ConfigStateFileError---- | Read the 'localBuildInfoFile'. Throw an exception if the file is--- missing, if the file cannot be read, or if the file was created by an older--- version of Cabal.-getConfigStateFile :: FilePath -- ^ The file path of the @setup-config@ file.- -> IO LocalBuildInfo-getConfigStateFile filename = do- exists <- doesFileExist filename- unless exists $ throwIO ConfigStateFileMissing- -- Read the config file into a strict ByteString to avoid problems with- -- lazy I/O, then convert to lazy because the binary package needs that.- contents <- BS.readFile filename- let (header, body) = BLC8.span (/='\n') (BLC8.fromChunks [contents])-- headerParseResult <- try $ evaluate $ parseHeader header- let (cabalId, compId) =- case headerParseResult of- Left (_ :: ErrorCall) -> throw ConfigStateFileBadHeader- Right x -> x-- let getStoredValue = do- result <- decodeOrFailIO (BLC8.tail body)- case result of- Left _ -> throw ConfigStateFileNoParse- Right x -> return x- deferErrorIfBadVersion act- | cabalId /= currentCabalId = do- eResult <- try act- throw $ ConfigStateFileBadVersion cabalId compId eResult- | otherwise = act- deferErrorIfBadVersion getStoredValue---- | Read the 'localBuildInfoFile', returning either an error or the local build--- info.-tryGetConfigStateFile :: FilePath -- ^ The file path of the @setup-config@ file.- -> IO (Either ConfigStateFileError LocalBuildInfo)-tryGetConfigStateFile = try . getConfigStateFile---- | Try to read the 'localBuildInfoFile'.-tryGetPersistBuildConfig :: FilePath -- ^ The @dist@ directory path.- -> IO (Either ConfigStateFileError LocalBuildInfo)-tryGetPersistBuildConfig = try . getPersistBuildConfig---- | Read the 'localBuildInfoFile'. Throw an exception if the file is--- missing, if the file cannot be read, or if the file was created by an older--- version of Cabal.-getPersistBuildConfig :: FilePath -- ^ The @dist@ directory path.- -> IO LocalBuildInfo-getPersistBuildConfig = getConfigStateFile . localBuildInfoFile---- | Try to read the 'localBuildInfoFile'.-maybeGetPersistBuildConfig :: FilePath -- ^ The @dist@ directory path.- -> IO (Maybe LocalBuildInfo)-maybeGetPersistBuildConfig =- liftM (either (const Nothing) Just) . tryGetPersistBuildConfig---- | After running configure, output the 'LocalBuildInfo' to the--- 'localBuildInfoFile'.-writePersistBuildConfig :: FilePath -- ^ The @dist@ directory path.- -> LocalBuildInfo -- ^ The 'LocalBuildInfo' to write.- -> IO ()-writePersistBuildConfig distPref lbi = do- createDirectoryIfMissing False distPref- writeFileAtomic (localBuildInfoFile distPref) $- BLC8.unlines [showHeader pkgId, encode lbi]- where- pkgId = packageId $ localPkgDescr lbi---- | Identifier of the current Cabal package.-currentCabalId :: PackageIdentifier-currentCabalId = PackageIdentifier (PackageName "Cabal") cabalVersion---- | Identifier of the current compiler package.-currentCompilerId :: PackageIdentifier-currentCompilerId = PackageIdentifier (PackageName System.Info.compilerName)- System.Info.compilerVersion---- | Parse the @setup-config@ file header, returning the package identifiers--- for Cabal and the compiler.-parseHeader :: ByteString -- ^ The file contents.- -> (PackageIdentifier, PackageIdentifier)-parseHeader header = case BLC8.words header of- ["Saved", "package", "config", "for", pkgId, "written", "by", cabalId,- "using", compId] ->- fromMaybe (throw ConfigStateFileBadHeader) $ do- _ <- simpleParse (BLC8.unpack pkgId) :: Maybe PackageIdentifier- cabalId' <- simpleParse (BLC8.unpack cabalId)- compId' <- simpleParse (BLC8.unpack compId)- return (cabalId', compId')- _ -> throw ConfigStateFileNoHeader---- | Generate the @setup-config@ file header.-showHeader :: PackageIdentifier -- ^ The processed package.- -> ByteString-showHeader pkgId = BLC8.unwords- [ "Saved", "package", "config", "for"- , BLC8.pack $ display pkgId- , "written", "by"- , BLC8.pack $ display currentCabalId- , "using"- , BLC8.pack $ display currentCompilerId- ]---- | Check that localBuildInfoFile is up-to-date with respect to the--- .cabal file.-checkPersistBuildConfigOutdated :: FilePath -> FilePath -> IO Bool-checkPersistBuildConfigOutdated distPref pkg_descr_file = do- pkg_descr_file `moreRecentFile` (localBuildInfoFile distPref)---- | Get the path of @dist\/setup-config@.-localBuildInfoFile :: FilePath -- ^ The @dist@ directory path.- -> FilePath-localBuildInfoFile distPref = distPref </> "setup-config"---- -------------------------------------------------------------------------------- * Configuration--- --------------------------------------------------------------------------------- | Return the \"dist/\" prefix, or the default prefix. The prefix is taken--- from (in order of highest to lowest preference) the override prefix, the--- \"CABAL_BUILDDIR\" environment variable, or the default prefix.-findDistPref :: FilePath -- ^ default \"dist\" prefix- -> Setup.Flag FilePath -- ^ override \"dist\" prefix- -> IO FilePath-findDistPref defDistPref overrideDistPref = do- envDistPref <- liftM parseEnvDistPref (lookupEnv "CABAL_BUILDDIR")- return $ fromFlagOrDefault defDistPref (mappend envDistPref overrideDistPref)- where- parseEnvDistPref env =- case env of- Just distPref | not (null distPref) -> toFlag distPref- _ -> NoFlag---- | Return the \"dist/\" prefix, or the default prefix. The prefix is taken--- from (in order of highest to lowest preference) the override prefix, the--- \"CABAL_BUILDDIR\" environment variable, or 'defaultDistPref' is used. Call--- this function to resolve a @*DistPref@ flag whenever it is not known to be--- set. (The @*DistPref@ flags are always set to a definite value before--- invoking 'UserHooks'.)-findDistPrefOrDefault :: Setup.Flag FilePath -- ^ override \"dist\" prefix- -> IO FilePath-findDistPrefOrDefault = findDistPref defaultDistPref---- | Compute the effective value of the profiling flags--- @--enable-library-profiling@ and @--enable-executable-profiling@--- from the specified 'ConfigFlags'. This may be useful for--- external Cabal tools which need to interact with Setup in--- a backwards-compatible way: the most predictable mechanism--- for enabling profiling across many legacy versions is to--- NOT use @--enable-profiling@ and use those two flags instead.------ Note that @--enable-executable-profiling@ also affects profiling--- of benchmarks and (non-detailed) test suites.-computeEffectiveProfiling :: ConfigFlags -> (Bool {- lib -}, Bool {- exe -})-computeEffectiveProfiling cfg =- -- The --profiling flag sets the default for both libs and exes,- -- but can be overidden by --library-profiling, or the old deprecated- -- --executable-profiling flag.- --- -- The --profiling-detail and --library-profiling-detail flags behave- -- similarly- let profEnabledBoth = fromFlagOrDefault False (configProf cfg)- profEnabledLib = fromFlagOrDefault profEnabledBoth (configProfLib cfg)- profEnabledExe = fromFlagOrDefault profEnabledBoth (configProfExe cfg)- in (profEnabledLib, profEnabledExe)---- |Perform the \"@.\/setup configure@\" action.--- Returns the @.setup-config@ file.-configure :: (GenericPackageDescription, HookedBuildInfo)- -> ConfigFlags -> IO LocalBuildInfo-configure (pkg_descr0', pbi) cfg = do- let pkg_descr0 =- -- Ignore '--allow-newer' when we're given '--exact-configuration'.- if fromFlagOrDefault False (configExactConfiguration cfg)- then pkg_descr0'- else relaxPackageDeps- (fromMaybe AllowNewerNone $ configAllowNewer cfg)- pkg_descr0'-- setupMessage verbosity "Configuring" (packageId pkg_descr0)-- checkDeprecatedFlags verbosity cfg- checkExactConfiguration pkg_descr0 cfg-- -- Where to build the package- let buildDir :: FilePath -- e.g. dist/build- -- fromFlag OK due to Distribution.Simple calling- -- findDistPrefOrDefault to fill it in- buildDir = fromFlag (configDistPref cfg) </> "build"- createDirectoryIfMissingVerbose (lessVerbose verbosity) True buildDir-- -- What package database(s) to use- let packageDbs- = interpretPackageDbFlags- (fromFlag (configUserInstall cfg))- (configPackageDBs cfg)-- -- comp: the compiler we're building with- -- compPlatform: the platform we're building for- -- programsConfig: location and args of all programs we're- -- building with- (comp, compPlatform, programsConfig)- <- configCompilerEx- (flagToMaybe (configHcFlavor cfg))- (flagToMaybe (configHcPath cfg))- (flagToMaybe (configHcPkg cfg))- (mkProgramsConfig cfg (configPrograms cfg))- (lessVerbose verbosity)-- -- The InstalledPackageIndex of all installed packages- installedPackageSet <- getInstalledPackages (lessVerbose verbosity) comp- packageDbs programsConfig-- -- The InstalledPackageIndex of all (possible) internal packages- let internalPackageSet = getInternalPackages pkg_descr0-- -- allConstraints: The set of all 'Dependency's we have. Used ONLY- -- to 'configureFinalizedPackage'.- -- requiredDepsMap: A map from 'PackageName' to the specifically- -- required 'InstalledPackageInfo', due to --dependency- --- -- NB: These constraints are to be applied to ALL components of- -- a package. Thus, it's not an error if allConstraints contains- -- more constraints than is necessary for a component (another- -- component might need it.)- --- -- NB: The fact that we bundle all the constraints together means- -- that is not possible to configure a test-suite to use one- -- version of a dependency, and the executable to use another.- (allConstraints, requiredDepsMap) <- either die return $- combinedConstraints (configConstraints cfg)- (configDependencies cfg)- installedPackageSet-- -- pkg_descr: The resolved package description, that does not contain any- -- conditionals, because we have have an assignment for- -- every flag, either picking them ourselves using a- -- simple naive algorithm, or having them be passed to- -- us by 'configConfigurationsFlags')- -- flags: The 'FlagAssignment' that the conditionals were- -- resolved with.- --- -- NB: Why doesn't finalizing a package also tell us what the- -- dependencies are (e.g. when we run the naive algorithm,- -- we are checking if dependencies are satisfiable)? The- -- primary reason is that we may NOT have done any solving:- -- if the flags are all chosen for us, this step is a simple- -- matter of flattening according to that assignment. It's- -- cleaner to then configure the dependencies afterwards.- (pkg_descr, flags)- <- configureFinalizedPackage verbosity cfg- allConstraints- (dependencySatisfiable- (fromFlagOrDefault False (configExactConfiguration cfg))- installedPackageSet- internalPackageSet- requiredDepsMap)- comp- compPlatform- pkg_descr0-- checkCompilerProblems comp pkg_descr- checkPackageProblems verbosity pkg_descr0- (updatePackageDescription pbi pkg_descr)-- -- The list of 'InstalledPackageInfo' recording the selected- -- dependencies...- -- internalPkgDeps: ...on internal packages (these are fake!)- -- externalPkgDeps: ...on external packages- --- -- Invariant: For any package name, there is at most one package- -- in externalPackageDeps which has that name.- --- -- NB: The dependency selection is global over ALL components- -- in the package (similar to how allConstraints and- -- requiredDepsMap are global over all components). In particular,- -- if *any* component (post-flag resolution) has an unsatisfiable- -- dependency, we will fail. This can sometimes be undesirable- -- for users, see #1786 (benchmark conflicts with executable),- (internalPkgDeps, externalPkgDeps)- <- configureDependencies- verbosity- internalPackageSet- installedPackageSet- requiredDepsMap- pkg_descr-- let installDeps = Map.elems -- deduplicate- . Map.fromList- . map (\v -> (Installed.installedUnitId v, v))- $ externalPkgDeps-- packageDependsIndex <-- case PackageIndex.dependencyClosure installedPackageSet- (map Installed.installedUnitId installDeps) of- Left packageDependsIndex -> return packageDependsIndex- Right broken ->- die $ "The following installed packages are broken because other"- ++ " packages they depend on are missing. These broken "- ++ "packages must be rebuilt before they can be used.\n"- ++ unlines [ "package "- ++ display (packageId pkg)- ++ " is broken due to missing package "- ++ intercalate ", " (map display deps)- | (pkg, deps) <- broken ]-- let pseudoTopPkg = emptyInstalledPackageInfo {- Installed.installedUnitId =- mkLegacyUnitId (packageId pkg_descr),- Installed.sourcePackageId = packageId pkg_descr,- Installed.depends =- map Installed.installedUnitId installDeps- }- case PackageIndex.dependencyInconsistencies- . PackageIndex.insert pseudoTopPkg- $ packageDependsIndex of- [] -> return ()- inconsistencies ->- warn verbosity $- "This package indirectly depends on multiple versions of the same "- ++ "package. This is highly likely to cause a compile failure.\n"- ++ unlines [ "package " ++ display pkg ++ " requires "- ++ display (PackageIdentifier name ver)- | (name, uses) <- inconsistencies- , (pkg, ver) <- uses ]-- -- installation directories- defaultDirs <- defaultInstallDirs (compilerFlavor comp)- (fromFlag (configUserInstall cfg)) (hasLibs pkg_descr)- let installDirs = combineInstallDirs fromFlagOrDefault- defaultDirs (configInstallDirs cfg)-- -- check languages and extensions- let langlist = nub $ catMaybes $ map defaultLanguage- (allBuildInfo pkg_descr)- let langs = unsupportedLanguages comp langlist- when (not (null langs)) $- die $ "The package " ++ display (packageId pkg_descr0)- ++ " requires the following languages which are not "- ++ "supported by " ++ display (compilerId comp) ++ ": "- ++ intercalate ", " (map display langs)- let extlist = nub $ concatMap allExtensions (allBuildInfo pkg_descr)- let exts = unsupportedExtensions comp extlist- when (not (null exts)) $- die $ "The package " ++ display (packageId pkg_descr0)- ++ " requires the following language extensions which are not "- ++ "supported by " ++ display (compilerId comp) ++ ": "- ++ intercalate ", " (map display exts)-- -- configured known/required programs & external build tools- -- exclude build-tool deps on "internal" exes in the same package- let requiredBuildTools =- [ buildTool- | let exeNames = map exeName (executables pkg_descr)- , bi <- allBuildInfo pkg_descr- , buildTool@(Dependency (PackageName toolName) reqVer)- <- buildTools bi- , let isInternal =- toolName `elem` exeNames- -- we assume all internal build-tools are- -- versioned with the package:- && packageVersion pkg_descr `withinRange` reqVer- , not isInternal ]-- programsConfig' <-- configureAllKnownPrograms (lessVerbose verbosity) programsConfig- >>= configureRequiredPrograms verbosity requiredBuildTools-- (pkg_descr', programsConfig'') <-- configurePkgconfigPackages verbosity pkg_descr programsConfig'-- -- internal component graph- buildComponents <-- case mkComponentsGraph pkg_descr internalPkgDeps of- Left componentCycle -> reportComponentCycle componentCycle- Right comps ->- mkComponentsLocalBuildInfo cfg comp packageDependsIndex pkg_descr- internalPkgDeps externalPkgDeps- comps (configConfigurationsFlags cfg)-- split_objs <-- if not (fromFlag $ configSplitObjs cfg)- then return False- else case compilerFlavor comp of- GHC | compilerVersion comp >= Version [6,5] []- -> return True- GHCJS- -> return True- _ -> do warn verbosity- ("this compiler does not support " ++- "--enable-split-objs; ignoring")- return False-- let ghciLibByDefault =- case compilerId comp of- CompilerId GHC _ ->- -- If ghc is non-dynamic, then ghci needs object files,- -- so we build one by default.- --- -- Technically, archive files should be sufficient for ghci,- -- but because of GHC bug #8942, it has never been safe to- -- rely on them. By the time that bug was fixed, ghci had- -- been changed to read shared libraries instead of archive- -- files (see next code block).- not (GHC.isDynamic comp)- CompilerId GHCJS _ ->- not (GHCJS.isDynamic comp)- _ -> False-- let sharedLibsByDefault- | fromFlag (configDynExe cfg) =- -- build a shared library if dynamically-linked- -- executables are requested- True- | otherwise = case compilerId comp of- CompilerId GHC _ ->- -- if ghc is dynamic, then ghci needs a shared- -- library, so we build one by default.- GHC.isDynamic comp- CompilerId GHCJS _ ->- GHCJS.isDynamic comp- _ -> False- withSharedLib_ =- -- build shared libraries if required by GHC or by the- -- executable linking mode, but allow the user to force- -- building only static library archives with- -- --disable-shared.- fromFlagOrDefault sharedLibsByDefault $ configSharedLib cfg- withDynExe_ = fromFlag $ configDynExe cfg- when (withDynExe_ && not withSharedLib_) $ warn verbosity $- "Executables will use dynamic linking, but a shared library "- ++ "is not being built. Linking will fail if any executables "- ++ "depend on the library."-- let (profEnabledLib, profEnabledExe) = computeEffectiveProfiling cfg-- profDetailLibOnly <- checkProfDetail (configProfLibDetail cfg)- profDetailBoth <- liftM (fromFlagOrDefault ProfDetailDefault)- (checkProfDetail (configProfDetail cfg))- let profDetailLib = fromFlagOrDefault profDetailBoth profDetailLibOnly- profDetailExe = profDetailBoth-- when (profEnabledExe && not profEnabledLib) $- warn verbosity $- "Executables will be built with profiling, but library "- ++ "profiling is disabled. Linking will fail if any executables "- ++ "depend on the library."-- let configCoverage_ =- mappend (configCoverage cfg) (configLibCoverage cfg)-- cfg' = cfg { configCoverage = configCoverage_ }-- reloc <-- if not (fromFlag $ configRelocatable cfg)- then return False- else return True-- let lbi = LocalBuildInfo {- configFlags = cfg',- flagAssignment = flags,- extraConfigArgs = [], -- Currently configure does not- -- take extra args, but if it- -- did they would go here.- installDirTemplates = installDirs,- compiler = comp,- hostPlatform = compPlatform,- buildDir = buildDir,- componentsConfigs = buildComponents,- installedPkgs = packageDependsIndex,- pkgDescrFile = Nothing,- localPkgDescr = pkg_descr',- withPrograms = programsConfig'',- withVanillaLib = fromFlag $ configVanillaLib cfg,- withProfLib = profEnabledLib,- withSharedLib = withSharedLib_,- withDynExe = withDynExe_,- withProfExe = profEnabledExe,- withProfLibDetail = profDetailLib,- withProfExeDetail = profDetailExe,- withOptimization = fromFlag $ configOptimization cfg,- withDebugInfo = fromFlag $ configDebugInfo cfg,- withGHCiLib = fromFlagOrDefault ghciLibByDefault $- configGHCiLib cfg,- splitObjs = split_objs,- stripExes = fromFlag $ configStripExes cfg,- stripLibs = fromFlag $ configStripLibs cfg,- withPackageDB = packageDbs,- progPrefix = fromFlag $ configProgPrefix cfg,- progSuffix = fromFlag $ configProgSuffix cfg,- relocatable = reloc- }-- when reloc (checkRelocatable verbosity pkg_descr lbi)-- let dirs = absoluteInstallDirs pkg_descr lbi NoCopyDest- relative = prefixRelativeInstallDirs (packageId pkg_descr) lbi-- unless (isAbsolute (prefix dirs)) $ die $- "expected an absolute directory name for --prefix: " ++ prefix dirs-- info verbosity $ "Using " ++ display currentCabalId- ++ " compiled by " ++ display currentCompilerId- info verbosity $ "Using compiler: " ++ showCompilerId comp- info verbosity $ "Using install prefix: " ++ prefix dirs-- let dirinfo name dir isPrefixRelative =- info verbosity $ name ++ " installed in: " ++ dir ++ relNote- where relNote = case buildOS of- Windows | not (hasLibs pkg_descr)- && isNothing isPrefixRelative- -> " (fixed location)"- _ -> ""-- dirinfo "Binaries" (bindir dirs) (bindir relative)- dirinfo "Libraries" (libdir dirs) (libdir relative)- dirinfo "Dynamic libraries" (dynlibdir dirs) (dynlibdir relative)- dirinfo "Private binaries" (libexecdir dirs) (libexecdir relative)- dirinfo "Data files" (datadir dirs) (datadir relative)- dirinfo "Documentation" (docdir dirs) (docdir relative)- dirinfo "Configuration files" (sysconfdir dirs) (sysconfdir relative)-- sequence_ [ reportProgram verbosity prog configuredProg- | (prog, configuredProg) <- knownPrograms programsConfig'' ]-- return lbi-- where- verbosity = fromFlag (configVerbosity cfg)-- checkProfDetail (Flag (ProfDetailOther other)) = do- warn verbosity $- "Unknown profiling detail level '" ++ other- ++ "', using default.\n"- ++ "The profiling detail levels are: " ++ intercalate ", "- [ name | (name, _, _) <- knownProfDetailLevels ]- return (Flag ProfDetailDefault)- checkProfDetail other = return other--mkProgramsConfig :: ConfigFlags -> ProgramConfiguration -> ProgramConfiguration-mkProgramsConfig cfg initialProgramsConfig = programsConfig- where- programsConfig = userSpecifyArgss (configProgramArgs cfg)- . userSpecifyPaths (configProgramPaths cfg)- . setProgramSearchPath searchpath- $ initialProgramsConfig- searchpath = getProgramSearchPath (initialProgramsConfig)- ++ map ProgramSearchPathDir- (fromNubList $ configProgramPathExtra cfg)---- -------------------------------------------------------------------------------- Helper functions for configure---- | Check if the user used any deprecated flags.-checkDeprecatedFlags :: Verbosity -> ConfigFlags -> IO ()-checkDeprecatedFlags verbosity cfg = do- unless (configProfExe cfg == NoFlag) $ do- let enable | fromFlag (configProfExe cfg) = "enable"- | otherwise = "disable"- warn verbosity- ("The flag --" ++ enable ++ "-executable-profiling is deprecated. "- ++ "Please use --" ++ enable ++ "-profiling instead.")-- unless (configLibCoverage cfg == NoFlag) $ do- let enable | fromFlag (configLibCoverage cfg) = "enable"- | otherwise = "disable"- warn verbosity- ("The flag --" ++ enable ++ "-library-coverage is deprecated. "- ++ "Please use --" ++ enable ++ "-coverage instead.")---- | Sanity check: if '--exact-configuration' was given, ensure that the--- complete flag assignment was specified on the command line.-checkExactConfiguration :: GenericPackageDescription -> ConfigFlags -> IO ()-checkExactConfiguration pkg_descr0 cfg = do- when (fromFlagOrDefault False (configExactConfiguration cfg)) $ do- let cmdlineFlags = map fst (configConfigurationsFlags cfg)- allFlags = map flagName . genPackageFlags $ pkg_descr0- diffFlags = allFlags \\ cmdlineFlags- when (not . null $ diffFlags) $- die $ "'--exact-configuration' was given, "- ++ "but the following flags were not specified: "- ++ intercalate ", " (map show diffFlags)---- | Create a PackageIndex that makes *any libraries that might be*--- defined internally to this package look like installed packages, in--- case an executable should refer to any of them as dependencies.------ It must be *any libraries that might be* defined rather than the--- actual definitions, because these depend on conditionals in the .cabal--- file, and we haven't resolved them yet. finalizePackageDescription--- does the resolution of conditionals, and it takes internalPackageSet--- as part of its input.------ Currently a package can define no more than one library (which has--- the same name as the package) but we could extend this later.--- If we later allowed private internal libraries, then here we would--- need to pre-scan the conditional data to make a list of all private--- libraries that could possibly be defined by the .cabal file.-getInternalPackages :: GenericPackageDescription- -> InstalledPackageIndex-getInternalPackages pkg_descr0 =- let pid :: PackageIdentifier -- e.g. foo-0.1- pid = packageId pkg_descr0- internalPackage = emptyInstalledPackageInfo {- --TODO: should use a per-compiler method to map the source- -- package ID into an installed package id we can use- -- for the internal package set. The use of- -- mkLegacyUnitId here is a hack.- Installed.installedUnitId = mkLegacyUnitId pid,- Installed.sourcePackageId = pid- }- in PackageIndex.fromList [internalPackage]----- | Returns true if a dependency is satisfiable. This is to be passed--- to finalizePackageDescription.-dependencySatisfiable- :: Bool- -> InstalledPackageIndex -- ^ installed set- -> InstalledPackageIndex -- ^ internal set- -> Map PackageName InstalledPackageInfo -- ^ required dependencies- -> (Dependency -> Bool)-dependencySatisfiable- exact_config installedPackageSet internalPackageSet requiredDepsMap- d@(Dependency depName _)- | exact_config =- -- When we're given '--exact-configuration', we assume that all- -- dependencies and flags are exactly specified on the command- -- line. Thus we only consult the 'requiredDepsMap'. Note that- -- we're not doing the version range check, so if there's some- -- dependency that wasn't specified on the command line,- -- 'finalizePackageDescription' will fail.- --- -- TODO: mention '--exact-configuration' in the error message- -- when this fails?- --- -- (However, note that internal deps don't have to be- -- specified!)- (depName `Map.member` requiredDepsMap) || isInternalDep-- | otherwise =- -- Normal operation: just look up dependency in the combined- -- package index.- not . null . PackageIndex.lookupDependency pkgs $ d- where- pkgs = PackageIndex.merge internalPackageSet installedPackageSet- isInternalDep = not . null- $ PackageIndex.lookupDependency internalPackageSet d---- | Relax the dependencies of this package if needed.-relaxPackageDeps :: AllowNewer -> GenericPackageDescription- -> GenericPackageDescription-relaxPackageDeps AllowNewerNone gpd = gpd-relaxPackageDeps AllowNewerAll gpd = transformAllBuildDepends relaxAll gpd- where- relaxAll = \(Dependency pkgName verRange) ->- Dependency pkgName (removeUpperBound verRange)-relaxPackageDeps (AllowNewerSome allowNewerDeps') gpd =- transformAllBuildDepends relaxSome gpd- where- thisPkgName = packageName gpd- allowNewerDeps = mapMaybe f allowNewerDeps'-- f (Setup.AllowNewerDep p) = Just p- f (Setup.AllowNewerDepScoped scope p) | scope == thisPkgName = Just p- | otherwise = Nothing-- relaxSome = \d@(Dependency depName verRange) ->- if depName `elem` allowNewerDeps- then Dependency depName (removeUpperBound verRange)- else d---- | Finalize a generic package description. The workhorse is--- 'finalizePackageDescription' but there's a bit of other nattering--- about necessary.------ TODO: what exactly is the business with @flaggedTests@ and--- @flaggedBenchmarks@?-configureFinalizedPackage- :: Verbosity- -> ConfigFlags- -> [Dependency]- -> (Dependency -> Bool) -- ^ tests if a dependency is satisfiable.- -- Might say it's satisfiable even when not.- -> Compiler- -> Platform- -> GenericPackageDescription- -> IO (PackageDescription, FlagAssignment)-configureFinalizedPackage verbosity cfg- allConstraints satisfies comp compPlatform pkg_descr0 = do- let enableTest t = t { testEnabled = fromFlag (configTests cfg) }- flaggedTests = map (\(n, t) -> (n, mapTreeData enableTest t))- (condTestSuites pkg_descr0)- enableBenchmark bm = bm { benchmarkEnabled =- fromFlag (configBenchmarks cfg) }- flaggedBenchmarks = map (\(n, bm) ->- (n, mapTreeData enableBenchmark bm))- (condBenchmarks pkg_descr0)- pkg_descr0'' = pkg_descr0 { condTestSuites = flaggedTests- , condBenchmarks = flaggedBenchmarks }-- (pkg_descr0', flags) <-- case finalizePackageDescription- (configConfigurationsFlags cfg)- satisfies- compPlatform- (compilerInfo comp)- allConstraints- pkg_descr0''- of Right r -> return r- Left missing ->- die $ "Encountered missing dependencies:\n"- ++ (render . nest 4 . sep . punctuate comma- . map (disp . simplifyDependency)- $ missing)-- -- add extra include/lib dirs as specified in cfg- -- we do it here so that those get checked too- let pkg_descr = addExtraIncludeLibDirs pkg_descr0'-- when (not (null flags)) $- info verbosity $ "Flags chosen: "- ++ intercalate ", " [ name ++ "=" ++ display value- | (FlagName name, value) <- flags ]-- return (pkg_descr, flags)- where- addExtraIncludeLibDirs pkg_descr =- let extraBi = mempty { extraLibDirs = configExtraLibDirs cfg- , extraFrameworkDirs = configExtraFrameworkDirs cfg- , PD.includeDirs = configExtraIncludeDirs cfg}- modifyLib l = l{ libBuildInfo = libBuildInfo l- `mappend` extraBi }- modifyExecutable e = e{ buildInfo = buildInfo e- `mappend` extraBi}- in pkg_descr{ library = modifyLib `fmap` library pkg_descr- , executables = modifyExecutable `map`- executables pkg_descr}---- | Check for use of Cabal features which require compiler support-checkCompilerProblems :: Compiler -> PackageDescription -> IO ()-checkCompilerProblems comp pkg_descr = do- unless (renamingPackageFlagsSupported comp ||- and [ True- | bi <- allBuildInfo pkg_descr- , _ <- Map.elems (targetBuildRenaming bi)]) $- die $ "Your compiler does not support thinning and renaming on "- ++ "package flags. To use this feature you probably must use "- ++ "GHC 7.9 or later."-- when (maybe False (not.null.PD.reexportedModules) (PD.library pkg_descr)- && not (reexportedModulesSupported comp)) $ do- die $ "Your compiler does not support module re-exports. To use "- ++ "this feature you probably must use GHC 7.9 or later."---- | Select dependencies for the package.-configureDependencies- :: Verbosity- -> InstalledPackageIndex -- ^ internal packages- -> InstalledPackageIndex -- ^ installed packages- -> Map PackageName InstalledPackageInfo -- ^ required deps- -> PackageDescription- -> IO ([PackageId], [InstalledPackageInfo])-configureDependencies verbosity- internalPackageSet installedPackageSet requiredDepsMap pkg_descr = do- let selectDependencies :: [Dependency] ->- ([FailedDependency], [ResolvedDependency])- selectDependencies =- partitionEithers- . map (selectDependency internalPackageSet installedPackageSet- requiredDepsMap)-- (failedDeps, allPkgDeps) =- selectDependencies (buildDepends pkg_descr)-- internalPkgDeps = [ pkgid- | InternalDependency _ pkgid <- allPkgDeps ]- externalPkgDeps = [ pkg- | ExternalDependency _ pkg <- allPkgDeps ]-- when (not (null internalPkgDeps)- && not (newPackageDepsBehaviour pkg_descr)) $- die $ "The field 'build-depends: "- ++ intercalate ", " (map (display . packageName) internalPkgDeps)- ++ "' refers to a library which is defined within the same "- ++ "package. To use this feature the package must specify at "- ++ "least 'cabal-version: >= 1.8'."-- reportFailedDependencies failedDeps- reportSelectedDependencies verbosity allPkgDeps-- return (internalPkgDeps, externalPkgDeps)---- -------------------------------------------------------------------------------- Configuring package dependencies--reportProgram :: Verbosity -> Program -> Maybe ConfiguredProgram -> IO ()-reportProgram verbosity prog Nothing- = info verbosity $ "No " ++ programName prog ++ " found"-reportProgram verbosity prog (Just configuredProg)- = info verbosity $ "Using " ++ programName prog ++ version ++ location- where location = case programLocation configuredProg of- FoundOnSystem p -> " found on system at: " ++ p- UserSpecified p -> " given by user at: " ++ p- version = case programVersion configuredProg of- Nothing -> ""- Just v -> " version " ++ display v--hackageUrl :: String-hackageUrl = "http://hackage.haskell.org/package/"--data ResolvedDependency = ExternalDependency Dependency InstalledPackageInfo- | InternalDependency Dependency PackageId -- should be a- -- lib name--data FailedDependency = DependencyNotExists PackageName- | DependencyNoVersion Dependency---- | Test for a package dependency and record the version we have installed.-selectDependency :: InstalledPackageIndex -- ^ Internally defined packages- -> InstalledPackageIndex -- ^ Installed packages- -> Map PackageName InstalledPackageInfo- -- ^ Packages for which we have been given specific deps to- -- use- -> Dependency- -> Either FailedDependency ResolvedDependency-selectDependency internalIndex installedIndex requiredDepsMap- dep@(Dependency pkgname vr) =- -- If the dependency specification matches anything in the internal package- -- index, then we prefer that match to anything in the second.- -- For example:- --- -- Name: MyLibrary- -- Version: 0.1- -- Library- -- ..- -- Executable my-exec- -- build-depends: MyLibrary- --- -- We want "build-depends: MyLibrary" always to match the internal library- -- even if there is a newer installed library "MyLibrary-0.2".- -- However, "build-depends: MyLibrary >= 0.2" should match the installed one.- case PackageIndex.lookupPackageName internalIndex pkgname of- [(_,[pkg])] | packageVersion pkg `withinRange` vr- -> Right $ InternalDependency dep (packageId pkg)-- _ -> case Map.lookup pkgname requiredDepsMap of- -- If we know the exact pkg to use, then use it.- Just pkginstance -> Right (ExternalDependency dep pkginstance)- -- Otherwise we just pick an arbitrary instance of the latest version.- Nothing -> case PackageIndex.lookupDependency installedIndex dep of- [] -> Left $ DependencyNotExists pkgname- pkgs -> Right $ ExternalDependency dep $- case last pkgs of- (_ver, pkginstances) -> head pkginstances--reportSelectedDependencies :: Verbosity- -> [ResolvedDependency] -> IO ()-reportSelectedDependencies verbosity deps =- info verbosity $ unlines- [ "Dependency " ++ display (simplifyDependency dep)- ++ ": using " ++ display pkgid- | resolved <- deps- , let (dep, pkgid) = case resolved of- ExternalDependency dep' pkg' -> (dep', packageId pkg')- InternalDependency dep' pkgid' -> (dep', pkgid') ]--reportFailedDependencies :: [FailedDependency] -> IO ()-reportFailedDependencies [] = return ()-reportFailedDependencies failed =- die (intercalate "\n\n" (map reportFailedDependency failed))-- where- reportFailedDependency (DependencyNotExists pkgname) =- "there is no version of " ++ display pkgname ++ " installed.\n"- ++ "Perhaps you need to download and install it from\n"- ++ hackageUrl ++ display pkgname ++ "?"-- reportFailedDependency (DependencyNoVersion dep) =- "cannot satisfy dependency " ++ display (simplifyDependency dep) ++ "\n"---- | List all installed packages in the given package databases.-getInstalledPackages :: Verbosity -> Compiler- -> PackageDBStack -- ^ The stack of package databases.- -> ProgramConfiguration- -> IO InstalledPackageIndex-getInstalledPackages verbosity comp packageDBs progconf = do- when (null packageDBs) $- die $ "No package databases have been specified. If you use "- ++ "--package-db=clear, you must follow it with --package-db= "- ++ "with 'global', 'user' or a specific file."-- info verbosity "Reading installed packages..."- case compilerFlavor comp of- GHC -> GHC.getInstalledPackages verbosity comp packageDBs progconf- GHCJS -> GHCJS.getInstalledPackages verbosity packageDBs progconf- JHC -> JHC.getInstalledPackages verbosity packageDBs progconf- LHC -> LHC.getInstalledPackages verbosity packageDBs progconf- UHC -> UHC.getInstalledPackages verbosity comp packageDBs progconf- HaskellSuite {} ->- HaskellSuite.getInstalledPackages verbosity packageDBs progconf- flv -> die $ "don't know how to find the installed packages for "- ++ display flv---- | Like 'getInstalledPackages', but for a single package DB.------ NB: Why isn't this always a fall through to 'getInstalledPackages'?--- That is because 'getInstalledPackages' performs some sanity checks--- on the package database stack in question. However, when sandboxes--- are involved these sanity checks are not desirable.-getPackageDBContents :: Verbosity -> Compiler- -> PackageDB -> ProgramConfiguration- -> IO InstalledPackageIndex-getPackageDBContents verbosity comp packageDB progconf = do- info verbosity "Reading installed packages..."- case compilerFlavor comp of- GHC -> GHC.getPackageDBContents verbosity packageDB progconf- GHCJS -> GHCJS.getPackageDBContents verbosity packageDB progconf- -- For other compilers, try to fall back on 'getInstalledPackages'.- _ -> getInstalledPackages verbosity comp [packageDB] progconf----- | A set of files (or directories) that can be monitored to detect when--- there might have been a change in the installed packages.----getInstalledPackagesMonitorFiles :: Verbosity -> Compiler- -> PackageDBStack- -> ProgramConfiguration -> Platform- -> IO [FilePath]-getInstalledPackagesMonitorFiles verbosity comp packageDBs progconf platform =- case compilerFlavor comp of- GHC -> GHC.getInstalledPackagesMonitorFiles- verbosity platform progconf packageDBs- other -> do- warn verbosity $ "don't know how to find change monitoring files for "- ++ "the installed package databases for " ++ display other- return []---- | The user interface specifies the package dbs to use with a combination of--- @--global@, @--user@ and @--package-db=global|user|clear|$file@.--- This function combines the global/user flag and interprets the package-db--- flag into a single package db stack.----interpretPackageDbFlags :: Bool -> [Maybe PackageDB] -> PackageDBStack-interpretPackageDbFlags userInstall specificDBs =- extra initialStack specificDBs- where- initialStack | userInstall = [GlobalPackageDB, UserPackageDB]- | otherwise = [GlobalPackageDB]-- extra dbs' [] = dbs'- extra _ (Nothing:dbs) = extra [] dbs- extra dbs' (Just db:dbs) = extra (dbs' ++ [db]) dbs--newPackageDepsBehaviourMinVersion :: Version-newPackageDepsBehaviourMinVersion = Version [1,7,1] []---- In older cabal versions, there was only one set of package dependencies for--- the whole package. In this version, we can have separate dependencies per--- target, but we only enable this behaviour if the minimum cabal version--- specified is >= a certain minimum. Otherwise, for compatibility we use the--- old behaviour.-newPackageDepsBehaviour :: PackageDescription -> Bool-newPackageDepsBehaviour pkg =- specVersion pkg >= newPackageDepsBehaviourMinVersion---- We are given both --constraint="foo < 2.0" style constraints and also--- specific packages to pick via --dependency="foo=foo-2.0-177d5cdf20962d0581".------ When finalising the package we have to take into account the specific--- installed deps we've been given, and the finalise function expects--- constraints, so we have to translate these deps into version constraints.------ But after finalising we then have to make sure we pick the right specific--- deps in the end. So we still need to remember which installed packages to--- pick.-combinedConstraints :: [Dependency] ->- [(PackageName, UnitId)] ->- InstalledPackageIndex ->- Either String ([Dependency],- Map PackageName InstalledPackageInfo)-combinedConstraints constraints dependencies installedPackages = do-- when (not (null badUnitIds)) $- Left $ render $ text "The following package dependencies were requested"- $+$ nest 4 (dispDependencies badUnitIds)- $+$ text "however the given installed package instance does not exist."-- when (not (null badNames)) $- Left $ render $ text "The following package dependencies were requested"- $+$ nest 4 (dispDependencies badNames)- $+$ text ("however the installed package's name does not match "- ++ "the name given.")-- --TODO: we don't check that all dependencies are used!-- return (allConstraints, idConstraintMap)-- where- allConstraints :: [Dependency]- allConstraints = constraints- ++ [ thisPackageVersion (packageId pkg)- | (_, _, Just pkg) <- dependenciesPkgInfo ]-- idConstraintMap :: Map PackageName InstalledPackageInfo- idConstraintMap = Map.fromList- [ (packageName pkg, pkg)- | (_, _, Just pkg) <- dependenciesPkgInfo ]-- -- The dependencies along with the installed package info, if it exists- dependenciesPkgInfo :: [(PackageName, UnitId,- Maybe InstalledPackageInfo)]- dependenciesPkgInfo =- [ (pkgname, ipkgid, mpkg)- | (pkgname, ipkgid) <- dependencies- , let mpkg = PackageIndex.lookupUnitId- installedPackages ipkgid- ]-- -- If we looked up a package specified by an installed package id- -- (i.e. someone has written a hash) and didn't find it then it's- -- an error.- badUnitIds =- [ (pkgname, ipkgid)- | (pkgname, ipkgid, Nothing) <- dependenciesPkgInfo ]-- -- If someone has written e.g.- -- --dependency="foo=MyOtherLib-1.0-07...5bf30" then they have- -- probably made a mistake.- badNames =- [ (requestedPkgName, ipkgid)- | (requestedPkgName, ipkgid, Just pkg) <- dependenciesPkgInfo- , let foundPkgName = packageName pkg- , requestedPkgName /= foundPkgName ]-- dispDependencies deps =- hsep [ text "--dependency="- <> quotes (disp pkgname <> char '=' <> disp ipkgid)- | (pkgname, ipkgid) <- deps ]---- -------------------------------------------------------------------------------- Configuring program dependencies--configureRequiredPrograms :: Verbosity -> [Dependency] -> ProgramConfiguration- -> IO ProgramConfiguration-configureRequiredPrograms verbosity deps conf =- foldM (configureRequiredProgram verbosity) conf deps--configureRequiredProgram :: Verbosity -> ProgramConfiguration -> Dependency- -> IO ProgramConfiguration-configureRequiredProgram verbosity conf- (Dependency (PackageName progName) verRange) =- case lookupKnownProgram progName conf of- Nothing -> die ("Unknown build tool " ++ progName)- Just prog- -- requireProgramVersion always requires the program have a version- -- but if the user says "build-depends: foo" ie no version constraint- -- then we should not fail if we cannot discover the program version.- | verRange == anyVersion -> do- (_, conf') <- requireProgram verbosity prog conf- return conf'- | otherwise -> do- (_, _, conf') <- requireProgramVersion verbosity prog verRange conf- return conf'---- -------------------------------------------------------------------------------- Configuring pkg-config package dependencies--configurePkgconfigPackages :: Verbosity -> PackageDescription- -> ProgramConfiguration- -> IO (PackageDescription, ProgramConfiguration)-configurePkgconfigPackages verbosity pkg_descr conf- | null allpkgs = return (pkg_descr, conf)- | otherwise = do- (_, _, conf') <- requireProgramVersion- (lessVerbose verbosity) pkgConfigProgram- (orLaterVersion $ Version [0,9,0] []) conf- mapM_ requirePkg allpkgs- lib' <- mapM addPkgConfigBILib (library pkg_descr)- exes' <- mapM addPkgConfigBIExe (executables pkg_descr)- tests' <- mapM addPkgConfigBITest (testSuites pkg_descr)- benches' <- mapM addPkgConfigBIBench (benchmarks pkg_descr)- let pkg_descr' = pkg_descr { library = lib', executables = exes',- testSuites = tests', benchmarks = benches' }- return (pkg_descr', conf')-- where- allpkgs = concatMap pkgconfigDepends (allBuildInfo pkg_descr)- pkgconfig = rawSystemProgramStdoutConf (lessVerbose verbosity)- pkgConfigProgram conf-- requirePkg dep@(Dependency (PackageName pkg) range) = do- version <- pkgconfig ["--modversion", pkg]- `catchIO` (\_ -> die notFound)- `catchExit` (\_ -> die notFound)- case simpleParse version of- Nothing -> die "parsing output of pkg-config --modversion failed"- Just v | not (withinRange v range) -> die (badVersion v)- | otherwise -> info verbosity (depSatisfied v)- where- notFound = "The pkg-config package '" ++ pkg ++ "'"- ++ versionRequirement- ++ " is required but it could not be found."- badVersion v = "The pkg-config package '" ++ pkg ++ "'"- ++ versionRequirement- ++ " is required but the version installed on the"- ++ " system is version " ++ display v- depSatisfied v = "Dependency " ++ display dep- ++ ": using version " ++ display v-- versionRequirement- | isAnyVersion range = ""- | otherwise = " version " ++ display range-- -- Adds pkgconfig dependencies to the build info for a component- addPkgConfigBI compBI setCompBI comp = do- bi <- pkgconfigBuildInfo (pkgconfigDepends (compBI comp))- return $ setCompBI comp (compBI comp `mappend` bi)-- -- Adds pkgconfig dependencies to the build info for a library- addPkgConfigBILib = addPkgConfigBI libBuildInfo $- \lib bi -> lib { libBuildInfo = bi }-- -- Adds pkgconfig dependencies to the build info for an executable- addPkgConfigBIExe = addPkgConfigBI buildInfo $- \exe bi -> exe { buildInfo = bi }-- -- Adds pkgconfig dependencies to the build info for a test suite- addPkgConfigBITest = addPkgConfigBI testBuildInfo $- \test bi -> test { testBuildInfo = bi }-- -- Adds pkgconfig dependencies to the build info for a benchmark- addPkgConfigBIBench = addPkgConfigBI benchmarkBuildInfo $- \bench bi -> bench { benchmarkBuildInfo = bi }-- pkgconfigBuildInfo :: [Dependency] -> IO BuildInfo- pkgconfigBuildInfo [] = return Mon.mempty- pkgconfigBuildInfo pkgdeps = do- let pkgs = nub [ display pkg | Dependency pkg _ <- pkgdeps ]- ccflags <- pkgconfig ("--cflags" : pkgs)- ldflags <- pkgconfig ("--libs" : pkgs)- return (ccLdOptionsBuildInfo (words ccflags) (words ldflags))---- | Makes a 'BuildInfo' from C compiler and linker flags.------ This can be used with the output from configuration programs like pkg-config--- and similar package-specific programs like mysql-config, freealut-config etc.--- For example:------ > ccflags <- rawSystemProgramStdoutConf verbosity prog conf ["--cflags"]--- > ldflags <- rawSystemProgramStdoutConf verbosity prog conf ["--libs"]--- > return (ccldOptionsBuildInfo (words ccflags) (words ldflags))----ccLdOptionsBuildInfo :: [String] -> [String] -> BuildInfo-ccLdOptionsBuildInfo cflags ldflags =- let (includeDirs', cflags') = partition ("-I" `isPrefixOf`) cflags- (extraLibs', ldflags') = partition ("-l" `isPrefixOf`) ldflags- (extraLibDirs', ldflags'') = partition ("-L" `isPrefixOf`) ldflags'- in mempty {- PD.includeDirs = map (drop 2) includeDirs',- PD.extraLibs = map (drop 2) extraLibs',- PD.extraLibDirs = map (drop 2) extraLibDirs',- PD.ccOptions = cflags',- PD.ldOptions = ldflags''- }---- -------------------------------------------------------------------------------- Determining the compiler details--configCompilerAuxEx :: ConfigFlags- -> IO (Compiler, Platform, ProgramConfiguration)-configCompilerAuxEx cfg = configCompilerEx (flagToMaybe $ configHcFlavor cfg)- (flagToMaybe $ configHcPath cfg)- (flagToMaybe $ configHcPkg cfg)- programsConfig- (fromFlag (configVerbosity cfg))- where- programsConfig = mkProgramsConfig cfg defaultProgramConfiguration--configCompilerEx :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath- -> ProgramConfiguration -> Verbosity- -> IO (Compiler, Platform, ProgramConfiguration)-configCompilerEx Nothing _ _ _ _ = die "Unknown compiler"-configCompilerEx (Just hcFlavor) hcPath hcPkg conf verbosity = do- (comp, maybePlatform, programsConfig) <- case hcFlavor of- GHC -> GHC.configure verbosity hcPath hcPkg conf- GHCJS -> GHCJS.configure verbosity hcPath hcPkg conf- JHC -> JHC.configure verbosity hcPath hcPkg conf- LHC -> do (_, _, ghcConf) <- GHC.configure verbosity Nothing hcPkg conf- LHC.configure verbosity hcPath Nothing ghcConf- UHC -> UHC.configure verbosity hcPath hcPkg conf- HaskellSuite {} -> HaskellSuite.configure verbosity hcPath hcPkg conf- _ -> die "Unknown compiler"- return (comp, fromMaybe buildPlatform maybePlatform, programsConfig)---- Ideally we would like to not have separate configCompiler* and--- configCompiler*Ex sets of functions, but there are many custom setup scripts--- in the wild that are using them, so the versions with old types are kept for--- backwards compatibility. Platform was added to the return triple in 1.18.--{-# DEPRECATED configCompiler- "'configCompiler' is deprecated. Use 'configCompilerEx' instead." #-}-configCompiler :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath- -> ProgramConfiguration -> Verbosity- -> IO (Compiler, ProgramConfiguration)-configCompiler mFlavor hcPath hcPkg conf verbosity =- fmap (\(a,_,b) -> (a,b)) $ configCompilerEx mFlavor hcPath hcPkg conf verbosity--{-# DEPRECATED configCompilerAux- "configCompilerAux is deprecated. Use 'configCompilerAuxEx' instead." #-}-configCompilerAux :: ConfigFlags- -> IO (Compiler, ProgramConfiguration)-configCompilerAux = fmap (\(a,_,b) -> (a,b)) . configCompilerAuxEx---- -------------------------------------------------------------------------------- Making the internal component graph---mkComponentsGraph :: PackageDescription- -> [PackageId]- -> Either [ComponentName]- [(Component, [ComponentName])]-mkComponentsGraph pkg_descr internalPkgDeps =- let graph = [ (c, componentName c, componentDeps c)- | c <- pkgEnabledComponents pkg_descr ]- in case checkComponentsCyclic graph of- Just ccycle -> Left [ cname | (_,cname,_) <- ccycle ]- Nothing -> Right [ (c, cdeps) | (c, _, cdeps) <- graph ]- where- -- The dependencies for the given component- componentDeps component =- [ CExeName toolname | Dependency (PackageName toolname) _- <- buildTools bi- , toolname `elem` map exeName- (executables pkg_descr) ]-- ++ [ CLibName | Dependency pkgname _ <- targetBuildDepends bi- , pkgname `elem` map packageName internalPkgDeps ]- where- bi = componentBuildInfo component--reportComponentCycle :: [ComponentName] -> IO a-reportComponentCycle cnames =- die $ "Components in the package depend on each other in a cyclic way:\n "- ++ intercalate " depends on "- [ "'" ++ showComponentName cname ++ "'"- | cname <- cnames ++ [head cnames] ]---- | This method computes a default, "good enough" 'ComponentId'--- for a package. The intent is that cabal-install (or the user) will--- specify a more detailed IPID via the @--ipid@ flag if necessary.-computeComponentId :: PackageIdentifier- -> ComponentName- -- TODO: careful here!- -> [ComponentId] -- IPIDs of the component dependencies- -> FlagAssignment- -> ComponentId-computeComponentId pid cname dep_ipids flagAssignment = do- -- show is found to be faster than intercalate and then replacement of- -- special character used in intercalating. We cannot simply hash by- -- doubly concating list, as it just flatten out the nested list, so- -- different sources can produce same hash- let hash = hashToBase62 $- -- For safety, include the package + version here- -- for GHC 7.10, where just the hash is used as- -- the package key- (display pid)- ++ (show $ dep_ipids)- ++ show flagAssignment- ComponentId $- display pid- ++ "-" ++ hash- ++ (case cname of- CLibName -> ""- -- TODO: these could result in non-parseable IPIDs- -- since the component name format is very flexible- CExeName s -> "-" ++ s ++ ".exe"- CTestName s -> "-" ++ s ++ ".test"- CBenchName s -> "-" ++ s ++ ".bench")--hashToBase62 :: String -> String-hashToBase62 s = showFingerprint $ fingerprintString s- where- showIntAtBase62 x = showIntAtBase 62 representBase62 x ""- representBase62 x- | x < 10 = chr (48 + x)- | x < 36 = chr (65 + x - 10)- | x < 62 = chr (97 + x - 36)- | otherwise = '@'- showFingerprint (Fingerprint a b) = showIntAtBase62 a ++ showIntAtBase62 b---- | In GHC 8.0, the string we pass to GHC to use for symbol--- names for a package can be an arbitrary, IPID-compatible string.--- However, prior to GHC 8.0 there are some restrictions on what--- format this string can be (due to how ghc-pkg parsed the key):------ 1. In GHC 7.10, the string had either be of the form--- foo_ABCD, where foo is a non-semantic alphanumeric/hyphenated--- prefix and ABCD is two base-64 encoded 64-bit integers,--- or a GHC 7.8 style identifier.------ 2. In GHC 7.8, the string had to be a valid package identifier--- like foo-0.1.------ So, the problem is that Cabal, in general, has a general IPID,--- but needs to figure out a package key / package ID that the--- old ghc-pkg will actually accept. But there's an EVERY WORSE--- problem: if ghc-pkg decides to parse an identifier foo-0.1-xxx--- as if it were a package identifier, which means it will SILENTLY--- DROP the "xxx" (because it's a tag, and Cabal does not allow tags.)--- So we must CONNIVE to ensure that we don't pick something that--- looks like this.------ So this function attempts to define a mapping into the old formats.------ The mapping for GHC 7.8 and before:------ * For CLibName, we unconditionally use the 'PackageIdentifier'.------ * For sub-components, we create a new 'PackageIdentifier' which--- is encoded in the following way. The test suite "qux" in package--- "foobar-0.2" gets this package identifier "z-foobar-z-test-qux-0.2".--- These package IDs have the form:------ cpid ::= "z-" package-id "-z-" component-type "-" component-name--- component-type ::= "test" | "bench" | "exe" | "lib"--- package-id and component-name have "-" ( "z" + ) "-"--- segments encoded by adding an extra "z".------ The mapping for GHC 7.10:------ * For CLibName:--- If the IPID is of the form foo-0.1-ABCDEF where foo_ABCDEF would--- validly parse as a package key, we pass "ABCDEF". (NB: not--- all hashes parse this way, because GHC 7.10 mandated that--- these hashes be two base-62 encoded 64 bit integers),--- but hashes that Cabal generated using 'computeComponentId'--- are guaranteed to have this form.------ If it is not of this form, we rehash the IPID into the--- correct form and pass that.------ * For sub-components, we rehash the IPID into the correct format--- and pass that.----computeCompatPackageKey- :: Compiler- -> PackageIdentifier- -> ComponentName- -> UnitId- -> (PackageName, String)-computeCompatPackageKey comp pid cname uid@(SimpleUnitId (ComponentId str))- | not (packageKeySupported comp || unitIdSupported comp) =- -- NB: the package ID in the database entry has to follow this- let zdashcode s = go s (Nothing :: Maybe Int) []- where go [] _ r = reverse r- go ('-':z) (Just n) r | n > 0 = go z (Just 0) ('-':'z':r)- go ('-':z) _ r = go z (Just 0) ('-':r)- go ('z':z) (Just n) r = go z (Just (n+1)) ('z':r)- go (c:z) _ r = go z Nothing (c:r)- cname_str = case cname of- CLibName -> error "computeCompatPackageKey"- CTestName n -> "-z-test-" ++ zdashcode n- CBenchName n -> "-z-bench-" ++ zdashcode n- CExeName n -> "-z-exe-" ++ zdashcode n- package_name- | cname == CLibName = pkgName pid- | otherwise = PackageName $ "z-"- ++ zdashcode (display (pkgName pid))- ++ zdashcode cname_str- old_style_key- | cname == CLibName = display pid- | otherwise = display package_name ++ "-"- ++ display (pkgVersion pid)- in (package_name, old_style_key)- | not (unifiedIPIDRequired comp) =- let mb_verbatim_key- = case simpleParse str :: Maybe PackageId of- -- Something like 'foo-0.1', use it verbatim.- -- (NB: hash tags look like tags, so they are parsed,- -- so the extra equality check tests if a tag was dropped.)- Just pid0 | display pid0 == str -> Just str- _ -> Nothing- mb_truncated_key- = let cand = reverse (takeWhile isAlphaNum (reverse str))- in if length cand == 22 && all isAlphaNum cand- then Just cand- else Nothing- rehashed_key = hashToBase62 str- in (pkgName pid, fromMaybe rehashed_key- (mb_verbatim_key `mplus` mb_truncated_key))- | otherwise = (pkgName pid, display uid)--mkComponentsLocalBuildInfo :: ConfigFlags- -> Compiler- -> InstalledPackageIndex- -> PackageDescription- -> [PackageId] -- internal package deps- -> [InstalledPackageInfo] -- external package deps- -> [(Component, [ComponentName])]- -> FlagAssignment- -> IO [(ComponentName, ComponentLocalBuildInfo,- [ComponentName])]-mkComponentsLocalBuildInfo cfg comp installedPackages pkg_descr- internalPkgDeps externalPkgDeps- graph flagAssignment = do- -- Pre-compute library hash so we can setup internal deps- -- TODO configIPID should have name changed- let cid = case configIPID cfg of- Flag cid0 ->- -- Hack to reuse install dirs machinery- -- NB: no real IPID available at this point- let env = packageTemplateEnv (package pkg_descr)- (mkUnitId "")- str = fromPathTemplate- (InstallDirs.substPathTemplate env- (toPathTemplate cid0))- in ComponentId str- _ ->- computeComponentId (package pkg_descr) CLibName- (getDeps CLibName) flagAssignment- uid = SimpleUnitId cid- (_, compat_key) = computeCompatPackageKey comp- (package pkg_descr) CLibName uid- sequence- [ do clbi <- componentLocalBuildInfo uid compat_key c- return (componentName c, clbi, cdeps)- | (c, cdeps) <- graph ]- where- getDeps cname =- let externalPkgs = maybe [] (\lib -> selectSubset- (componentBuildInfo lib)- externalPkgDeps)- (lookupComponent pkg_descr cname)- in map Installed.installedComponentId externalPkgs-- -- The allPkgDeps contains all the package deps for the whole package- -- but we need to select the subset for this specific component.- -- we just take the subset for the package names this component- -- needs. Note, this only works because we cannot yet depend on two- -- versions of the same package.- componentLocalBuildInfo uid compat_key component =- case component of- CLib lib -> do- let exports = map (\n -> Installed.ExposedModule n Nothing)- (PD.exposedModules lib)- let mb_reexports = resolveModuleReexports installedPackages- (packageId pkg_descr)- uid- externalPkgDeps lib- reexports <- case mb_reexports of- Left problems -> reportModuleReexportProblems problems- Right r -> return r-- return LibComponentLocalBuildInfo {- componentPackageDeps = cpds,- componentUnitId = uid,- componentCompatPackageKey = compat_key,- componentPackageRenaming = cprns,- componentExposedModules = exports ++ reexports- }- CExe _ ->- return ExeComponentLocalBuildInfo {- componentPackageDeps = cpds,- componentPackageRenaming = cprns- }- CTest _ ->- return TestComponentLocalBuildInfo {- componentPackageDeps = cpds,- componentPackageRenaming = cprns- }- CBench _ ->- return BenchComponentLocalBuildInfo {- componentPackageDeps = cpds,- componentPackageRenaming = cprns- }- where- bi = componentBuildInfo component- dedup = Map.toList . Map.fromList- cpds = if newPackageDepsBehaviour pkg_descr- then dedup $- [ (Installed.installedUnitId pkg, packageId pkg)- | pkg <- selectSubset bi externalPkgDeps ]- ++ [ (uid, pkgid)- | pkgid <- selectSubset bi internalPkgDeps ]- else [ (Installed.installedUnitId pkg, packageId pkg)- | pkg <- externalPkgDeps ]- cprns = if newPackageDepsBehaviour pkg_descr- then targetBuildRenaming bi- -- Hack: if we have old package-deps behavior, it's impossible- -- for non-default renamings to be used, because the Cabal- -- version is too early. This is a good, because while all the- -- deps were bundled up in buildDepends, we didn't do this for- -- renamings, so it's not even clear how to get the merged- -- version. So just assume that all of them are the default..- else Map.fromList (map (\(_,pid) ->- (packageName pid, defaultRenaming)) cpds)-- selectSubset :: Package pkg => BuildInfo -> [pkg] -> [pkg]- selectSubset bi pkgs =- [ pkg | pkg <- pkgs, packageName pkg `elem` names bi ]-- names bi = [ name | Dependency name _ <- targetBuildDepends bi ]---- | Given the author-specified re-export declarations from the .cabal file,--- resolve them to the form that we need for the package database.------ An invariant of the package database is that we always link the re-export--- directly to its original defining location (rather than indirectly via a--- chain of re-exporting packages).----resolveModuleReexports :: InstalledPackageIndex- -> PackageId- -> UnitId- -> [InstalledPackageInfo]- -> Library- -> Either [(ModuleReexport, String)] -- errors- [Installed.ExposedModule] -- ok-resolveModuleReexports installedPackages srcpkgid key externalPkgDeps lib =- case partitionEithers- (map resolveModuleReexport (PD.reexportedModules lib)) of- ([], ok) -> Right ok- (errs, _) -> Left errs- where- -- A mapping from visible module names to their original defining- -- module name. We also record the package name of the package which- -- *immediately* provided the module (not the original) to handle if the- -- user explicitly says which build-depends they want to reexport from.- visibleModules :: Map ModuleName [(PackageName, Installed.ExposedModule)]- visibleModules =- Map.fromListWith (++) $- [ (Installed.exposedName exposedModule, [(exportingPackageName,- exposedModule)])- -- The package index here contains all the indirect deps of the- -- package we're configuring, but we want just the direct deps- | let directDeps = Set.fromList- (map Installed.installedUnitId externalPkgDeps)- , pkg <- PackageIndex.allPackages installedPackages- , Installed.installedUnitId pkg `Set.member` directDeps- , let exportingPackageName = packageName pkg- , exposedModule <- visibleModuleDetails pkg- ]- ++ [ (visibleModuleName, [(exportingPackageName, exposedModule)])- | visibleModuleName <- PD.exposedModules lib- ++ otherModules (libBuildInfo lib)- , let exportingPackageName = packageName srcpkgid- definingModuleName = visibleModuleName- definingPackageId = key- originalModule = Installed.OriginalModule definingPackageId- definingModuleName- exposedModule = Installed.ExposedModule visibleModuleName- (Just originalModule)- ]-- -- All the modules exported from this package and their defining name and- -- package (either defined here in this package or re-exported from some- -- other package). Return an ExposedModule because we want to hold onto- -- signature information.- visibleModuleDetails :: InstalledPackageInfo -> [Installed.ExposedModule]- visibleModuleDetails pkg = do- exposedModule <- Installed.exposedModules pkg- case Installed.exposedReexport exposedModule of- -- The first case is the modules actually defined in this package.- -- In this case the reexport will point to this package.- Nothing -> return exposedModule {- Installed.exposedReexport =- Just (Installed.OriginalModule- (Installed.installedUnitId pkg)- (Installed.exposedName exposedModule)) }- -- On the other hand, a visible module might actually be itself- -- a re-export! In this case, the re-export info for the package- -- doing the re-export will point us to the original defining- -- module name and package, so we can reuse the entry.- Just _ -> return exposedModule-- resolveModuleReexport reexport@ModuleReexport {- moduleReexportOriginalPackage = moriginalPackageName,- moduleReexportOriginalName = originalName,- moduleReexportName = newName- } =-- let filterForSpecificPackage =- case moriginalPackageName of- Nothing -> id- Just originalPackageName ->- filter (\(pkgname, _) -> pkgname == originalPackageName)-- matches = filterForSpecificPackage- (Map.findWithDefault [] originalName visibleModules)- in- case (matches, moriginalPackageName) of- ((_, exposedModule):rest, _)- -- TODO: Refine this check for signatures- | all (\(_, exposedModule') ->- Installed.exposedReexport exposedModule- == Installed.exposedReexport exposedModule') rest- -> Right exposedModule { Installed.exposedName = newName }-- ([], Just originalPackageName)- -> Left $ (,) reexport- $ "The package " ++ display originalPackageName- ++ " does not export a module " ++ display originalName-- ([], Nothing)- -> Left $ (,) reexport- $ "The module " ++ display originalName- ++ " is not exported by any suitable package (this package "- ++ "itself nor any of its 'build-depends' dependencies)."-- (ms, _)- -> Left $ (,) reexport- $ "The module " ++ display originalName ++ " is exported "- ++ "by more than one package ("- ++ intercalate ", " [ display pkgname | (pkgname,_) <- ms ]- ++ ") and so the re-export is ambiguous. The ambiguity can "- ++ "be resolved by qualifying by the package name. The "- ++ "syntax is 'packagename:moduleName [as newname]'."-- -- Note: if in future Cabal allows directly depending on multiple- -- instances of the same package (e.g. backpack) then an additional- -- ambiguity case is possible here: (_, Just originalPackageName)- -- with the module being ambiguous despite being qualified by a- -- package name. Presumably by that time we'll have a mechanism to- -- qualify the instance we're referring to.--reportModuleReexportProblems :: [(ModuleReexport, String)] -> IO a-reportModuleReexportProblems reexportProblems =- die $ unlines- [ "Problem with the module re-export '" ++ display reexport ++ "': " ++ msg- | (reexport, msg) <- reexportProblems ]---- -------------------------------------------------------------------------------- Testing C lib and header dependencies---- Try to build a test C program which includes every header and links every--- lib. If that fails, try to narrow it down by preprocessing (only) and linking--- with individual headers and libs. If none is the obvious culprit then give a--- generic error message.--- TODO: produce a log file from the compiler errors, if any.-checkForeignDeps :: PackageDescription -> LocalBuildInfo -> Verbosity -> IO ()-checkForeignDeps pkg lbi verbosity = do- ifBuildsWith allHeaders (commonCcArgs ++ makeLdArgs allLibs) -- I'm feeling- -- lucky- (return ())- (do missingLibs <- findMissingLibs- missingHdr <- findOffendingHdr- explainErrors missingHdr missingLibs)- where- allHeaders = collectField PD.includes- allLibs = collectField PD.extraLibs-- ifBuildsWith headers args success failure = do- ok <- builds (makeProgram headers) args- if ok then success else failure-- findOffendingHdr =- ifBuildsWith allHeaders ccArgs- (return Nothing)- (go . tail . inits $ allHeaders)- where- go [] = return Nothing -- cannot happen- go (hdrs:hdrsInits) =- -- Try just preprocessing first- ifBuildsWith hdrs cppArgs- -- If that works, try compiling too- (ifBuildsWith hdrs ccArgs- (go hdrsInits)- (return . Just . Right . last $ hdrs))- (return . Just . Left . last $ hdrs)-- cppArgs = "-E":commonCppArgs -- preprocess only- ccArgs = "-c":commonCcArgs -- don't try to link-- findMissingLibs = ifBuildsWith [] (makeLdArgs allLibs)- (return [])- (filterM (fmap not . libExists) allLibs)-- libExists lib = builds (makeProgram []) (makeLdArgs [lib])-- commonCppArgs = platformDefines lbi- ++ [ "-I" ++ autogenModulesDir lbi ]- ++ [ "-I" ++ dir | dir <- collectField PD.includeDirs ]- ++ ["-I."]- ++ collectField PD.cppOptions- ++ collectField PD.ccOptions- ++ [ "-I" ++ dir- | dep <- deps- , dir <- Installed.includeDirs dep ]- ++ [ opt- | dep <- deps- , opt <- Installed.ccOptions dep ]-- commonCcArgs = commonCppArgs- ++ collectField PD.ccOptions- ++ [ opt- | dep <- deps- , opt <- Installed.ccOptions dep ]-- commonLdArgs = [ "-L" ++ dir | dir <- collectField PD.extraLibDirs ]- ++ collectField PD.ldOptions- ++ [ "-L" ++ dir- | dep <- deps- , dir <- Installed.libraryDirs dep ]- --TODO: do we also need dependent packages' ld options?- makeLdArgs libs = [ "-l"++lib | lib <- libs ] ++ commonLdArgs-- makeProgram hdrs = unlines $- [ "#include \"" ++ hdr ++ "\"" | hdr <- hdrs ] ++- ["int main(int argc, char** argv) { return 0; }"]-- collectField f = concatMap f allBi- allBi = allBuildInfo pkg- deps = PackageIndex.topologicalOrder (installedPkgs lbi)-- builds program args = do- tempDir <- getTemporaryDirectory- withTempFile tempDir ".c" $ \cName cHnd ->- withTempFile tempDir "" $ \oNname oHnd -> do- hPutStrLn cHnd program- hClose cHnd- hClose oHnd- _ <- rawSystemProgramStdoutConf verbosity- gccProgram (withPrograms lbi) (cName:"-o":oNname:args)- return True- `catchIO` (\_ -> return False)- `catchExit` (\_ -> return False)-- explainErrors Nothing [] = return () -- should be impossible!- explainErrors _ _- | isNothing . lookupProgram gccProgram . withPrograms $ lbi-- = die $ unlines $- [ "No working gcc",- "This package depends on foreign library but we cannot "- ++ "find a working C compiler. If you have it in a "- ++ "non-standard location you can use the --with-gcc "- ++ "flag to specify it." ]-- explainErrors hdr libs = die $ unlines $- [ if plural- then "Missing dependencies on foreign libraries:"- else "Missing dependency on a foreign library:"- | missing ]- ++ case hdr of- Just (Left h) -> ["* Missing (or bad) header file: " ++ h ]- _ -> []- ++ case libs of- [] -> []- [lib] -> ["* Missing C library: " ++ lib]- _ -> ["* Missing C libraries: " ++ intercalate ", " libs]- ++ [if plural then messagePlural else messageSingular | missing]- ++ case hdr of- Just (Left _) -> [ headerCppMessage ]- Just (Right h) -> [ (if missing then "* " else "")- ++ "Bad header file: " ++ h- , headerCcMessage ]- _ -> []-- where- plural = length libs >= 2- -- Is there something missing? (as opposed to broken)- missing = not (null libs)- || case hdr of Just (Left _) -> True; _ -> False-- messageSingular =- "This problem can usually be solved by installing the system "- ++ "package that provides this library (you may need the "- ++ "\"-dev\" version). If the library is already installed "- ++ "but in a non-standard location then you can use the flags "- ++ "--extra-include-dirs= and --extra-lib-dirs= to specify "- ++ "where it is."- messagePlural =- "This problem can usually be solved by installing the system "- ++ "packages that provide these libraries (you may need the "- ++ "\"-dev\" versions). If the libraries are already installed "- ++ "but in a non-standard location then you can use the flags "- ++ "--extra-include-dirs= and --extra-lib-dirs= to specify "- ++ "where they are."- headerCppMessage =- "If the header file does exist, it may contain errors that "- ++ "are caught by the C compiler at the preprocessing stage. "- ++ "In this case you can re-run configure with the verbosity "- ++ "flag -v3 to see the error messages."- headerCcMessage =- "The header file contains a compile error. "- ++ "You can re-run configure with the verbosity flag "- ++ "-v3 to see the error messages from the C compiler."---- | Output package check warnings and errors. Exit if any errors.-checkPackageProblems :: Verbosity- -> GenericPackageDescription- -> PackageDescription- -> IO ()-checkPackageProblems verbosity gpkg pkg = do- ioChecks <- checkPackageFiles pkg "."- let pureChecks = checkPackage gpkg (Just pkg)- errors = [ e | PackageBuildImpossible e <- pureChecks ++ ioChecks ]- warnings = [ w | PackageBuildWarning w <- pureChecks ++ ioChecks ]- if null errors- then mapM_ (warn verbosity) warnings- else die (intercalate "\n\n" errors)---- | Preform checks if a relocatable build is allowed-checkRelocatable :: Verbosity- -> PackageDescription- -> LocalBuildInfo- -> IO ()-checkRelocatable verbosity pkg lbi- = sequence_ [ checkOS- , checkCompiler- , packagePrefixRelative- , depsPrefixRelative- ]- where- -- Check if the OS support relocatable builds.- --- -- If you add new OS' to this list, and your OS supports dynamic libraries- -- and RPATH, make sure you add your OS to RPATH-support list of:- -- Distribution.Simple.GHC.getRPaths- checkOS- = unless (os `elem` [ OSX, Linux ])- $ die $ "Operating system: " ++ display os ++- ", does not support relocatable builds"- where- (Platform _ os) = hostPlatform lbi-- -- Check if the Compiler support relocatable builds- checkCompiler- = unless (compilerFlavor comp `elem` [ GHC ])- $ die $ "Compiler: " ++ show comp ++- ", does not support relocatable builds"- where- comp = compiler lbi-- -- Check if all the install dirs are relative to same prefix- packagePrefixRelative- = unless (relativeInstallDirs installDirs)- $ die $ "Installation directories are not prefix_relative:\n" ++- show installDirs- where- installDirs = absoluteInstallDirs pkg lbi NoCopyDest- p = prefix installDirs- relativeInstallDirs (InstallDirs {..}) =- all isJust- (fmap (stripPrefix p)- [ bindir, libdir, dynlibdir, libexecdir, includedir, datadir- , docdir, mandir, htmldir, haddockdir, sysconfdir] )-- -- Check if the library dirs of the dependencies that are in the package- -- database to which the package is installed are relative to the- -- prefix of the package- depsPrefixRelative = do- pkgr <- GHC.pkgRoot verbosity lbi (last (withPackageDB lbi))- mapM_ (doCheck pkgr) ipkgs- where- doCheck pkgr ipkg- | maybe False (== pkgr) (Installed.pkgRoot ipkg)- = mapM_ (\l -> when (isNothing $ stripPrefix p l) (die (msg l)))- (Installed.libraryDirs ipkg)- | otherwise- = return ()- installDirs = absoluteInstallDirs pkg lbi NoCopyDest- p = prefix installDirs- ipkgs = PackageIndex.allPackages (installedPkgs lbi)- msg l = "Library directory of a dependency: " ++ show l ++- "\nis not relative to the installation prefix:\n" ++- show p+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}++-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Simple.Configure+-- Copyright : Isaac Jones 2003-2005+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+-- This deals with the /configure/ phase. It provides the 'configure' action+-- which is given the package description and configure flags. It then tries+-- to: configure the compiler; resolves any conditionals in the package+-- description; resolve the package dependencies; check if all the extensions+-- used by this package are supported by the compiler; check that all the build+-- tools are available (including version checks if appropriate); checks for+-- any required @pkg-config@ packages (updating the 'BuildInfo' with the+-- results)+--+-- Then based on all this it saves the info in the 'LocalBuildInfo' and writes+-- it out to the @dist\/setup-config@ file. It also displays various details to+-- the user, the amount of information displayed depending on the verbosity+-- level.++module Distribution.Simple.Configure (configure,+ writePersistBuildConfig,+ getConfigStateFile,+ getPersistBuildConfig,+ checkPersistBuildConfigOutdated,+ tryGetPersistBuildConfig,+ maybeGetPersistBuildConfig,+ findDistPref, findDistPrefOrDefault,+ getInternalPackages,+ computeComponentId,+ computeCompatPackageKey,+ computeCompatPackageName,+ localBuildInfoFile,+ getInstalledPackages,+ getInstalledPackagesMonitorFiles,+ getPackageDBContents,+ configCompiler, configCompilerAux,+ configCompilerEx, configCompilerAuxEx,+ computeEffectiveProfiling,+ ccLdOptionsBuildInfo,+ checkForeignDeps,+ interpretPackageDbFlags,+ ConfigStateFileError(..),+ tryGetConfigStateFile,+ platformDefines,+ relaxPackageDeps,+ )+ where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Compiler+import Distribution.Types.IncludeRenaming+import Distribution.Utils.NubList+import Distribution.Simple.Compiler hiding (Flag)+import Distribution.Simple.PreProcess+import Distribution.Package+import qualified Distribution.InstalledPackageInfo as Installed+import Distribution.InstalledPackageInfo (InstalledPackageInfo)+import qualified Distribution.Simple.PackageIndex as PackageIndex+import Distribution.Simple.PackageIndex (InstalledPackageIndex)+import Distribution.PackageDescription as PD hiding (Flag)+import Distribution.Types.PackageDescription as PD+import Distribution.PackageDescription.PrettyPrint+import Distribution.PackageDescription.Configuration+import Distribution.PackageDescription.Check hiding (doesFileExist)+import Distribution.Simple.BuildToolDepends+import Distribution.Simple.Program+import Distribution.Simple.Setup as Setup+import Distribution.Simple.BuildTarget+import Distribution.Simple.LocalBuildInfo+import Distribution.Types.ExeDependency+import Distribution.Types.LegacyExeDependency+import Distribution.Types.PkgconfigDependency+import Distribution.Types.MungedPackageName+import Distribution.Types.LocalBuildInfo+import Distribution.Types.ComponentRequestedSpec+import Distribution.Types.ForeignLib+import Distribution.Types.ForeignLibType+import Distribution.Types.ForeignLibOption+import Distribution.Types.Mixin+import Distribution.Types.UnqualComponentName+import Distribution.Simple.Utils+import Distribution.System+import Distribution.Version+import Distribution.Verbosity+import qualified Distribution.Compat.Graph as Graph+import Distribution.Compat.Stack+import Distribution.Backpack.Configure+import Distribution.Backpack.DescribeUnitId+import Distribution.Backpack.PreExistingComponent+import Distribution.Backpack.ConfiguredComponent (newPackageDepsBehaviour)+import Distribution.Backpack.Id+import Distribution.Utils.LogProgress++import qualified Distribution.Simple.GHC as GHC+import qualified Distribution.Simple.GHCJS as GHCJS+import qualified Distribution.Simple.JHC as JHC+import qualified Distribution.Simple.LHC as LHC+import qualified Distribution.Simple.UHC as UHC+import qualified Distribution.Simple.HaskellSuite as HaskellSuite++import Control.Exception+ ( ErrorCall, Exception, evaluate, throw, throwIO, try )+import Distribution.Compat.Binary ( decodeOrFailIO, encode )+import Data.ByteString.Lazy (ByteString)+import qualified Data.ByteString as BS+import qualified Data.ByteString.Lazy.Char8 as BLC8+import Data.List+ ( (\\), partition, inits, stripPrefix )+import Data.Either+ ( partitionEithers )+import qualified Data.Map as Map+import System.Directory+ ( doesFileExist, createDirectoryIfMissing, getTemporaryDirectory )+import System.FilePath+ ( (</>), isAbsolute )+import qualified System.Info+ ( compilerName, compilerVersion )+import System.IO+ ( hPutStrLn, hClose )+import Distribution.Text+ ( Text(disp), defaultStyle, display, simpleParse )+import Text.PrettyPrint+ ( Doc, (<+>), ($+$), char, comma, hsep, nest+ , punctuate, quotes, render, renderStyle, sep, text )+import Distribution.Compat.Environment ( lookupEnv )+import Distribution.Compat.Exception ( catchExit, catchIO )++type UseExternalInternalDeps = Bool++-- | The errors that can be thrown when reading the @setup-config@ file.+data ConfigStateFileError+ = ConfigStateFileNoHeader -- ^ No header found.+ | ConfigStateFileBadHeader -- ^ Incorrect header.+ | ConfigStateFileNoParse -- ^ Cannot parse file contents.+ | ConfigStateFileMissing -- ^ No file!+ | ConfigStateFileBadVersion PackageIdentifier PackageIdentifier+ (Either ConfigStateFileError LocalBuildInfo) -- ^ Mismatched version.+ deriving (Typeable)++-- | Format a 'ConfigStateFileError' as a user-facing error message.+dispConfigStateFileError :: ConfigStateFileError -> Doc+dispConfigStateFileError ConfigStateFileNoHeader =+ text "Saved package config file header is missing."+ <+> text "Re-run the 'configure' command."+dispConfigStateFileError ConfigStateFileBadHeader =+ text "Saved package config file header is corrupt."+ <+> text "Re-run the 'configure' command."+dispConfigStateFileError ConfigStateFileNoParse =+ text "Saved package config file is corrupt."+ <+> text "Re-run the 'configure' command."+dispConfigStateFileError ConfigStateFileMissing =+ text "Run the 'configure' command first."+dispConfigStateFileError (ConfigStateFileBadVersion oldCabal oldCompiler _) =+ text "Saved package config file is outdated:"+ $+$ badCabal $+$ badCompiler+ $+$ text "Re-run the 'configure' command."+ where+ badCabal =+ text "• the Cabal version changed from"+ <+> disp oldCabal <+> "to" <+> disp currentCabalId+ badCompiler+ | oldCompiler == currentCompilerId = mempty+ | otherwise =+ text "• the compiler changed from"+ <+> disp oldCompiler <+> "to" <+> disp currentCompilerId++instance Show ConfigStateFileError where+ show = renderStyle defaultStyle . dispConfigStateFileError++instance Exception ConfigStateFileError++-- | Read the 'localBuildInfoFile'. Throw an exception if the file is+-- missing, if the file cannot be read, or if the file was created by an older+-- version of Cabal.+getConfigStateFile :: FilePath -- ^ The file path of the @setup-config@ file.+ -> IO LocalBuildInfo+getConfigStateFile filename = do+ exists <- doesFileExist filename+ unless exists $ throwIO ConfigStateFileMissing+ -- Read the config file into a strict ByteString to avoid problems with+ -- lazy I/O, then convert to lazy because the binary package needs that.+ contents <- BS.readFile filename+ let (header, body) = BLC8.span (/='\n') (BLC8.fromChunks [contents])++ headerParseResult <- try $ evaluate $ parseHeader header+ let (cabalId, compId) =+ case headerParseResult of+ Left (_ :: ErrorCall) -> throw ConfigStateFileBadHeader+ Right x -> x++ let getStoredValue = do+ result <- decodeOrFailIO (BLC8.tail body)+ case result of+ Left _ -> throw ConfigStateFileNoParse+ Right x -> return x+ deferErrorIfBadVersion act+ | cabalId /= currentCabalId = do+ eResult <- try act+ throw $ ConfigStateFileBadVersion cabalId compId eResult+ | otherwise = act+ deferErrorIfBadVersion getStoredValue+ where+ _ = callStack -- TODO: attach call stack to exception++-- | Read the 'localBuildInfoFile', returning either an error or the local build+-- info.+tryGetConfigStateFile :: FilePath -- ^ The file path of the @setup-config@ file.+ -> IO (Either ConfigStateFileError LocalBuildInfo)+tryGetConfigStateFile = try . getConfigStateFile++-- | Try to read the 'localBuildInfoFile'.+tryGetPersistBuildConfig :: FilePath -- ^ The @dist@ directory path.+ -> IO (Either ConfigStateFileError LocalBuildInfo)+tryGetPersistBuildConfig = try . getPersistBuildConfig++-- | Read the 'localBuildInfoFile'. Throw an exception if the file is+-- missing, if the file cannot be read, or if the file was created by an older+-- version of Cabal.+getPersistBuildConfig :: FilePath -- ^ The @dist@ directory path.+ -> IO LocalBuildInfo+getPersistBuildConfig = getConfigStateFile . localBuildInfoFile++-- | Try to read the 'localBuildInfoFile'.+maybeGetPersistBuildConfig :: FilePath -- ^ The @dist@ directory path.+ -> IO (Maybe LocalBuildInfo)+maybeGetPersistBuildConfig =+ liftM (either (const Nothing) Just) . tryGetPersistBuildConfig++-- | After running configure, output the 'LocalBuildInfo' to the+-- 'localBuildInfoFile'.+writePersistBuildConfig :: FilePath -- ^ The @dist@ directory path.+ -> LocalBuildInfo -- ^ The 'LocalBuildInfo' to write.+ -> NoCallStackIO ()+writePersistBuildConfig distPref lbi = do+ createDirectoryIfMissing False distPref+ writeFileAtomic (localBuildInfoFile distPref) $+ BLC8.unlines [showHeader pkgId, encode lbi]+ where+ pkgId = localPackage lbi++-- | Identifier of the current Cabal package.+currentCabalId :: PackageIdentifier+currentCabalId = PackageIdentifier (mkPackageName "Cabal") cabalVersion++-- | Identifier of the current compiler package.+currentCompilerId :: PackageIdentifier+currentCompilerId = PackageIdentifier (mkPackageName System.Info.compilerName)+ (mkVersion' System.Info.compilerVersion)++-- | Parse the @setup-config@ file header, returning the package identifiers+-- for Cabal and the compiler.+parseHeader :: ByteString -- ^ The file contents.+ -> (PackageIdentifier, PackageIdentifier)+parseHeader header = case BLC8.words header of+ ["Saved", "package", "config", "for", pkgId, "written", "by", cabalId,+ "using", compId] ->+ fromMaybe (throw ConfigStateFileBadHeader) $ do+ _ <- simpleParse (BLC8.unpack pkgId) :: Maybe PackageIdentifier+ cabalId' <- simpleParse (BLC8.unpack cabalId)+ compId' <- simpleParse (BLC8.unpack compId)+ return (cabalId', compId')+ _ -> throw ConfigStateFileNoHeader++-- | Generate the @setup-config@ file header.+showHeader :: PackageIdentifier -- ^ The processed package.+ -> ByteString+showHeader pkgId = BLC8.unwords+ [ "Saved", "package", "config", "for"+ , BLC8.pack $ display pkgId+ , "written", "by"+ , BLC8.pack $ display currentCabalId+ , "using"+ , BLC8.pack $ display currentCompilerId+ ]++-- | Check that localBuildInfoFile is up-to-date with respect to the+-- .cabal file.+checkPersistBuildConfigOutdated :: FilePath -> FilePath -> NoCallStackIO Bool+checkPersistBuildConfigOutdated distPref pkg_descr_file =+ pkg_descr_file `moreRecentFile` localBuildInfoFile distPref++-- | Get the path of @dist\/setup-config@.+localBuildInfoFile :: FilePath -- ^ The @dist@ directory path.+ -> FilePath+localBuildInfoFile distPref = distPref </> "setup-config"++-- -----------------------------------------------------------------------------+-- * Configuration+-- -----------------------------------------------------------------------------++-- | Return the \"dist/\" prefix, or the default prefix. The prefix is taken+-- from (in order of highest to lowest preference) the override prefix, the+-- \"CABAL_BUILDDIR\" environment variable, or the default prefix.+findDistPref :: FilePath -- ^ default \"dist\" prefix+ -> Setup.Flag FilePath -- ^ override \"dist\" prefix+ -> NoCallStackIO FilePath+findDistPref defDistPref overrideDistPref = do+ envDistPref <- liftM parseEnvDistPref (lookupEnv "CABAL_BUILDDIR")+ return $ fromFlagOrDefault defDistPref (mappend envDistPref overrideDistPref)+ where+ parseEnvDistPref env =+ case env of+ Just distPref | not (null distPref) -> toFlag distPref+ _ -> NoFlag++-- | Return the \"dist/\" prefix, or the default prefix. The prefix is taken+-- from (in order of highest to lowest preference) the override prefix, the+-- \"CABAL_BUILDDIR\" environment variable, or 'defaultDistPref' is used. Call+-- this function to resolve a @*DistPref@ flag whenever it is not known to be+-- set. (The @*DistPref@ flags are always set to a definite value before+-- invoking 'UserHooks'.)+findDistPrefOrDefault :: Setup.Flag FilePath -- ^ override \"dist\" prefix+ -> NoCallStackIO FilePath+findDistPrefOrDefault = findDistPref defaultDistPref++-- |Perform the \"@.\/setup configure@\" action.+-- Returns the @.setup-config@ file.+configure :: (GenericPackageDescription, HookedBuildInfo)+ -> ConfigFlags -> IO LocalBuildInfo+configure (pkg_descr0', pbi) cfg = do+ let pkg_descr0 =+ -- Ignore '--allow-{older,newer}' when we're given+ -- '--exact-configuration'.+ if fromFlagOrDefault False (configExactConfiguration cfg)+ then pkg_descr0'+ else relaxPackageDeps removeLowerBound+ (maybe RelaxDepsNone unAllowOlder $ configAllowOlder cfg) $+ relaxPackageDeps removeUpperBound+ (maybe RelaxDepsNone unAllowNewer $ configAllowNewer cfg)+ pkg_descr0'++ -- Determine the component we are configuring, if a user specified+ -- one on the command line. We use a fake, flattened version of+ -- the package since at this point, we're not really sure what+ -- components we *can* configure. @Nothing@ means that we should+ -- configure everything (the old behavior).+ (mb_cname :: Maybe ComponentName) <- do+ let flat_pkg_descr = flattenPackageDescription pkg_descr0+ targets <- readBuildTargets verbosity flat_pkg_descr (configArgs cfg)+ -- TODO: bleat if you use the module/file syntax+ let targets' = [ cname | BuildTargetComponent cname <- targets ]+ case targets' of+ _ | null (configArgs cfg) -> return Nothing+ [cname] -> return (Just cname)+ [] -> die' verbosity "No valid component targets found"+ _ -> die' verbosity "Can only configure either single component or all of them"++ let use_external_internal_deps = isJust mb_cname+ case mb_cname of+ Nothing -> setupMessage verbosity "Configuring" (packageId pkg_descr0)+ Just cname -> setupMessage' verbosity "Configuring" (packageId pkg_descr0)+ cname (Just (configInstantiateWith cfg))++ -- configCID is only valid for per-component configure+ when (isJust (flagToMaybe (configCID cfg)) && isNothing mb_cname) $+ die' verbosity "--cid is only supported for per-component configure"++ checkDeprecatedFlags verbosity cfg+ checkExactConfiguration verbosity pkg_descr0 cfg++ -- Where to build the package+ let buildDir :: FilePath -- e.g. dist/build+ -- fromFlag OK due to Distribution.Simple calling+ -- findDistPrefOrDefault to fill it in+ buildDir = fromFlag (configDistPref cfg) </> "build"+ createDirectoryIfMissingVerbose (lessVerbose verbosity) True buildDir++ -- What package database(s) to use+ let packageDbs :: PackageDBStack+ packageDbs+ = interpretPackageDbFlags+ (fromFlag (configUserInstall cfg))+ (configPackageDBs cfg)++ -- comp: the compiler we're building with+ -- compPlatform: the platform we're building for+ -- programDb: location and args of all programs we're+ -- building with+ (comp :: Compiler,+ compPlatform :: Platform,+ programDb :: ProgramDb)+ <- configCompilerEx+ (flagToMaybe (configHcFlavor cfg))+ (flagToMaybe (configHcPath cfg))+ (flagToMaybe (configHcPkg cfg))+ (mkProgramDb cfg (configPrograms cfg))+ (lessVerbose verbosity)++ -- The InstalledPackageIndex of all installed packages+ installedPackageSet :: InstalledPackageIndex+ <- getInstalledPackages (lessVerbose verbosity) comp+ packageDbs programDb++ -- The set of package names which are "shadowed" by internal+ -- packages, and which component they map to+ let internalPackageSet :: Map PackageName (Maybe UnqualComponentName)+ internalPackageSet = getInternalPackages pkg_descr0++ -- Make a data structure describing what components are enabled.+ let enabled :: ComponentRequestedSpec+ enabled = case mb_cname of+ Just cname -> OneComponentRequestedSpec cname+ Nothing -> ComponentRequestedSpec+ -- The flag name (@--enable-tests@) is a+ -- little bit of a misnomer, because+ -- just passing this flag won't+ -- "enable", in our internal+ -- nomenclature; it's just a request; a+ -- @buildable: False@ might make it+ -- not possible to enable.+ { testsRequested = fromFlag (configTests cfg)+ , benchmarksRequested =+ fromFlag (configBenchmarks cfg) }+ -- Some sanity checks related to enabling components.+ when (isJust mb_cname+ && (fromFlag (configTests cfg) || fromFlag (configBenchmarks cfg))) $+ die' verbosity $ "--enable-tests/--enable-benchmarks are incompatible with" +++ " explicitly specifying a component to configure."++ -- allConstraints: The set of all 'Dependency's we have. Used ONLY+ -- to 'configureFinalizedPackage'.+ -- requiredDepsMap: A map from 'PackageName' to the specifically+ -- required 'InstalledPackageInfo', due to --dependency+ --+ -- NB: These constraints are to be applied to ALL components of+ -- a package. Thus, it's not an error if allConstraints contains+ -- more constraints than is necessary for a component (another+ -- component might need it.)+ --+ -- NB: The fact that we bundle all the constraints together means+ -- that is not possible to configure a test-suite to use one+ -- version of a dependency, and the executable to use another.+ (allConstraints :: [Dependency],+ requiredDepsMap :: Map PackageName InstalledPackageInfo)+ <- either (die' verbosity) return $+ combinedConstraints (configConstraints cfg)+ (configDependencies cfg)+ installedPackageSet++ -- pkg_descr: The resolved package description, that does not contain any+ -- conditionals, because we have have an assignment for+ -- every flag, either picking them ourselves using a+ -- simple naive algorithm, or having them be passed to+ -- us by 'configConfigurationsFlags')+ -- flags: The 'FlagAssignment' that the conditionals were+ -- resolved with.+ --+ -- NB: Why doesn't finalizing a package also tell us what the+ -- dependencies are (e.g. when we run the naive algorithm,+ -- we are checking if dependencies are satisfiable)? The+ -- primary reason is that we may NOT have done any solving:+ -- if the flags are all chosen for us, this step is a simple+ -- matter of flattening according to that assignment. It's+ -- cleaner to then configure the dependencies afterwards.+ (pkg_descr :: PackageDescription,+ flags :: FlagAssignment)+ <- configureFinalizedPackage verbosity cfg enabled+ allConstraints+ (dependencySatisfiable+ use_external_internal_deps+ (fromFlagOrDefault False (configExactConfiguration cfg))+ (packageName pkg_descr0)+ installedPackageSet+ internalPackageSet+ requiredDepsMap)+ comp+ compPlatform+ pkg_descr0++ debug verbosity $ "Finalized package description:\n"+ ++ showPackageDescription pkg_descr+ -- NB: showPackageDescription does not display the AWFUL HACK GLOBAL+ -- buildDepends, so we have to display it separately. See #2066+ -- Some day, we should eliminate this, so that+ -- configureFinalizedPackage returns the set of overall dependencies+ -- separately. Then 'configureDependencies' and+ -- 'Distribution.PackageDescription.Check' need to be adjusted+ -- accordingly.+ debug verbosity $ "Finalized build-depends: "+ ++ intercalate ", " (map display (buildDepends pkg_descr))++ checkCompilerProblems verbosity comp pkg_descr enabled+ checkPackageProblems verbosity pkg_descr0+ (updatePackageDescription pbi pkg_descr)++ -- The list of 'InstalledPackageInfo' recording the selected+ -- dependencies on external packages.+ --+ -- Invariant: For any package name, there is at most one package+ -- in externalPackageDeps which has that name.+ --+ -- NB: The dependency selection is global over ALL components+ -- in the package (similar to how allConstraints and+ -- requiredDepsMap are global over all components). In particular,+ -- if *any* component (post-flag resolution) has an unsatisfiable+ -- dependency, we will fail. This can sometimes be undesirable+ -- for users, see #1786 (benchmark conflicts with executable),+ --+ -- In the presence of Backpack, these package dependencies are+ -- NOT complete: they only ever include the INDEFINITE+ -- dependencies. After we apply an instantiation, we'll get+ -- definite references which constitute extra dependencies.+ -- (Why not have cabal-install pass these in explicitly?+ -- For one it's deterministic; for two, we need to associate+ -- them with renamings which would require a far more complicated+ -- input scheme than what we have today.)+ externalPkgDeps :: [PreExistingComponent]+ <- configureDependencies+ verbosity+ use_external_internal_deps+ internalPackageSet+ installedPackageSet+ requiredDepsMap+ pkg_descr++ -- Compute installation directory templates, based on user+ -- configuration.+ --+ -- TODO: Move this into a helper function.+ defaultDirs :: InstallDirTemplates+ <- defaultInstallDirs' use_external_internal_deps+ (compilerFlavor comp)+ (fromFlag (configUserInstall cfg))+ (hasLibs pkg_descr)+ let installDirs :: InstallDirTemplates+ installDirs = combineInstallDirs fromFlagOrDefault+ defaultDirs (configInstallDirs cfg)++ -- Check languages and extensions+ -- TODO: Move this into a helper function.+ let langlist = nub $ catMaybes $ map defaultLanguage+ (enabledBuildInfos pkg_descr enabled)+ let langs = unsupportedLanguages comp langlist+ when (not (null langs)) $+ die' verbosity $ "The package " ++ display (packageId pkg_descr0)+ ++ " requires the following languages which are not "+ ++ "supported by " ++ display (compilerId comp) ++ ": "+ ++ intercalate ", " (map display langs)+ let extlist = nub $ concatMap allExtensions (enabledBuildInfos pkg_descr enabled)+ let exts = unsupportedExtensions comp extlist+ when (not (null exts)) $+ die' verbosity $ "The package " ++ display (packageId pkg_descr0)+ ++ " requires the following language extensions which are not "+ ++ "supported by " ++ display (compilerId comp) ++ ": "+ ++ intercalate ", " (map display exts)++ -- Check foreign library build requirements+ let flibs = [flib | CFLib flib <- enabledComponents pkg_descr enabled]+ let unsupportedFLibs = unsupportedForeignLibs comp compPlatform flibs+ when (not (null unsupportedFLibs)) $+ die' verbosity $ "Cannot build some foreign libraries: "+ ++ intercalate "," unsupportedFLibs++ -- Configure certain external build tools, see below for which ones.+ let requiredBuildTools = do+ bi <- enabledBuildInfos pkg_descr enabled+ -- First, we collect any tool dep that we know is external. This is,+ -- in practice:+ --+ -- 1. `build-tools` entries on the whitelist+ --+ -- 2. `build-tool-depends` that aren't from the current package.+ let externBuildToolDeps =+ [ LegacyExeDependency (unUnqualComponentName eName) versionRange+ | buildTool@(ExeDependency _ eName versionRange)+ <- getAllToolDependencies pkg_descr bi+ , not $ isInternal pkg_descr buildTool ]+ -- Second, we collect any build-tools entry we don't know how to+ -- desugar. We'll never have any idea how to build them, so we just+ -- hope they are already on the PATH.+ let unknownBuildTools =+ [ buildTool+ | buildTool <- buildTools bi+ , Nothing == desugarBuildTool pkg_descr buildTool ]+ externBuildToolDeps ++ unknownBuildTools++ programDb' <-+ configureAllKnownPrograms (lessVerbose verbosity) programDb+ >>= configureRequiredPrograms verbosity requiredBuildTools++ (pkg_descr', programDb'') <-+ configurePkgconfigPackages verbosity pkg_descr programDb' enabled++ -- Compute internal component graph+ --+ -- The general idea is that we take a look at all the source level+ -- components (which may build-depends on each other) and form a graph.+ -- From there, we build a ComponentLocalBuildInfo for each of the+ -- components, which lets us actually build each component.+ -- internalPackageSet+ -- use_external_internal_deps+ (buildComponents :: [ComponentLocalBuildInfo],+ packageDependsIndex :: InstalledPackageIndex) <-+ runLogProgress verbosity $ configureComponentLocalBuildInfos+ verbosity+ use_external_internal_deps+ enabled+ (fromFlagOrDefault False (configDeterministic cfg))+ (configIPID cfg)+ (configCID cfg)+ pkg_descr+ externalPkgDeps+ (configConfigurationsFlags cfg)+ (configInstantiateWith cfg)+ installedPackageSet+ comp++ -- Decide if we're going to compile with split objects.+ split_objs :: Bool <-+ if not (fromFlag $ configSplitObjs cfg)+ then return False+ else case compilerFlavor comp of+ GHC | compilerVersion comp >= mkVersion [6,5]+ -> return True+ GHCJS+ -> return True+ _ -> do warn verbosity+ ("this compiler does not support " +++ "--enable-split-objs; ignoring")+ return False++ let ghciLibByDefault =+ case compilerId comp of+ CompilerId GHC _ ->+ -- If ghc is non-dynamic, then ghci needs object files,+ -- so we build one by default.+ --+ -- Technically, archive files should be sufficient for ghci,+ -- but because of GHC bug #8942, it has never been safe to+ -- rely on them. By the time that bug was fixed, ghci had+ -- been changed to read shared libraries instead of archive+ -- files (see next code block).+ not (GHC.isDynamic comp)+ CompilerId GHCJS _ ->+ not (GHCJS.isDynamic comp)+ _ -> False++ let sharedLibsByDefault+ | fromFlag (configDynExe cfg) =+ -- build a shared library if dynamically-linked+ -- executables are requested+ True+ | otherwise = case compilerId comp of+ CompilerId GHC _ ->+ -- if ghc is dynamic, then ghci needs a shared+ -- library, so we build one by default.+ GHC.isDynamic comp+ CompilerId GHCJS _ ->+ GHCJS.isDynamic comp+ _ -> False+ withSharedLib_ =+ -- build shared libraries if required by GHC or by the+ -- executable linking mode, but allow the user to force+ -- building only static library archives with+ -- --disable-shared.+ fromFlagOrDefault sharedLibsByDefault $ configSharedLib cfg+ withDynExe_ = fromFlag $ configDynExe cfg+ when (withDynExe_ && not withSharedLib_) $ warn verbosity $+ "Executables will use dynamic linking, but a shared library "+ ++ "is not being built. Linking will fail if any executables "+ ++ "depend on the library."++ setProfLBI <- configureProfiling verbosity cfg comp++ setCoverageLBI <- configureCoverage verbosity cfg comp++ reloc <-+ if not (fromFlag $ configRelocatable cfg)+ then return False+ else return True++ let buildComponentsMap =+ foldl' (\m clbi -> Map.insertWith (++)+ (componentLocalName clbi) [clbi] m)+ Map.empty buildComponents++ let lbi = (setCoverageLBI . setProfLBI)+ LocalBuildInfo {+ configFlags = cfg,+ flagAssignment = flags,+ componentEnabledSpec = enabled,+ extraConfigArgs = [], -- Currently configure does not+ -- take extra args, but if it+ -- did they would go here.+ installDirTemplates = installDirs,+ compiler = comp,+ hostPlatform = compPlatform,+ buildDir = buildDir,+ componentGraph = Graph.fromDistinctList buildComponents,+ componentNameMap = buildComponentsMap,+ installedPkgs = packageDependsIndex,+ pkgDescrFile = Nothing,+ localPkgDescr = pkg_descr',+ withPrograms = programDb'',+ withVanillaLib = fromFlag $ configVanillaLib cfg,+ withSharedLib = withSharedLib_,+ withDynExe = withDynExe_,+ withProfLib = False,+ withProfLibDetail = ProfDetailNone,+ withProfExe = False,+ withProfExeDetail = ProfDetailNone,+ withOptimization = fromFlag $ configOptimization cfg,+ withDebugInfo = fromFlag $ configDebugInfo cfg,+ withGHCiLib = fromFlagOrDefault ghciLibByDefault $+ configGHCiLib cfg,+ splitObjs = split_objs,+ stripExes = fromFlag $ configStripExes cfg,+ stripLibs = fromFlag $ configStripLibs cfg,+ exeCoverage = False,+ libCoverage = False,+ withPackageDB = packageDbs,+ progPrefix = fromFlag $ configProgPrefix cfg,+ progSuffix = fromFlag $ configProgSuffix cfg,+ relocatable = reloc+ }++ when reloc (checkRelocatable verbosity pkg_descr lbi)++ -- TODO: This is not entirely correct, because the dirs may vary+ -- across libraries/executables+ let dirs = absoluteInstallDirs pkg_descr lbi NoCopyDest+ relative = prefixRelativeInstallDirs (packageId pkg_descr) lbi++ unless (isAbsolute (prefix dirs)) $ die' verbosity $+ "expected an absolute directory name for --prefix: " ++ prefix dirs++ info verbosity $ "Using " ++ display currentCabalId+ ++ " compiled by " ++ display currentCompilerId+ info verbosity $ "Using compiler: " ++ showCompilerId comp+ info verbosity $ "Using install prefix: " ++ prefix dirs++ let dirinfo name dir isPrefixRelative =+ info verbosity $ name ++ " installed in: " ++ dir ++ relNote+ where relNote = case buildOS of+ Windows | not (hasLibs pkg_descr)+ && isNothing isPrefixRelative+ -> " (fixed location)"+ _ -> ""++ dirinfo "Executables" (bindir dirs) (bindir relative)+ dirinfo "Libraries" (libdir dirs) (libdir relative)+ dirinfo "Dynamic Libraries" (dynlibdir dirs) (dynlibdir relative)+ dirinfo "Private executables" (libexecdir dirs) (libexecdir relative)+ dirinfo "Data files" (datadir dirs) (datadir relative)+ dirinfo "Documentation" (docdir dirs) (docdir relative)+ dirinfo "Configuration files" (sysconfdir dirs) (sysconfdir relative)++ sequence_ [ reportProgram verbosity prog configuredProg+ | (prog, configuredProg) <- knownPrograms programDb'' ]++ return lbi++ where+ verbosity = fromFlag (configVerbosity cfg)++mkProgramDb :: ConfigFlags -> ProgramDb -> ProgramDb+mkProgramDb cfg initialProgramDb = programDb+ where+ programDb = userSpecifyArgss (configProgramArgs cfg)+ . userSpecifyPaths (configProgramPaths cfg)+ . setProgramSearchPath searchpath+ $ initialProgramDb+ searchpath = getProgramSearchPath initialProgramDb+ ++ map ProgramSearchPathDir+ (fromNubList $ configProgramPathExtra cfg)++-- -----------------------------------------------------------------------------+-- Helper functions for configure++-- | Check if the user used any deprecated flags.+checkDeprecatedFlags :: Verbosity -> ConfigFlags -> IO ()+checkDeprecatedFlags verbosity cfg = do+ unless (configProfExe cfg == NoFlag) $ do+ let enable | fromFlag (configProfExe cfg) = "enable"+ | otherwise = "disable"+ warn verbosity+ ("The flag --" ++ enable ++ "-executable-profiling is deprecated. "+ ++ "Please use --" ++ enable ++ "-profiling instead.")++ unless (configLibCoverage cfg == NoFlag) $ do+ let enable | fromFlag (configLibCoverage cfg) = "enable"+ | otherwise = "disable"+ warn verbosity+ ("The flag --" ++ enable ++ "-library-coverage is deprecated. "+ ++ "Please use --" ++ enable ++ "-coverage instead.")++-- | Sanity check: if '--exact-configuration' was given, ensure that the+-- complete flag assignment was specified on the command line.+checkExactConfiguration :: Verbosity -> GenericPackageDescription -> ConfigFlags -> IO ()+checkExactConfiguration verbosity pkg_descr0 cfg =+ when (fromFlagOrDefault False (configExactConfiguration cfg)) $ do+ let cmdlineFlags = map fst (configConfigurationsFlags cfg)+ allFlags = map flagName . genPackageFlags $ pkg_descr0+ diffFlags = allFlags \\ cmdlineFlags+ when (not . null $ diffFlags) $+ die' verbosity $ "'--exact-configuration' was given, "+ ++ "but the following flags were not specified: "+ ++ intercalate ", " (map show diffFlags)++-- | Create a PackageIndex that makes *any libraries that might be*+-- defined internally to this package look like installed packages, in+-- case an executable should refer to any of them as dependencies.+--+-- It must be *any libraries that might be* defined rather than the+-- actual definitions, because these depend on conditionals in the .cabal+-- file, and we haven't resolved them yet. finalizePD+-- does the resolution of conditionals, and it takes internalPackageSet+-- as part of its input.+getInternalPackages :: GenericPackageDescription+ -> Map PackageName (Maybe UnqualComponentName)+getInternalPackages pkg_descr0 =+ -- TODO: some day, executables will be fair game here too!+ let pkg_descr = flattenPackageDescription pkg_descr0+ f lib = case libName lib of+ Nothing -> (packageName pkg_descr, Nothing)+ Just n' -> (unqualComponentNameToPackageName n', Just n')+ in Map.fromList (map f (allLibraries pkg_descr))++-- | Returns true if a dependency is satisfiable. This function may+-- report a dependency satisfiable even when it is not, but not vice+-- versa. This is to be passed to finalizePD.+dependencySatisfiable+ :: Bool -- ^ use external internal deps?+ -> Bool -- ^ exact configuration?+ -> PackageName+ -> InstalledPackageIndex -- ^ installed set+ -> Map PackageName (Maybe UnqualComponentName) -- ^ internal set+ -> Map PackageName InstalledPackageInfo -- ^ required dependencies+ -> (Dependency -> Bool)+dependencySatisfiable+ use_external_internal_deps+ exact_config pn installedPackageSet internalPackageSet requiredDepsMap+ d@(Dependency depName vr)++ | exact_config+ -- When we're given '--exact-configuration', we assume that all+ -- dependencies and flags are exactly specified on the command+ -- line. Thus we only consult the 'requiredDepsMap'. Note that+ -- we're not doing the version range check, so if there's some+ -- dependency that wasn't specified on the command line,+ -- 'finalizePD' will fail.+ -- TODO: mention '--exact-configuration' in the error message+ -- when this fails?+ = if isInternalDep && not use_external_internal_deps+ -- Except for internal deps, when we're NOT per-component mode;+ -- those are just True.+ then True+ else depName `Map.member` requiredDepsMap++ | isInternalDep+ = if use_external_internal_deps+ -- When we are doing per-component configure, we now need to+ -- test if the internal dependency is in the index. This has+ -- DIFFERENT semantics from normal dependency satisfiability.+ then internalDepSatisfiable+ -- If a 'PackageName' is defined by an internal component, the dep is+ -- satisfiable (we're going to build it ourselves)+ else True++ | otherwise+ = depSatisfiable++ where+ isInternalDep = Map.member depName internalPackageSet++ depSatisfiable =+ not . null $ PackageIndex.lookupDependency installedPackageSet d++ internalDepSatisfiable =+ not . null $ PackageIndex.lookupInternalDependency+ installedPackageSet (Dependency pn vr) cn+ where+ cn | pn == depName+ = Nothing+ | otherwise+ -- Reinterpret the "package name" as an unqualified component+ -- name+ = Just (mkUnqualComponentName (unPackageName depName))++-- | Relax the dependencies of this package if needed.+relaxPackageDeps :: (VersionRange -> VersionRange)+ -> RelaxDeps+ -> GenericPackageDescription -> GenericPackageDescription+relaxPackageDeps _ RelaxDepsNone gpd = gpd+relaxPackageDeps vrtrans RelaxDepsAll gpd = transformAllBuildDepends relaxAll gpd+ where+ relaxAll = \(Dependency pkgName verRange) ->+ Dependency pkgName (vrtrans verRange)+relaxPackageDeps vrtrans (RelaxDepsSome allowNewerDeps') gpd =+ transformAllBuildDepends relaxSome gpd+ where+ thisPkgName = packageName gpd+ allowNewerDeps = mapMaybe f allowNewerDeps'++ f (Setup.RelaxedDep p) = Just p+ f (Setup.RelaxedDepScoped scope p) | scope == thisPkgName = Just p+ | otherwise = Nothing++ relaxSome = \d@(Dependency depName verRange) ->+ if depName `elem` allowNewerDeps+ then Dependency depName (vrtrans verRange)+ else d++-- | Finalize a generic package description. The workhorse is+-- 'finalizePD' but there's a bit of other nattering+-- about necessary.+--+-- TODO: what exactly is the business with @flaggedTests@ and+-- @flaggedBenchmarks@?+configureFinalizedPackage+ :: Verbosity+ -> ConfigFlags+ -> ComponentRequestedSpec+ -> [Dependency]+ -> (Dependency -> Bool) -- ^ tests if a dependency is satisfiable.+ -- Might say it's satisfiable even when not.+ -> Compiler+ -> Platform+ -> GenericPackageDescription+ -> IO (PackageDescription, FlagAssignment)+configureFinalizedPackage verbosity cfg enabled+ allConstraints satisfies comp compPlatform pkg_descr0 = do++ (pkg_descr0', flags) <-+ case finalizePD+ (configConfigurationsFlags cfg)+ enabled+ satisfies+ compPlatform+ (compilerInfo comp)+ allConstraints+ pkg_descr0+ of Right r -> return r+ Left missing ->+ die' verbosity $ "Encountered missing dependencies:\n"+ ++ (render . nest 4 . sep . punctuate comma+ . map (disp . simplifyDependency)+ $ missing)++ -- add extra include/lib dirs as specified in cfg+ -- we do it here so that those get checked too+ let pkg_descr = addExtraIncludeLibDirs pkg_descr0'++ when (not (null flags)) $+ info verbosity $ "Flags chosen: "+ ++ intercalate ", " [ unFlagName fn ++ "=" ++ display value+ | (fn, value) <- flags ]++ return (pkg_descr, flags)+ where+ addExtraIncludeLibDirs pkg_descr =+ let extraBi = mempty { extraLibDirs = configExtraLibDirs cfg+ , extraFrameworkDirs = configExtraFrameworkDirs cfg+ , PD.includeDirs = configExtraIncludeDirs cfg}+ modifyLib l = l{ libBuildInfo = libBuildInfo l+ `mappend` extraBi }+ modifyExecutable e = e{ buildInfo = buildInfo e+ `mappend` extraBi}+ in pkg_descr{ library = modifyLib `fmap` library pkg_descr+ , subLibraries = modifyLib `map` subLibraries pkg_descr+ , executables = modifyExecutable `map`+ executables pkg_descr}++-- | Check for use of Cabal features which require compiler support+checkCompilerProblems :: Verbosity -> Compiler -> PackageDescription -> ComponentRequestedSpec -> IO ()+checkCompilerProblems verbosity comp pkg_descr enabled = do+ unless (renamingPackageFlagsSupported comp ||+ all (all (isDefaultIncludeRenaming . mixinIncludeRenaming) . mixins)+ (enabledBuildInfos pkg_descr enabled)) $+ die' verbosity $ "Your compiler does not support thinning and renaming on "+ ++ "package flags. To use this feature you must use "+ ++ "GHC 7.9 or later."++ when (any (not.null.PD.reexportedModules) (PD.allLibraries pkg_descr)+ && not (reexportedModulesSupported comp)) $+ die' verbosity $ "Your compiler does not support module re-exports. To use "+ ++ "this feature you must use GHC 7.9 or later."++ when (any (not.null.PD.signatures) (PD.allLibraries pkg_descr)+ && not (backpackSupported comp)) $+ die' verbosity $ "Your compiler does not support Backpack. To use "+ ++ "this feature you must use GHC 8.1 or later."++-- | Select dependencies for the package.+configureDependencies+ :: Verbosity+ -> UseExternalInternalDeps+ -> Map PackageName (Maybe UnqualComponentName) -- ^ internal packages+ -> InstalledPackageIndex -- ^ installed packages+ -> Map PackageName InstalledPackageInfo -- ^ required deps+ -> PackageDescription+ -> IO [PreExistingComponent]+configureDependencies verbosity use_external_internal_deps+ internalPackageSet installedPackageSet requiredDepsMap pkg_descr = do+ let failedDeps :: [FailedDependency]+ allPkgDeps :: [ResolvedDependency]+ (failedDeps, allPkgDeps) = partitionEithers+ [ (\s -> (dep, s)) <$> status+ | dep <- buildDepends pkg_descr+ , let status = selectDependency (package pkg_descr)+ internalPackageSet installedPackageSet+ requiredDepsMap use_external_internal_deps dep ]++ internalPkgDeps = [ pkgid+ | (_, InternalDependency pkgid) <- allPkgDeps ]+ -- NB: we have to SAVE the package name, because this is the only+ -- way we can be able to resolve package names in the package+ -- description.+ externalPkgDeps = [ pec+ | (_, ExternalDependency pec) <- allPkgDeps ]++ when (not (null internalPkgDeps)+ && not (newPackageDepsBehaviour pkg_descr)) $+ die' verbosity $ "The field 'build-depends: "+ ++ intercalate ", " (map (display . packageName) internalPkgDeps)+ ++ "' refers to a library which is defined within the same "+ ++ "package. To use this feature the package must specify at "+ ++ "least 'cabal-version: >= 1.8'."++ reportFailedDependencies verbosity failedDeps+ reportSelectedDependencies verbosity allPkgDeps++ return externalPkgDeps++-- | Select and apply coverage settings for the build based on the+-- 'ConfigFlags' and 'Compiler'.+configureCoverage :: Verbosity -> ConfigFlags -> Compiler+ -> IO (LocalBuildInfo -> LocalBuildInfo)+configureCoverage verbosity cfg comp = do+ let tryExeCoverage = fromFlagOrDefault False (configCoverage cfg)+ tryLibCoverage = fromFlagOrDefault tryExeCoverage+ (mappend (configCoverage cfg) (configLibCoverage cfg))+ if coverageSupported comp+ then do+ let apply lbi = lbi { libCoverage = tryLibCoverage+ , exeCoverage = tryExeCoverage+ }+ return apply+ else do+ let apply lbi = lbi { libCoverage = False+ , exeCoverage = False+ }+ when (tryExeCoverage || tryLibCoverage) $ warn verbosity+ ("The compiler " ++ showCompilerId comp ++ " does not support "+ ++ "program coverage. Program coverage has been disabled.")+ return apply++-- | Compute the effective value of the profiling flags+-- @--enable-library-profiling@ and @--enable-executable-profiling@+-- from the specified 'ConfigFlags'. This may be useful for+-- external Cabal tools which need to interact with Setup in+-- a backwards-compatible way: the most predictable mechanism+-- for enabling profiling across many legacy versions is to+-- NOT use @--enable-profiling@ and use those two flags instead.+--+-- Note that @--enable-executable-profiling@ also affects profiling+-- of benchmarks and (non-detailed) test suites.+computeEffectiveProfiling :: ConfigFlags -> (Bool {- lib -}, Bool {- exe -})+computeEffectiveProfiling cfg =+ -- The --profiling flag sets the default for both libs and exes,+ -- but can be overidden by --library-profiling, or the old deprecated+ -- --executable-profiling flag.+ --+ -- The --profiling-detail and --library-profiling-detail flags behave+ -- similarly+ let tryExeProfiling = fromFlagOrDefault False+ (mappend (configProf cfg) (configProfExe cfg))+ tryLibProfiling = fromFlagOrDefault tryExeProfiling+ (mappend (configProf cfg) (configProfLib cfg))+ in (tryLibProfiling, tryExeProfiling)++-- | Select and apply profiling settings for the build based on the+-- 'ConfigFlags' and 'Compiler'.+configureProfiling :: Verbosity -> ConfigFlags -> Compiler+ -> IO (LocalBuildInfo -> LocalBuildInfo)+configureProfiling verbosity cfg comp = do+ let (tryLibProfiling, tryExeProfiling) = computeEffectiveProfiling cfg++ tryExeProfileLevel = fromFlagOrDefault ProfDetailDefault+ (configProfDetail cfg)+ tryLibProfileLevel = fromFlagOrDefault ProfDetailDefault+ (mappend+ (configProfDetail cfg)+ (configProfLibDetail cfg))++ checkProfileLevel (ProfDetailOther other) = do+ warn verbosity+ ("Unknown profiling detail level '" ++ other+ ++ "', using default.\nThe profiling detail levels are: "+ ++ intercalate ", "+ [ name | (name, _, _) <- knownProfDetailLevels ])+ return ProfDetailDefault+ checkProfileLevel other = return other++ (exeProfWithoutLibProf, applyProfiling) <-+ if profilingSupported comp+ then do+ exeLevel <- checkProfileLevel tryExeProfileLevel+ libLevel <- checkProfileLevel tryLibProfileLevel+ let apply lbi = lbi { withProfLib = tryLibProfiling+ , withProfLibDetail = libLevel+ , withProfExe = tryExeProfiling+ , withProfExeDetail = exeLevel+ }+ return (tryExeProfiling && not tryLibProfiling, apply)+ else do+ let apply lbi = lbi { withProfLib = False+ , withProfLibDetail = ProfDetailNone+ , withProfExe = False+ , withProfExeDetail = ProfDetailNone+ }+ when (tryExeProfiling || tryLibProfiling) $ warn verbosity+ ("The compiler " ++ showCompilerId comp ++ " does not support "+ ++ "profiling. Profiling has been disabled.")+ return (False, apply)++ when exeProfWithoutLibProf $ warn verbosity+ ("Executables will be built with profiling, but library "+ ++ "profiling is disabled. Linking will fail if any executables "+ ++ "depend on the library.")++ return applyProfiling++-- -----------------------------------------------------------------------------+-- Configuring package dependencies++reportProgram :: Verbosity -> Program -> Maybe ConfiguredProgram -> IO ()+reportProgram verbosity prog Nothing+ = info verbosity $ "No " ++ programName prog ++ " found"+reportProgram verbosity prog (Just configuredProg)+ = info verbosity $ "Using " ++ programName prog ++ version ++ location+ where location = case programLocation configuredProg of+ FoundOnSystem p -> " found on system at: " ++ p+ UserSpecified p -> " given by user at: " ++ p+ version = case programVersion configuredProg of+ Nothing -> ""+ Just v -> " version " ++ display v++hackageUrl :: String+hackageUrl = "http://hackage.haskell.org/package/"++type ResolvedDependency = (Dependency, DependencyResolution)++data DependencyResolution+ -- | An external dependency from the package database, OR an+ -- internal dependency which we are getting from the package+ -- database.+ = ExternalDependency PreExistingComponent+ -- | An internal dependency ('PackageId' should be a library name)+ -- which we are going to have to build. (The+ -- 'PackageId' here is a hack to get a modest amount of+ -- polymorphism out of the 'Package' typeclass.)+ | InternalDependency PackageId++data FailedDependency = DependencyNotExists PackageName+ | DependencyMissingInternal PackageName PackageName+ | DependencyNoVersion Dependency++-- | Test for a package dependency and record the version we have installed.+selectDependency :: PackageId -- ^ Package id of current package+ -> Map PackageName (Maybe UnqualComponentName)+ -> InstalledPackageIndex -- ^ Installed packages+ -> Map PackageName InstalledPackageInfo+ -- ^ Packages for which we have been given specific deps to+ -- use+ -> UseExternalInternalDeps -- ^ Are we configuring a+ -- single component?+ -> Dependency+ -> Either FailedDependency DependencyResolution+selectDependency pkgid internalIndex installedIndex requiredDepsMap+ use_external_internal_deps+ dep@(Dependency dep_pkgname vr) =+ -- If the dependency specification matches anything in the internal package+ -- index, then we prefer that match to anything in the second.+ -- For example:+ --+ -- Name: MyLibrary+ -- Version: 0.1+ -- Library+ -- ..+ -- Executable my-exec+ -- build-depends: MyLibrary+ --+ -- We want "build-depends: MyLibrary" always to match the internal library+ -- even if there is a newer installed library "MyLibrary-0.2".+ case Map.lookup dep_pkgname internalIndex of+ Just cname -> if use_external_internal_deps+ then do_external (Just cname)+ else do_internal+ _ -> do_external Nothing+ where++ -- It's an internal library, and we're not per-component build+ do_internal = Right $ InternalDependency+ $ PackageIdentifier dep_pkgname $ packageVersion pkgid++ -- We have to look it up externally+ do_external is_internal = do+ ipi <- case Map.lookup dep_pkgname requiredDepsMap of+ -- If we know the exact pkg to use, then use it.+ Just pkginstance -> Right pkginstance+ -- Otherwise we just pick an arbitrary instance of the latest version.+ Nothing ->+ case is_internal of+ Nothing -> do_external_external+ Just mb_uqn -> do_external_internal mb_uqn+ return $ ExternalDependency $ ipiToPreExistingComponent ipi++ -- It's an external package, normal situation+ do_external_external =+ case PackageIndex.lookupDependency installedIndex dep of+ [] -> Left (DependencyNotExists dep_pkgname)+ pkgs -> Right $ head $ snd $ last pkgs++ -- It's an internal library, being looked up externally+ do_external_internal mb_uqn =+ case PackageIndex.lookupInternalDependency installedIndex+ (Dependency (packageName pkgid) vr) mb_uqn of+ [] -> Left (DependencyMissingInternal dep_pkgname (packageName pkgid))+ pkgs -> Right $ head $ snd $ last pkgs++reportSelectedDependencies :: Verbosity+ -> [ResolvedDependency] -> IO ()+reportSelectedDependencies verbosity deps =+ info verbosity $ unlines+ [ "Dependency " ++ display (simplifyDependency dep)+ ++ ": using " ++ display pkgid+ | (dep, resolution) <- deps+ , let pkgid = case resolution of+ ExternalDependency pkg' -> packageId pkg'+ InternalDependency pkgid' -> pkgid' ]++reportFailedDependencies :: Verbosity -> [FailedDependency] -> IO ()+reportFailedDependencies _ [] = return ()+reportFailedDependencies verbosity failed =+ die' verbosity (intercalate "\n\n" (map reportFailedDependency failed))++ where+ reportFailedDependency (DependencyNotExists pkgname) =+ "there is no version of " ++ display pkgname ++ " installed.\n"+ ++ "Perhaps you need to download and install it from\n"+ ++ hackageUrl ++ display pkgname ++ "?"++ reportFailedDependency (DependencyMissingInternal pkgname real_pkgname) =+ "internal dependency " ++ display pkgname ++ " not installed.\n"+ ++ "Perhaps you need to configure and install it first?\n"+ ++ "(This library was defined by " ++ display real_pkgname ++ ")"++ reportFailedDependency (DependencyNoVersion dep) =+ "cannot satisfy dependency " ++ display (simplifyDependency dep) ++ "\n"++-- | List all installed packages in the given package databases.+getInstalledPackages :: Verbosity -> Compiler+ -> PackageDBStack -- ^ The stack of package databases.+ -> ProgramDb+ -> IO InstalledPackageIndex+getInstalledPackages verbosity comp packageDBs progdb = do+ when (null packageDBs) $+ die' verbosity $ "No package databases have been specified. If you use "+ ++ "--package-db=clear, you must follow it with --package-db= "+ ++ "with 'global', 'user' or a specific file."++ info verbosity "Reading installed packages..."+ case compilerFlavor comp of+ GHC -> GHC.getInstalledPackages verbosity comp packageDBs progdb+ GHCJS -> GHCJS.getInstalledPackages verbosity packageDBs progdb+ JHC -> JHC.getInstalledPackages verbosity packageDBs progdb+ LHC -> LHC.getInstalledPackages verbosity packageDBs progdb+ UHC -> UHC.getInstalledPackages verbosity comp packageDBs progdb+ HaskellSuite {} ->+ HaskellSuite.getInstalledPackages verbosity packageDBs progdb+ flv -> die' verbosity $ "don't know how to find the installed packages for "+ ++ display flv++-- | Like 'getInstalledPackages', but for a single package DB.+--+-- NB: Why isn't this always a fall through to 'getInstalledPackages'?+-- That is because 'getInstalledPackages' performs some sanity checks+-- on the package database stack in question. However, when sandboxes+-- are involved these sanity checks are not desirable.+getPackageDBContents :: Verbosity -> Compiler+ -> PackageDB -> ProgramDb+ -> IO InstalledPackageIndex+getPackageDBContents verbosity comp packageDB progdb = do+ info verbosity "Reading installed packages..."+ case compilerFlavor comp of+ GHC -> GHC.getPackageDBContents verbosity packageDB progdb+ GHCJS -> GHCJS.getPackageDBContents verbosity packageDB progdb+ -- For other compilers, try to fall back on 'getInstalledPackages'.+ _ -> getInstalledPackages verbosity comp [packageDB] progdb+++-- | A set of files (or directories) that can be monitored to detect when+-- there might have been a change in the installed packages.+--+getInstalledPackagesMonitorFiles :: Verbosity -> Compiler+ -> PackageDBStack+ -> ProgramDb -> Platform+ -> IO [FilePath]+getInstalledPackagesMonitorFiles verbosity comp packageDBs progdb platform =+ case compilerFlavor comp of+ GHC -> GHC.getInstalledPackagesMonitorFiles+ verbosity platform progdb packageDBs+ other -> do+ warn verbosity $ "don't know how to find change monitoring files for "+ ++ "the installed package databases for " ++ display other+ return []++-- | The user interface specifies the package dbs to use with a combination of+-- @--global@, @--user@ and @--package-db=global|user|clear|$file@.+-- This function combines the global/user flag and interprets the package-db+-- flag into a single package db stack.+--+interpretPackageDbFlags :: Bool -> [Maybe PackageDB] -> PackageDBStack+interpretPackageDbFlags userInstall specificDBs =+ extra initialStack specificDBs+ where+ initialStack | userInstall = [GlobalPackageDB, UserPackageDB]+ | otherwise = [GlobalPackageDB]++ extra dbs' [] = dbs'+ extra _ (Nothing:dbs) = extra [] dbs+ extra dbs' (Just db:dbs) = extra (dbs' ++ [db]) dbs++-- We are given both --constraint="foo < 2.0" style constraints and also+-- specific packages to pick via --dependency="foo=foo-2.0-177d5cdf20962d0581".+--+-- When finalising the package we have to take into account the specific+-- installed deps we've been given, and the finalise function expects+-- constraints, so we have to translate these deps into version constraints.+--+-- But after finalising we then have to make sure we pick the right specific+-- deps in the end. So we still need to remember which installed packages to+-- pick.+combinedConstraints :: [Dependency] ->+ [(PackageName, ComponentId)] ->+ InstalledPackageIndex ->+ Either String ([Dependency],+ Map PackageName InstalledPackageInfo)+combinedConstraints constraints dependencies installedPackages = do++ when (not (null badComponentIds)) $+ Left $ render $ text "The following package dependencies were requested"+ $+$ nest 4 (dispDependencies badComponentIds)+ $+$ text "however the given installed package instance does not exist."++ --TODO: we don't check that all dependencies are used!++ return (allConstraints, idConstraintMap)++ where+ allConstraints :: [Dependency]+ allConstraints = constraints+ ++ [ thisPackageVersion (packageId pkg)+ | (_, _, Just pkg) <- dependenciesPkgInfo ]++ idConstraintMap :: Map PackageName InstalledPackageInfo+ idConstraintMap = Map.fromList+ -- NB: do NOT use the packageName from+ -- dependenciesPkgInfo!+ [ (pn, pkg)+ | (pn, _, Just pkg) <- dependenciesPkgInfo ]++ -- The dependencies along with the installed package info, if it exists+ dependenciesPkgInfo :: [(PackageName, ComponentId,+ Maybe InstalledPackageInfo)]+ dependenciesPkgInfo =+ [ (pkgname, cid, mpkg)+ | (pkgname, cid) <- dependencies+ , let mpkg = PackageIndex.lookupComponentId+ installedPackages cid+ ]++ -- If we looked up a package specified by an installed package id+ -- (i.e. someone has written a hash) and didn't find it then it's+ -- an error.+ badComponentIds =+ [ (pkgname, cid)+ | (pkgname, cid, Nothing) <- dependenciesPkgInfo ]++ dispDependencies deps =+ hsep [ text "--dependency="+ <<>> quotes (disp pkgname <<>> char '=' <<>> disp cid)+ | (pkgname, cid) <- deps ]++-- -----------------------------------------------------------------------------+-- Configuring program dependencies++configureRequiredPrograms :: Verbosity -> [LegacyExeDependency] -> ProgramDb+ -> IO ProgramDb+configureRequiredPrograms verbosity deps progdb =+ foldM (configureRequiredProgram verbosity) progdb deps++-- | Configure a required program, ensuring that it exists in the PATH+-- (or where the user has specified the program must live) and making it+-- available for use via the 'ProgramDb' interface. If the program is+-- known (exists in the input 'ProgramDb'), we will make sure that the+-- program matches the required version; otherwise we will accept+-- any version of the program and assume that it is a simpleProgram.+configureRequiredProgram :: Verbosity -> ProgramDb -> LegacyExeDependency+ -> IO ProgramDb+configureRequiredProgram verbosity progdb+ (LegacyExeDependency progName verRange) =+ case lookupKnownProgram progName progdb of+ Nothing ->+ -- Try to configure it as a 'simpleProgram' automatically+ --+ -- There's a bit of a story behind this line. In old versions+ -- of Cabal, there were only internal build-tools dependencies. So the+ -- behavior in this case was:+ --+ -- - If a build-tool dependency was internal, don't do+ -- any checking.+ --+ -- - If it was external, call 'configureRequiredProgram' to+ -- "configure" the executable. In particular, if+ -- the program was not "known" (present in 'ProgramDb'),+ -- then we would just error. This was fine, because+ -- the only way a program could be executed from 'ProgramDb'+ -- is if some library code from Cabal actually called it,+ -- and the pre-existing Cabal code only calls known+ -- programs from 'defaultProgramDb', and so if it+ -- is calling something else, you have a Custom setup+ -- script, and in that case you are expected to register+ -- the program you want to call in the ProgramDb.+ --+ -- OK, so that was fine, until I (ezyang, in 2016) refactored+ -- Cabal to support per-component builds. In this case, what+ -- was previously an internal build-tool dependency now became+ -- an external one, and now previously "internal" dependencies+ -- are now external. But these are permitted to exist even+ -- when they are not previously configured (something that+ -- can only occur by a Custom script.)+ --+ -- So, I decided, "Fine, let's just accept these in any+ -- case." Thus this line. The alternative would have been to+ -- somehow detect when a build-tools dependency was "internal" (by+ -- looking at the unflattened package description) but this+ -- would also be incompatible with future work to support+ -- external executable dependencies: we definitely cannot+ -- assume they will be preinitialized in the 'ProgramDb'.+ configureProgram verbosity (simpleProgram progName) progdb+ Just prog+ -- requireProgramVersion always requires the program have a version+ -- but if the user says "build-depends: foo" ie no version constraint+ -- then we should not fail if we cannot discover the program version.+ | verRange == anyVersion -> do+ (_, progdb') <- requireProgram verbosity prog progdb+ return progdb'+ | otherwise -> do+ (_, _, progdb') <- requireProgramVersion verbosity prog verRange progdb+ return progdb'++-- -----------------------------------------------------------------------------+-- Configuring pkg-config package dependencies++configurePkgconfigPackages :: Verbosity -> PackageDescription+ -> ProgramDb -> ComponentRequestedSpec+ -> IO (PackageDescription, ProgramDb)+configurePkgconfigPackages verbosity pkg_descr progdb enabled+ | null allpkgs = return (pkg_descr, progdb)+ | otherwise = do+ (_, _, progdb') <- requireProgramVersion+ (lessVerbose verbosity) pkgConfigProgram+ (orLaterVersion $ mkVersion [0,9,0]) progdb+ traverse_ requirePkg allpkgs+ mlib' <- traverse addPkgConfigBILib (library pkg_descr)+ libs' <- traverse addPkgConfigBILib (subLibraries pkg_descr)+ exes' <- traverse addPkgConfigBIExe (executables pkg_descr)+ tests' <- traverse addPkgConfigBITest (testSuites pkg_descr)+ benches' <- traverse addPkgConfigBIBench (benchmarks pkg_descr)+ let pkg_descr' = pkg_descr { library = mlib',+ subLibraries = libs', executables = exes',+ testSuites = tests', benchmarks = benches' }+ return (pkg_descr', progdb')++ where+ allpkgs = concatMap pkgconfigDepends (enabledBuildInfos pkg_descr enabled)+ pkgconfig = getDbProgramOutput (lessVerbose verbosity)+ pkgConfigProgram progdb++ requirePkg dep@(PkgconfigDependency pkgn range) = do+ version <- pkgconfig ["--modversion", pkg]+ `catchIO` (\_ -> die' verbosity notFound)+ `catchExit` (\_ -> die' verbosity notFound)+ case simpleParse version of+ Nothing -> die' verbosity "parsing output of pkg-config --modversion failed"+ Just v | not (withinRange v range) -> die' verbosity (badVersion v)+ | otherwise -> info verbosity (depSatisfied v)+ where+ notFound = "The pkg-config package '" ++ pkg ++ "'"+ ++ versionRequirement+ ++ " is required but it could not be found."+ badVersion v = "The pkg-config package '" ++ pkg ++ "'"+ ++ versionRequirement+ ++ " is required but the version installed on the"+ ++ " system is version " ++ display v+ depSatisfied v = "Dependency " ++ display dep+ ++ ": using version " ++ display v++ versionRequirement+ | isAnyVersion range = ""+ | otherwise = " version " ++ display range++ pkg = unPkgconfigName pkgn++ -- Adds pkgconfig dependencies to the build info for a component+ addPkgConfigBI compBI setCompBI comp = do+ bi <- pkgconfigBuildInfo (pkgconfigDepends (compBI comp))+ return $ setCompBI comp (compBI comp `mappend` bi)++ -- Adds pkgconfig dependencies to the build info for a library+ addPkgConfigBILib = addPkgConfigBI libBuildInfo $+ \lib bi -> lib { libBuildInfo = bi }++ -- Adds pkgconfig dependencies to the build info for an executable+ addPkgConfigBIExe = addPkgConfigBI buildInfo $+ \exe bi -> exe { buildInfo = bi }++ -- Adds pkgconfig dependencies to the build info for a test suite+ addPkgConfigBITest = addPkgConfigBI testBuildInfo $+ \test bi -> test { testBuildInfo = bi }++ -- Adds pkgconfig dependencies to the build info for a benchmark+ addPkgConfigBIBench = addPkgConfigBI benchmarkBuildInfo $+ \bench bi -> bench { benchmarkBuildInfo = bi }++ pkgconfigBuildInfo :: [PkgconfigDependency] -> NoCallStackIO BuildInfo+ pkgconfigBuildInfo [] = return mempty+ pkgconfigBuildInfo pkgdeps = do+ let pkgs = nub [ display pkg | PkgconfigDependency pkg _ <- pkgdeps ]+ ccflags <- pkgconfig ("--cflags" : pkgs)+ ldflags <- pkgconfig ("--libs" : pkgs)+ return (ccLdOptionsBuildInfo (words ccflags) (words ldflags))++-- | Makes a 'BuildInfo' from C compiler and linker flags.+--+-- This can be used with the output from configuration programs like pkg-config+-- and similar package-specific programs like mysql-config, freealut-config etc.+-- For example:+--+-- > ccflags <- getDbProgramOutput verbosity prog progdb ["--cflags"]+-- > ldflags <- getDbProgramOutput verbosity prog progdb ["--libs"]+-- > return (ccldOptionsBuildInfo (words ccflags) (words ldflags))+--+ccLdOptionsBuildInfo :: [String] -> [String] -> BuildInfo+ccLdOptionsBuildInfo cflags ldflags =+ let (includeDirs', cflags') = partition ("-I" `isPrefixOf`) cflags+ (extraLibs', ldflags') = partition ("-l" `isPrefixOf`) ldflags+ (extraLibDirs', ldflags'') = partition ("-L" `isPrefixOf`) ldflags'+ in mempty {+ PD.includeDirs = map (drop 2) includeDirs',+ PD.extraLibs = map (drop 2) extraLibs',+ PD.extraLibDirs = map (drop 2) extraLibDirs',+ PD.ccOptions = cflags',+ PD.ldOptions = ldflags''+ }++-- -----------------------------------------------------------------------------+-- Determining the compiler details++configCompilerAuxEx :: ConfigFlags+ -> IO (Compiler, Platform, ProgramDb)+configCompilerAuxEx cfg = configCompilerEx (flagToMaybe $ configHcFlavor cfg)+ (flagToMaybe $ configHcPath cfg)+ (flagToMaybe $ configHcPkg cfg)+ programDb+ (fromFlag (configVerbosity cfg))+ where+ programDb = mkProgramDb cfg defaultProgramDb++configCompilerEx :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath+ -> ProgramDb -> Verbosity+ -> IO (Compiler, Platform, ProgramDb)+configCompilerEx Nothing _ _ _ verbosity = die' verbosity "Unknown compiler"+configCompilerEx (Just hcFlavor) hcPath hcPkg progdb verbosity = do+ (comp, maybePlatform, programDb) <- case hcFlavor of+ GHC -> GHC.configure verbosity hcPath hcPkg progdb+ GHCJS -> GHCJS.configure verbosity hcPath hcPkg progdb+ JHC -> JHC.configure verbosity hcPath hcPkg progdb+ LHC -> do (_, _, ghcConf) <- GHC.configure verbosity Nothing hcPkg progdb+ LHC.configure verbosity hcPath Nothing ghcConf+ UHC -> UHC.configure verbosity hcPath hcPkg progdb+ HaskellSuite {} -> HaskellSuite.configure verbosity hcPath hcPkg progdb+ _ -> die' verbosity "Unknown compiler"+ return (comp, fromMaybe buildPlatform maybePlatform, programDb)++-- Ideally we would like to not have separate configCompiler* and+-- configCompiler*Ex sets of functions, but there are many custom setup scripts+-- in the wild that are using them, so the versions with old types are kept for+-- backwards compatibility. Platform was added to the return triple in 1.18.++{-# DEPRECATED configCompiler+ "'configCompiler' is deprecated. Use 'configCompilerEx' instead." #-}+configCompiler :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath+ -> ProgramDb -> Verbosity+ -> IO (Compiler, ProgramDb)+configCompiler mFlavor hcPath hcPkg progdb verbosity =+ fmap (\(a,_,b) -> (a,b)) $ configCompilerEx mFlavor hcPath hcPkg progdb verbosity++{-# DEPRECATED configCompilerAux+ "configCompilerAux is deprecated. Use 'configCompilerAuxEx' instead." #-}+configCompilerAux :: ConfigFlags+ -> IO (Compiler, ProgramDb)+configCompilerAux = fmap (\(a,_,b) -> (a,b)) . configCompilerAuxEx++-- -----------------------------------------------------------------------------+-- Testing C lib and header dependencies++-- Try to build a test C program which includes every header and links every+-- lib. If that fails, try to narrow it down by preprocessing (only) and linking+-- with individual headers and libs. If none is the obvious culprit then give a+-- generic error message.+-- TODO: produce a log file from the compiler errors, if any.+checkForeignDeps :: PackageDescription -> LocalBuildInfo -> Verbosity -> IO ()+checkForeignDeps pkg lbi verbosity =+ ifBuildsWith allHeaders (commonCcArgs ++ makeLdArgs allLibs) -- I'm feeling+ -- lucky+ (return ())+ (do missingLibs <- findMissingLibs+ missingHdr <- findOffendingHdr+ explainErrors missingHdr missingLibs)+ where+ allHeaders = collectField PD.includes+ allLibs = collectField PD.extraLibs++ ifBuildsWith headers args success failure = do+ ok <- builds (makeProgram headers) args+ if ok then success else failure++ findOffendingHdr =+ ifBuildsWith allHeaders ccArgs+ (return Nothing)+ (go . tail . inits $ allHeaders)+ where+ go [] = return Nothing -- cannot happen+ go (hdrs:hdrsInits) =+ -- Try just preprocessing first+ ifBuildsWith hdrs cppArgs+ -- If that works, try compiling too+ (ifBuildsWith hdrs ccArgs+ (go hdrsInits)+ (return . Just . Right . last $ hdrs))+ (return . Just . Left . last $ hdrs)++ cppArgs = "-E":commonCppArgs -- preprocess only+ ccArgs = "-c":commonCcArgs -- don't try to link++ findMissingLibs = ifBuildsWith [] (makeLdArgs allLibs)+ (return [])+ (filterM (fmap not . libExists) allLibs)++ libExists lib = builds (makeProgram []) (makeLdArgs [lib])++ commonCppArgs = platformDefines lbi+ -- TODO: This is a massive hack, to work around the+ -- fact that the test performed here should be+ -- PER-component (c.f. the "I'm Feeling Lucky"; we+ -- should NOT be glomming everything together.)+ ++ [ "-I" ++ buildDir lbi </> "autogen" ]+ ++ [ "-I" ++ dir | dir <- collectField PD.includeDirs ]+ ++ ["-I."]+ ++ collectField PD.cppOptions+ ++ collectField PD.ccOptions+ ++ [ "-I" ++ dir+ | dir <- ordNub [ dir+ | dep <- deps+ , dir <- Installed.includeDirs dep ]+ -- dedupe include dirs of dependencies+ -- to prevent quadratic blow-up+ ]+ ++ [ opt+ | dep <- deps+ , opt <- Installed.ccOptions dep ]++ commonCcArgs = commonCppArgs+ ++ collectField PD.ccOptions+ ++ [ opt+ | dep <- deps+ , opt <- Installed.ccOptions dep ]++ commonLdArgs = [ "-L" ++ dir | dir <- collectField PD.extraLibDirs ]+ ++ collectField PD.ldOptions+ ++ [ "-L" ++ dir+ | dir <- ordNub [ dir+ | dep <- deps+ , dir <- Installed.libraryDirs dep ]+ ]+ --TODO: do we also need dependent packages' ld options?+ makeLdArgs libs = [ "-l"++lib | lib <- libs ] ++ commonLdArgs++ makeProgram hdrs = unlines $+ [ "#include \"" ++ hdr ++ "\"" | hdr <- hdrs ] +++ ["int main(int argc, char** argv) { return 0; }"]++ collectField f = concatMap f allBi+ allBi = enabledBuildInfos pkg (componentEnabledSpec lbi)+ deps = PackageIndex.topologicalOrder (installedPkgs lbi)++ builds program args = do+ tempDir <- getTemporaryDirectory+ withTempFile tempDir ".c" $ \cName cHnd ->+ withTempFile tempDir "" $ \oNname oHnd -> do+ hPutStrLn cHnd program+ hClose cHnd+ hClose oHnd+ _ <- getDbProgramOutput verbosity+ gccProgram (withPrograms lbi) (cName:"-o":oNname:args)+ return True+ `catchIO` (\_ -> return False)+ `catchExit` (\_ -> return False)++ explainErrors Nothing [] = return () -- should be impossible!+ explainErrors _ _+ | isNothing . lookupProgram gccProgram . withPrograms $ lbi++ = die' verbosity $ unlines+ [ "No working gcc",+ "This package depends on foreign library but we cannot "+ ++ "find a working C compiler. If you have it in a "+ ++ "non-standard location you can use the --with-gcc "+ ++ "flag to specify it." ]++ explainErrors hdr libs = die' verbosity $ unlines $+ [ if plural+ then "Missing dependencies on foreign libraries:"+ else "Missing dependency on a foreign library:"+ | missing ]+ ++ case hdr of+ Just (Left h) -> ["* Missing (or bad) header file: " ++ h ]+ _ -> []+ ++ case libs of+ [] -> []+ [lib] -> ["* Missing C library: " ++ lib]+ _ -> ["* Missing C libraries: " ++ intercalate ", " libs]+ ++ [if plural then messagePlural else messageSingular | missing]+ ++ case hdr of+ Just (Left _) -> [ headerCppMessage ]+ Just (Right h) -> [ (if missing then "* " else "")+ ++ "Bad header file: " ++ h+ , headerCcMessage ]+ _ -> []++ where+ plural = length libs >= 2+ -- Is there something missing? (as opposed to broken)+ missing = not (null libs)+ || case hdr of Just (Left _) -> True; _ -> False++ messageSingular =+ "This problem can usually be solved by installing the system "+ ++ "package that provides this library (you may need the "+ ++ "\"-dev\" version). If the library is already installed "+ ++ "but in a non-standard location then you can use the flags "+ ++ "--extra-include-dirs= and --extra-lib-dirs= to specify "+ ++ "where it is."+ messagePlural =+ "This problem can usually be solved by installing the system "+ ++ "packages that provide these libraries (you may need the "+ ++ "\"-dev\" versions). If the libraries are already installed "+ ++ "but in a non-standard location then you can use the flags "+ ++ "--extra-include-dirs= and --extra-lib-dirs= to specify "+ ++ "where they are."+ headerCppMessage =+ "If the header file does exist, it may contain errors that "+ ++ "are caught by the C compiler at the preprocessing stage. "+ ++ "In this case you can re-run configure with the verbosity "+ ++ "flag -v3 to see the error messages."+ headerCcMessage =+ "The header file contains a compile error. "+ ++ "You can re-run configure with the verbosity flag "+ ++ "-v3 to see the error messages from the C compiler."++-- | Output package check warnings and errors. Exit if any errors.+checkPackageProblems :: Verbosity+ -> GenericPackageDescription+ -> PackageDescription+ -> IO ()+checkPackageProblems verbosity gpkg pkg = do+ ioChecks <- checkPackageFiles pkg "."+ let pureChecks = checkPackage gpkg (Just pkg)+ errors = [ e | PackageBuildImpossible e <- pureChecks ++ ioChecks ]+ warnings = [ w | PackageBuildWarning w <- pureChecks ++ ioChecks ]+ if null errors+ then traverse_ (warn verbosity) warnings+ else die' verbosity (intercalate "\n\n" errors)++-- | Preform checks if a relocatable build is allowed+checkRelocatable :: Verbosity+ -> PackageDescription+ -> LocalBuildInfo+ -> IO ()+checkRelocatable verbosity pkg lbi+ = sequence_ [ checkOS+ , checkCompiler+ , packagePrefixRelative+ , depsPrefixRelative+ ]+ where+ -- Check if the OS support relocatable builds.+ --+ -- If you add new OS' to this list, and your OS supports dynamic libraries+ -- and RPATH, make sure you add your OS to RPATH-support list of:+ -- Distribution.Simple.GHC.getRPaths+ checkOS+ = unless (os `elem` [ OSX, Linux ])+ $ die' verbosity $ "Operating system: " ++ display os +++ ", does not support relocatable builds"+ where+ (Platform _ os) = hostPlatform lbi++ -- Check if the Compiler support relocatable builds+ checkCompiler+ = unless (compilerFlavor comp `elem` [ GHC ])+ $ die' verbosity $ "Compiler: " ++ show comp +++ ", does not support relocatable builds"+ where+ comp = compiler lbi++ -- Check if all the install dirs are relative to same prefix+ packagePrefixRelative+ = unless (relativeInstallDirs installDirs)+ $ die' verbosity $ "Installation directories are not prefix_relative:\n" +++ show installDirs+ where+ -- NB: should be good enough to check this against the default+ -- component ID, but if we wanted to be strictly correct we'd+ -- check for each ComponentId.+ installDirs = absoluteInstallDirs pkg lbi NoCopyDest+ p = prefix installDirs+ relativeInstallDirs (InstallDirs {..}) =+ all isJust+ (fmap (stripPrefix p)+ [ bindir, libdir, dynlibdir, libexecdir, includedir, datadir+ , docdir, mandir, htmldir, haddockdir, sysconfdir] )++ -- Check if the library dirs of the dependencies that are in the package+ -- database to which the package is installed are relative to the+ -- prefix of the package+ depsPrefixRelative = do+ pkgr <- GHC.pkgRoot verbosity lbi (last (withPackageDB lbi))+ traverse_ (doCheck pkgr) ipkgs+ where+ doCheck pkgr ipkg+ | maybe False (== pkgr) (Installed.pkgRoot ipkg)+ = traverse_ (\l -> when (isNothing $ stripPrefix p l) (die' verbosity (msg l)))+ (Installed.libraryDirs ipkg)+ | otherwise+ = return ()+ -- NB: should be good enough to check this against the default+ -- component ID, but if we wanted to be strictly correct we'd+ -- check for each ComponentId.+ installDirs = absoluteInstallDirs pkg lbi NoCopyDest+ p = prefix installDirs+ ipkgs = PackageIndex.allPackages (installedPkgs lbi)+ msg l = "Library directory of a dependency: " ++ show l +++ "\nis not relative to the installation prefix:\n" +++ show p++-- -----------------------------------------------------------------------------+-- Testing foreign library requirements++unsupportedForeignLibs :: Compiler -> Platform -> [ForeignLib] -> [String]+unsupportedForeignLibs comp platform =+ mapMaybe (checkForeignLibSupported comp platform)++checkForeignLibSupported :: Compiler -> Platform -> ForeignLib -> Maybe String+checkForeignLibSupported comp platform flib = go (compilerFlavor comp)+ where+ go :: CompilerFlavor -> Maybe String+ go GHC+ | compilerVersion comp < mkVersion [7,8] = unsupported [+ "Building foreign libraires is only supported with GHC >= 7.8"+ ]+ | otherwise = goGhcPlatform platform+ go _ = unsupported [+ "Building foreign libraries is currently only supported with ghc"+ ]++ goGhcPlatform :: Platform -> Maybe String+ goGhcPlatform (Platform X86_64 OSX ) = goGhcOsx (foreignLibType flib)+ goGhcPlatform (Platform I386 Linux ) = goGhcLinux (foreignLibType flib)+ goGhcPlatform (Platform X86_64 Linux ) = goGhcLinux (foreignLibType flib)+ goGhcPlatform (Platform I386 Windows) = goGhcWindows (foreignLibType flib)+ goGhcPlatform (Platform X86_64 Windows) = goGhcWindows (foreignLibType flib)+ goGhcPlatform _ = unsupported [+ "Building foreign libraries is currently only supported on OSX, "+ , "Linux and Windows"+ ]++ goGhcOsx :: ForeignLibType -> Maybe String+ goGhcOsx ForeignLibNativeShared+ | standalone = unsupported [+ "We cannot build standalone libraries on OSX"+ ]+ | not (null (foreignLibModDefFile flib)) = unsupported [+ "Module definition file not supported on OSX"+ ]+ | not (null (foreignLibVersionInfo flib)) = unsupported [+ "Foreign library versioning not currently supported on OSX"+ ]+ | otherwise =+ Nothing+ goGhcOsx _ = unsupported [+ "We can currently only build shared foreign libraries on OSX"+ ]++ goGhcLinux :: ForeignLibType -> Maybe String+ goGhcLinux ForeignLibNativeShared+ | standalone = unsupported [+ "We cannot build standalone libraries on Linux"+ ]+ | not (null (foreignLibModDefFile flib)) = unsupported [+ "Module definition file not supported on Linux"+ ]+ | not (null (foreignLibVersionInfo flib))+ && not (null (foreignLibVersionLinux flib)) = unsupported [+ "You must not specify both lib-version-info and lib-version-linux"+ ]+ | otherwise =+ Nothing+ goGhcLinux _ = unsupported [+ "We can currently only build shared foreign libraries on Linux"+ ]++ goGhcWindows :: ForeignLibType -> Maybe String+ goGhcWindows ForeignLibNativeShared+ | not standalone = unsupported [+ "We can currently only build standalone libraries on Windows. Use\n"+ , " if os(Windows)\n"+ , " options: standalone\n"+ , "in your foreign-library stanza."+ ]+ | not (null (foreignLibVersionInfo flib)) = unsupported [+ "Foreign library versioning not currently supported on Windows.\n"+ , "You can specify module definition files in the mod-def-file field."+ ]+ | otherwise =+ Nothing+ goGhcWindows _ = unsupported [+ "We can currently only build shared foreign libraries on Windows"+ ]++ standalone :: Bool+ standalone = ForeignLibStandalone `elem` foreignLibOptions flib++ unsupported :: [String] -> Maybe String+ unsupported = Just . concat
+ Distribution/Simple/Doctest.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Simple.Doctest+-- Copyright : Moritz Angermann 2017+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+-- This module deals with the @doctest@ command.++-- Note: this module is modelled after Distribution.Simple.Haddock++module Distribution.Simple.Doctest (+ doctest+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import qualified Distribution.Simple.GHC as GHC+import qualified Distribution.Simple.GHCJS as GHCJS++-- local+import Distribution.PackageDescription as PD hiding (Flag)+import Distribution.Simple.Compiler hiding (Flag)+import Distribution.Simple.Program.GHC+import Distribution.Simple.Program+import Distribution.Simple.PreProcess+import Distribution.Simple.Setup+import Distribution.Simple.Build+import Distribution.Simple.LocalBuildInfo hiding (substPathTemplate)+import Distribution.Simple.Register (internalPackageDBPath)+import Distribution.Simple.BuildPaths+import Distribution.Simple.Utils+import Distribution.System+import Distribution.Utils.NubList+import Distribution.Version+import Distribution.Verbosity++-- -----------------------------------------------------------------------------+-- Types++-- | A record that represents the arguments to the doctest executable.+data DoctestArgs = DoctestArgs {+ argTargets :: [FilePath]+ -- ^ Modules to process+ , argGhcOptions :: Flag (GhcOptions, Version)+} deriving (Show, Generic)++-- -----------------------------------------------------------------------------+-- Doctest support++doctest :: PackageDescription+ -> LocalBuildInfo+ -> [PPSuffixHandler]+ -> DoctestFlags+ -> IO ()+doctest pkg_descr lbi suffixes doctestFlags = do+ let verbosity = flag doctestVerbosity+ distPref = flag doctestDistPref+ flag f = fromFlag $ f doctestFlags+ tmpFileOpts = defaultTempFileOptions+ lbi' = lbi { withPackageDB = withPackageDB lbi+ ++ [SpecificPackageDB (internalPackageDBPath lbi distPref)] }++ (doctestProg, _version, _) <-+ requireProgramVersion verbosity doctestProgram+ (orLaterVersion (mkVersion [0,11,3])) (withPrograms lbi)++ withAllComponentsInBuildOrder pkg_descr lbi $ \component clbi -> do+ componentInitialBuildSteps distPref pkg_descr lbi clbi verbosity+ preprocessComponent pkg_descr component lbi clbi False verbosity suffixes++ case component of+ CLib lib -> do+ withTempDirectoryEx verbosity tmpFileOpts (buildDir lbi) "tmp" $+ \tmp -> do+ inFiles <- map snd <$> getLibSourceFiles verbosity lbi lib clbi+ args <- mkDoctestArgs verbosity tmp lbi' clbi inFiles (libBuildInfo lib)+ runDoctest verbosity (compiler lbi) (hostPlatform lbi) doctestProg args+ CExe exe -> do+ withTempDirectoryEx verbosity tmpFileOpts (buildDir lbi) "tmp" $+ \tmp -> do+ inFiles <- map snd <$> getExeSourceFiles verbosity lbi exe clbi+ args <- mkDoctestArgs verbosity tmp lbi' clbi inFiles (buildInfo exe)+ runDoctest verbosity (compiler lbi) (hostPlatform lbi) doctestProg args+ CFLib _ -> return () -- do not doctest foreign libs+ CTest _ -> return () -- do not doctest tests+ CBench _ -> return () -- do not doctest benchmarks++-- -----------------------------------------------------------------------------+-- Contributions to DoctestArgs (see also Haddock.hs for very similar code).++componentGhcOptions :: Verbosity -> LocalBuildInfo+ -> BuildInfo -> ComponentLocalBuildInfo -> FilePath+ -> GhcOptions+componentGhcOptions verbosity lbi bi clbi odir =+ let f = case compilerFlavor (compiler lbi) of+ GHC -> GHC.componentGhcOptions+ GHCJS -> GHCJS.componentGhcOptions+ _ -> error $+ "Distribution.Simple.Doctest.componentGhcOptions:" +++ "doctest only supports GHC and GHCJS"+ in f verbosity lbi bi clbi odir++mkDoctestArgs :: Verbosity+ -> FilePath+ -> LocalBuildInfo+ -> ComponentLocalBuildInfo+ -> [FilePath]+ -> BuildInfo+ -> IO DoctestArgs+mkDoctestArgs verbosity tmp lbi clbi inFiles bi = do+ let vanillaOpts = (componentGhcOptions normal lbi bi clbi (buildDir lbi))+ { ghcOptOptimisation = mempty -- no optimizations when runnign doctest+ -- disable -Wmissing-home-modules+ , ghcOptWarnMissingHomeModules = mempty+ -- clear out ghc-options: these are likely not meant for doctest.+ -- If so, should be explicitly specified via doctest-ghc-options: again.+ , ghcOptExtra = mempty+ , ghcOptCabal = toFlag False++ , ghcOptObjDir = toFlag tmp+ , ghcOptHiDir = toFlag tmp+ , ghcOptStubDir = toFlag tmp }+ sharedOpts = vanillaOpts+ { ghcOptDynLinkMode = toFlag GhcDynamicOnly+ , ghcOptFPic = toFlag True+ , ghcOptHiSuffix = toFlag "dyn_hi"+ , ghcOptObjSuffix = toFlag "dyn_o"+ , ghcOptExtra = toNubListR (hcSharedOptions GHC bi)}+ opts <- if withVanillaLib lbi+ then return vanillaOpts+ else if withSharedLib lbi+ then return sharedOpts+ else die' verbosity $ "Must have vanilla or shared lirbaries "+ ++ "enabled in order to run doctest"+ ghcVersion <- maybe (die' verbosity "Compiler has no GHC version")+ return+ (compilerCompatVersion GHC (compiler lbi))+ return $ DoctestArgs+ { argTargets = inFiles+ , argGhcOptions = toFlag (opts, ghcVersion)+ }+++-- -----------------------------------------------------------------------------+-- Call doctest with the specified arguments.+runDoctest :: Verbosity+ -> Compiler+ -> Platform+ -> ConfiguredProgram+ -> DoctestArgs+ -> IO ()+runDoctest verbosity comp platform doctestProg args = do+ renderArgs verbosity comp platform args $+ \(flags, files) -> do+ runProgram verbosity doctestProg (flags <> files)++renderArgs :: Verbosity+ -> Compiler+ -> Platform+ -> DoctestArgs+ -> (([String],[FilePath]) -> IO a)+ -> IO a+renderArgs _verbosity comp platform args k = do+ k (flags, argTargets args)+ where+ flags :: [String]+ flags = mconcat+ [ pure "--no-magic" -- disable doctests automagic discovery heuristics+ , pure "-fdiagnostics-color=never" -- disable ghc's color diagnostics.+ , [ opt | (opts, _ghcVer) <- flagToList (argGhcOptions args)+ , opt <- renderGhcOptions comp platform opts ]+ ]++-- ------------------------------------------------------------------------------+-- Boilerplate Monoid instance.+instance Monoid DoctestArgs where+ mempty = gmempty+ mappend = (<>)++instance Semigroup DoctestArgs where+ (<>) = gmappend
Distribution/Simple/GHC.hs view
@@ -1,1237 +1,1742 @@-{-# LANGUAGE PatternGuards #-}---------------------------------------------------------------------------------- |--- Module : Distribution.Simple.GHC--- Copyright : Isaac Jones 2003-2007--- License : BSD3------ Maintainer : cabal-devel@haskell.org--- Portability : portable------ This is a fairly large module. It contains most of the GHC-specific code for--- configuring, building and installing packages. It also exports a function--- for finding out what packages are already installed. Configuring involves--- finding the @ghc@ and @ghc-pkg@ programs, finding what language extensions--- this version of ghc supports and returning a 'Compiler' value.------ 'getInstalledPackages' involves calling the @ghc-pkg@ program to find out--- what packages are installed.------ Building is somewhat complex as there is quite a bit of information to take--- into account. We have to build libs and programs, possibly for profiling and--- shared libs. We have to support building libraries that will be usable by--- GHCi and also ghc's @-split-objs@ feature. We have to compile any C files--- using ghc. Linking, especially for @split-objs@ is remarkably complex,--- partly because there tend to be 1,000's of @.o@ files and this can often be--- more than we can pass to the @ld@ or @ar@ programs in one go.------ Installing for libs and exes involves finding the right files and copying--- them to the right places. One of the more tricky things about this module is--- remembering the layout of files in the build directory (which is not--- explicitly documented) and thus what search dirs are used for various kinds--- of files.--module Distribution.Simple.GHC (- getGhcInfo,- configure,- getInstalledPackages,- getInstalledPackagesMonitorFiles,- getPackageDBContents,- buildLib, buildExe,- replLib, replExe,- startInterpreter,- installLib, installExe,- libAbiHash,- hcPkgInfo,- registerPackage,- componentGhcOptions,- componentCcGhcOptions,- getLibDir,- isDynamic,- getGlobalPackageDB,- pkgRoot- ) where--import Control.Applicative -- 7.10 -Werror workaround-import Prelude -- https://ghc.haskell.org/trac/ghc/wiki/Migration/7.10#GHCsaysTheimportof...isredundant--import qualified Distribution.Simple.GHC.IPI642 as IPI642-import qualified Distribution.Simple.GHC.Internal as Internal-import Distribution.Simple.GHC.ImplInfo-import Distribution.PackageDescription as PD-import Distribution.InstalledPackageInfo (InstalledPackageInfo)-import qualified Distribution.InstalledPackageInfo as InstalledPackageInfo-import Distribution.Simple.PackageIndex (InstalledPackageIndex)-import qualified Distribution.Simple.PackageIndex as PackageIndex-import Distribution.Simple.LocalBuildInfo-import qualified Distribution.Simple.Hpc as Hpc-import Distribution.Simple.BuildPaths-import Distribution.Simple.Utils-import Distribution.Package-import qualified Distribution.ModuleName as ModuleName-import Distribution.Simple.Program-import qualified Distribution.Simple.Program.HcPkg as HcPkg-import qualified Distribution.Simple.Program.Ar as Ar-import qualified Distribution.Simple.Program.Ld as Ld-import qualified Distribution.Simple.Program.Strip as Strip-import Distribution.Simple.Program.GHC-import Distribution.Simple.Setup-import qualified Distribution.Simple.Setup as Cabal-import Distribution.Simple.Compiler hiding (Flag)-import Distribution.Version-import Distribution.System-import Distribution.Verbosity-import Distribution.Text-import Distribution.Utils.NubList-import Language.Haskell.Extension--import Control.Monad ( unless, when )-import Data.Char ( isDigit, isSpace )-import Data.List-import qualified Data.Map as M ( fromList, lookup )-import Data.Maybe ( catMaybes )-import Data.Monoid as Mon ( Monoid(..) )-import Data.Version ( showVersion )-import System.Directory- ( doesFileExist, getAppUserDataDirectory, createDirectoryIfMissing- , canonicalizePath )-import System.FilePath ( (</>), (<.>), takeExtension- , takeDirectory, replaceExtension- , isRelative )-import qualified System.Info---- -------------------------------------------------------------------------------- Configuring--configure :: Verbosity -> Maybe FilePath -> Maybe FilePath- -> ProgramConfiguration- -> IO (Compiler, Maybe Platform, ProgramConfiguration)-configure verbosity hcPath hcPkgPath conf0 = do-- (ghcProg, ghcVersion, conf1) <-- requireProgramVersion verbosity ghcProgram- (orLaterVersion (Version [6,4] []))- (userMaybeSpecifyPath "ghc" hcPath conf0)- let implInfo = ghcVersionImplInfo ghcVersion-- -- This is slightly tricky, we have to configure ghc first, then we use the- -- location of ghc to help find ghc-pkg in the case that the user did not- -- specify the location of ghc-pkg directly:- (ghcPkgProg, ghcPkgVersion, conf2) <-- requireProgramVersion verbosity ghcPkgProgram {- programFindLocation = guessGhcPkgFromGhcPath ghcProg- }- anyVersion (userMaybeSpecifyPath "ghc-pkg" hcPkgPath conf1)-- when (ghcVersion /= ghcPkgVersion) $ die $- "Version mismatch between ghc and ghc-pkg: "- ++ programPath ghcProg ++ " is version " ++ display ghcVersion ++ " "- ++ programPath ghcPkgProg ++ " is version " ++ display ghcPkgVersion-- -- Likewise we try to find the matching hsc2hs and haddock programs.- let hsc2hsProgram' = hsc2hsProgram {- programFindLocation = guessHsc2hsFromGhcPath ghcProg- }- haddockProgram' = haddockProgram {- programFindLocation = guessHaddockFromGhcPath ghcProg- }- conf3 = addKnownProgram haddockProgram' $- addKnownProgram hsc2hsProgram' conf2-- languages <- Internal.getLanguages verbosity implInfo ghcProg- extensions0 <- Internal.getExtensions verbosity implInfo ghcProg-- ghcInfo <- Internal.getGhcInfo verbosity implInfo ghcProg- let ghcInfoMap = M.fromList ghcInfo- extensions = -- workaround https://ghc.haskell.org/ticket/11214- filterExt JavaScriptFFI $- -- see 'filterExtTH' comment below- filterExtTH $ extensions0-- -- starting with GHC 8.0, `TemplateHaskell` will be omitted from- -- `--supported-extensions` when it's not available.- -- for older GHCs we can use the "Have interpreter" property to- -- filter out `TemplateHaskell`- filterExtTH | ghcVersion < Version [8] []- , Just "NO" <- M.lookup "Have interpreter" ghcInfoMap- = filterExt TemplateHaskell- | otherwise = id-- filterExt ext = filter ((/= EnableExtension ext) . fst)-- let comp = Compiler {- compilerId = CompilerId GHC ghcVersion,- compilerAbiTag = NoAbiTag,- compilerCompat = [],- compilerLanguages = languages,- compilerExtensions = extensions,- compilerProperties = ghcInfoMap- }- compPlatform = Internal.targetPlatform ghcInfo- -- configure gcc and ld- conf4 = Internal.configureToolchain implInfo ghcProg ghcInfoMap conf3- return (comp, compPlatform, conf4)---- | Given something like /usr/local/bin/ghc-6.6.1(.exe) we try and find--- the corresponding tool; e.g. if the tool is ghc-pkg, we try looking--- for a versioned or unversioned ghc-pkg in the same dir, that is:------ > /usr/local/bin/ghc-pkg-ghc-6.6.1(.exe)--- > /usr/local/bin/ghc-pkg-6.6.1(.exe)--- > /usr/local/bin/ghc-pkg(.exe)----guessToolFromGhcPath :: Program -> ConfiguredProgram- -> Verbosity -> ProgramSearchPath- -> IO (Maybe (FilePath, [FilePath]))-guessToolFromGhcPath tool ghcProg verbosity searchpath- = do let toolname = programName tool- given_path = programPath ghcProg- given_dir = takeDirectory given_path- real_path <- canonicalizePath given_path- let real_dir = takeDirectory real_path- versionSuffix path = takeVersionSuffix (dropExeExtension path)- given_suf = versionSuffix given_path- real_suf = versionSuffix real_path- guessNormal dir = dir </> toolname <.> exeExtension- guessGhcVersioned dir suf = dir </> (toolname ++ "-ghc" ++ suf)- <.> exeExtension- guessVersioned dir suf = dir </> (toolname ++ suf)- <.> exeExtension- mkGuesses dir suf | null suf = [guessNormal dir]- | otherwise = [guessGhcVersioned dir suf,- guessVersioned dir suf,- guessNormal dir]- guesses = mkGuesses given_dir given_suf ++- if real_path == given_path- then []- else mkGuesses real_dir real_suf- info verbosity $ "looking for tool " ++ toolname- ++ " near compiler in " ++ given_dir- debug verbosity $ "candidate locations: " ++ show guesses- exists <- mapM doesFileExist guesses- case [ file | (file, True) <- zip guesses exists ] of- -- If we can't find it near ghc, fall back to the usual- -- method.- [] -> programFindLocation tool verbosity searchpath- (fp:_) -> do info verbosity $ "found " ++ toolname ++ " in " ++ fp- let lookedAt = map fst- . takeWhile (\(_file, exist) -> not exist)- $ zip guesses exists- return (Just (fp, lookedAt))-- where takeVersionSuffix :: FilePath -> String- takeVersionSuffix = takeWhileEndLE isSuffixChar-- isSuffixChar :: Char -> Bool- isSuffixChar c = isDigit c || c == '.' || c == '-'---- | Given something like /usr/local/bin/ghc-6.6.1(.exe) we try and find a--- corresponding ghc-pkg, we try looking for both a versioned and unversioned--- ghc-pkg in the same dir, that is:------ > /usr/local/bin/ghc-pkg-ghc-6.6.1(.exe)--- > /usr/local/bin/ghc-pkg-6.6.1(.exe)--- > /usr/local/bin/ghc-pkg(.exe)----guessGhcPkgFromGhcPath :: ConfiguredProgram- -> Verbosity -> ProgramSearchPath- -> IO (Maybe (FilePath, [FilePath]))-guessGhcPkgFromGhcPath = guessToolFromGhcPath ghcPkgProgram---- | Given something like /usr/local/bin/ghc-6.6.1(.exe) we try and find a--- corresponding hsc2hs, we try looking for both a versioned and unversioned--- hsc2hs in the same dir, that is:------ > /usr/local/bin/hsc2hs-ghc-6.6.1(.exe)--- > /usr/local/bin/hsc2hs-6.6.1(.exe)--- > /usr/local/bin/hsc2hs(.exe)----guessHsc2hsFromGhcPath :: ConfiguredProgram- -> Verbosity -> ProgramSearchPath- -> IO (Maybe (FilePath, [FilePath]))-guessHsc2hsFromGhcPath = guessToolFromGhcPath hsc2hsProgram---- | Given something like /usr/local/bin/ghc-6.6.1(.exe) we try and find a--- corresponding haddock, we try looking for both a versioned and unversioned--- haddock in the same dir, that is:------ > /usr/local/bin/haddock-ghc-6.6.1(.exe)--- > /usr/local/bin/haddock-6.6.1(.exe)--- > /usr/local/bin/haddock(.exe)----guessHaddockFromGhcPath :: ConfiguredProgram- -> Verbosity -> ProgramSearchPath- -> IO (Maybe (FilePath, [FilePath]))-guessHaddockFromGhcPath = guessToolFromGhcPath haddockProgram--getGhcInfo :: Verbosity -> ConfiguredProgram -> IO [(String, String)]-getGhcInfo verbosity ghcProg = Internal.getGhcInfo verbosity implInfo ghcProg- where- Just version = programVersion ghcProg- implInfo = ghcVersionImplInfo version---- | Given a single package DB, return all installed packages.-getPackageDBContents :: Verbosity -> PackageDB -> ProgramConfiguration- -> IO InstalledPackageIndex-getPackageDBContents verbosity packagedb conf = do- pkgss <- getInstalledPackages' verbosity [packagedb] conf- toPackageIndex verbosity pkgss conf---- | Given a package DB stack, return all installed packages.-getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack- -> ProgramConfiguration- -> IO InstalledPackageIndex-getInstalledPackages verbosity comp packagedbs conf = do- checkPackageDbEnvVar- checkPackageDbStack comp packagedbs- pkgss <- getInstalledPackages' verbosity packagedbs conf- index <- toPackageIndex verbosity pkgss conf- return $! hackRtsPackage index-- where- hackRtsPackage index =- case PackageIndex.lookupPackageName index (PackageName "rts") of- [(_,[rts])]- -> PackageIndex.insert (removeMingwIncludeDir rts) index- _ -> index -- No (or multiple) ghc rts package is registered!!- -- Feh, whatever, the ghc test suite does some crazy stuff.---- | Given a list of @(PackageDB, InstalledPackageInfo)@ pairs, produce a--- @PackageIndex@. Helper function used by 'getPackageDBContents' and--- 'getInstalledPackages'.-toPackageIndex :: Verbosity- -> [(PackageDB, [InstalledPackageInfo])]- -> ProgramConfiguration- -> IO InstalledPackageIndex-toPackageIndex verbosity pkgss conf = do- -- On Windows, various fields have $topdir/foo rather than full- -- paths. We need to substitute the right value in so that when- -- we, for example, call gcc, we have proper paths to give it.- topDir <- getLibDir' verbosity ghcProg- let indices = [ PackageIndex.fromList (map (Internal.substTopDir topDir) pkgs)- | (_, pkgs) <- pkgss ]- return $! mconcat indices-- where- Just ghcProg = lookupProgram ghcProgram conf--getLibDir :: Verbosity -> LocalBuildInfo -> IO FilePath-getLibDir verbosity lbi =- dropWhileEndLE isSpace `fmap`- rawSystemProgramStdoutConf verbosity ghcProgram- (withPrograms lbi) ["--print-libdir"]--getLibDir' :: Verbosity -> ConfiguredProgram -> IO FilePath-getLibDir' verbosity ghcProg =- dropWhileEndLE isSpace `fmap`- rawSystemProgramStdout verbosity ghcProg ["--print-libdir"]----- | Return the 'FilePath' to the global GHC package database.-getGlobalPackageDB :: Verbosity -> ConfiguredProgram -> IO FilePath-getGlobalPackageDB verbosity ghcProg =- dropWhileEndLE isSpace `fmap`- rawSystemProgramStdout verbosity ghcProg ["--print-global-package-db"]---- | Return the 'FilePath' to the per-user GHC package database.-getUserPackageDB :: Verbosity -> ConfiguredProgram -> Platform -> IO FilePath-getUserPackageDB _verbosity ghcProg (Platform arch os) = do- -- It's rather annoying that we have to reconstruct this, because ghc- -- hides this information from us otherwise. But for certain use cases- -- like change monitoring it really can't remain hidden.- appdir <- getAppUserDataDirectory "ghc"- return (appdir </> platformAndVersion </> packageConfFileName)- where- platformAndVersion = intercalate "-" [ Internal.showArchString arch- , Internal.showOsString os- , display ghcVersion ]- packageConfFileName- | ghcVersion >= Version [6,12] [] = "package.conf.d"- | otherwise = "package.conf"- Just ghcVersion = programVersion ghcProg--checkPackageDbEnvVar :: IO ()-checkPackageDbEnvVar =- Internal.checkPackageDbEnvVar "GHC" "GHC_PACKAGE_PATH"--checkPackageDbStack :: Compiler -> PackageDBStack -> IO ()-checkPackageDbStack comp = if flagPackageConf implInfo- then checkPackageDbStackPre76- else checkPackageDbStackPost76- where implInfo = ghcVersionImplInfo (compilerVersion comp)--checkPackageDbStackPost76 :: PackageDBStack -> IO ()-checkPackageDbStackPost76 (GlobalPackageDB:rest)- | GlobalPackageDB `notElem` rest = return ()-checkPackageDbStackPost76 rest- | GlobalPackageDB `elem` rest =- die $ "If the global package db is specified, it must be "- ++ "specified first and cannot be specified multiple times"-checkPackageDbStackPost76 _ = return ()--checkPackageDbStackPre76 :: PackageDBStack -> IO ()-checkPackageDbStackPre76 (GlobalPackageDB:rest)- | GlobalPackageDB `notElem` rest = return ()-checkPackageDbStackPre76 rest- | GlobalPackageDB `notElem` rest =- die $ "With current ghc versions the global package db is always used "- ++ "and must be listed first. This ghc limitation is lifted in GHC 7.6,"- ++ "see http://hackage.haskell.org/trac/ghc/ticket/5977"-checkPackageDbStackPre76 _ =- die $ "If the global package db is specified, it must be "- ++ "specified first and cannot be specified multiple times"---- GHC < 6.10 put "$topdir/include/mingw" in rts's installDirs. This--- breaks when you want to use a different gcc, so we need to filter--- it out.-removeMingwIncludeDir :: InstalledPackageInfo -> InstalledPackageInfo-removeMingwIncludeDir pkg =- let ids = InstalledPackageInfo.includeDirs pkg- ids' = filter (not . ("mingw" `isSuffixOf`)) ids- in pkg { InstalledPackageInfo.includeDirs = ids' }---- | Get the packages from specific PackageDBs, not cumulative.----getInstalledPackages' :: Verbosity -> [PackageDB] -> ProgramConfiguration- -> IO [(PackageDB, [InstalledPackageInfo])]-getInstalledPackages' verbosity packagedbs conf- | ghcVersion >= Version [6,9] [] =- sequence- [ do pkgs <- HcPkg.dump (hcPkgInfo conf) verbosity packagedb- return (packagedb, pkgs)- | packagedb <- packagedbs ]-- where- Just ghcProg = lookupProgram ghcProgram conf- Just ghcVersion = programVersion ghcProg--getInstalledPackages' verbosity packagedbs conf = do- str <- rawSystemProgramStdoutConf verbosity ghcPkgProgram conf ["list"]- let pkgFiles = [ init line | line <- lines str, last line == ':' ]- dbFile packagedb = case (packagedb, pkgFiles) of- (GlobalPackageDB, global:_) -> return $ Just global- (UserPackageDB, _global:user:_) -> return $ Just user- (UserPackageDB, _global:_) -> return $ Nothing- (SpecificPackageDB specific, _) -> return $ Just specific- _ -> die "cannot read ghc-pkg package listing"- pkgFiles' <- mapM dbFile packagedbs- sequence [ withFileContents file $ \content -> do- pkgs <- readPackages file content- return (db, pkgs)- | (db , Just file) <- zip packagedbs pkgFiles' ]- where- -- Depending on the version of ghc we use a different type's Read- -- instance to parse the package file and then convert.- -- It's a bit yuck. But that's what we get for using Read/Show.- readPackages- | ghcVersion >= Version [6,4,2] []- = \file content -> case reads content of- [(pkgs, _)] -> return (map IPI642.toCurrent pkgs)- _ -> failToRead file- -- We dropped support for 6.4.2 and earlier.- | otherwise- = \file _ -> failToRead file- Just ghcProg = lookupProgram ghcProgram conf- Just ghcVersion = programVersion ghcProg- failToRead file = die $ "cannot read ghc package database " ++ file--getInstalledPackagesMonitorFiles :: Verbosity -> Platform- -> ProgramConfiguration- -> [PackageDB]- -> IO [FilePath]-getInstalledPackagesMonitorFiles verbosity platform progdb =- mapM getPackageDBPath- where- getPackageDBPath :: PackageDB -> IO FilePath- getPackageDBPath GlobalPackageDB =- selectMonitorFile =<< getGlobalPackageDB verbosity ghcProg-- getPackageDBPath UserPackageDB =- selectMonitorFile =<< getUserPackageDB verbosity ghcProg platform-- getPackageDBPath (SpecificPackageDB path) = selectMonitorFile path-- -- GHC has old style file dbs, and new style directory dbs.- -- Note that for dir style dbs, we only need to monitor the cache file, not- -- the whole directory. The ghc program itself only reads the cache file- -- so it's safe to only monitor this one file.- selectMonitorFile path = do- isFileStyle <- doesFileExist path- if isFileStyle then return path- else return (path </> "package.cache")-- Just ghcProg = lookupProgram ghcProgram progdb----- -------------------------------------------------------------------------------- Building---- | Build a library with GHC.----buildLib, replLib :: Verbosity -> Cabal.Flag (Maybe Int)- -> PackageDescription -> LocalBuildInfo- -> Library -> ComponentLocalBuildInfo -> IO ()-buildLib = buildOrReplLib False-replLib = buildOrReplLib True--buildOrReplLib :: Bool -> Verbosity -> Cabal.Flag (Maybe Int)- -> PackageDescription -> LocalBuildInfo- -> Library -> ComponentLocalBuildInfo -> IO ()-buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do- let libName = componentUnitId clbi- libTargetDir- | componentUnitId clbi == localUnitId lbi = buildDir lbi- | otherwise = buildDir lbi </> display libName- whenVanillaLib forceVanilla =- when (forceVanilla || withVanillaLib lbi)- whenProfLib = when (withProfLib lbi)- whenSharedLib forceShared =- when (forceShared || withSharedLib lbi)- whenGHCiLib = when (withGHCiLib lbi && withVanillaLib lbi)- ifReplLib = when forRepl- comp = compiler lbi- ghcVersion = compilerVersion comp- implInfo = getImplInfo comp- platform@(Platform _hostArch hostOS) = hostPlatform lbi-- (ghcProg, _) <- requireProgram verbosity ghcProgram (withPrograms lbi)- let runGhcProg = runGHC verbosity ghcProg comp platform-- libBi <- hackThreadedFlag verbosity- comp (withProfLib lbi) (libBuildInfo lib)-- let isGhcDynamic = isDynamic comp- dynamicTooSupported = supportsDynamicToo comp- doingTH = EnableExtension TemplateHaskell `elem` allExtensions libBi- forceVanillaLib = doingTH && not isGhcDynamic- forceSharedLib = doingTH && isGhcDynamic- -- TH always needs default libs, even when building for profiling-- -- Determine if program coverage should be enabled and if so, what- -- '-hpcdir' should be.- let isCoverageEnabled = fromFlag $ configCoverage $ configFlags lbi- -- Component name. Not 'libName' because that has the "HS" prefix- -- that GHC gives Haskell libraries.- cname = display $ PD.package $ localPkgDescr lbi- distPref = fromFlag $ configDistPref $ configFlags lbi- hpcdir way- | forRepl = Mon.mempty -- HPC is not supported in ghci- | isCoverageEnabled = toFlag $ Hpc.mixDir distPref way cname- | otherwise = mempty-- createDirectoryIfMissingVerbose verbosity True libTargetDir- -- TODO: do we need to put hs-boot files into place for mutually recursive- -- modules?- let cObjs = map (`replaceExtension` objExtension) (cSources libBi)- baseOpts = componentGhcOptions verbosity lbi libBi clbi libTargetDir- vanillaOpts = baseOpts `mappend` mempty {- ghcOptMode = toFlag GhcModeMake,- ghcOptNumJobs = numJobs,- ghcOptInputModules = toNubListR $ libModules lib,- ghcOptHPCDir = hpcdir Hpc.Vanilla- }-- profOpts = vanillaOpts `mappend` mempty {- ghcOptProfilingMode = toFlag True,- ghcOptProfilingAuto = Internal.profDetailLevelFlag True- (withProfLibDetail lbi),- ghcOptHiSuffix = toFlag "p_hi",- ghcOptObjSuffix = toFlag "p_o",- ghcOptExtra = toNubListR $ hcProfOptions GHC libBi,- ghcOptHPCDir = hpcdir Hpc.Prof- }-- sharedOpts = vanillaOpts `mappend` mempty {- ghcOptDynLinkMode = toFlag GhcDynamicOnly,- ghcOptFPic = toFlag True,- ghcOptHiSuffix = toFlag "dyn_hi",- ghcOptObjSuffix = toFlag "dyn_o",- ghcOptExtra = toNubListR $ hcSharedOptions GHC libBi,- ghcOptHPCDir = hpcdir Hpc.Dyn- }- linkerOpts = mempty {- ghcOptLinkOptions = toNubListR $ PD.ldOptions libBi,- ghcOptLinkLibs = toNubListR $ extraLibs libBi,- ghcOptLinkLibPath = toNubListR $ extraLibDirs libBi,- ghcOptLinkFrameworks = toNubListR $- PD.frameworks libBi,- ghcOptLinkFrameworkDirs = toNubListR $- PD.extraFrameworkDirs libBi,- ghcOptInputFiles = toNubListR- [libTargetDir </> x | x <- cObjs]- }- replOpts = vanillaOpts {- ghcOptExtra = overNubListR- Internal.filterGhciFlags $- ghcOptExtra vanillaOpts,- ghcOptNumJobs = mempty- }- `mappend` linkerOpts- `mappend` mempty {- ghcOptMode = toFlag GhcModeInteractive,- ghcOptOptimisation = toFlag GhcNoOptimisation- }-- vanillaSharedOpts = vanillaOpts `mappend` mempty {- ghcOptDynLinkMode = toFlag GhcStaticAndDynamic,- ghcOptDynHiSuffix = toFlag "dyn_hi",- ghcOptDynObjSuffix = toFlag "dyn_o",- ghcOptHPCDir = hpcdir Hpc.Dyn- }-- unless (forRepl || null (libModules lib)) $- do let vanilla = whenVanillaLib forceVanillaLib (runGhcProg vanillaOpts)- shared = whenSharedLib forceSharedLib (runGhcProg sharedOpts)- useDynToo = dynamicTooSupported &&- (forceVanillaLib || withVanillaLib lbi) &&- (forceSharedLib || withSharedLib lbi) &&- null (hcSharedOptions GHC libBi)- if useDynToo- then do- runGhcProg vanillaSharedOpts- case (hpcdir Hpc.Dyn, hpcdir Hpc.Vanilla) of- (Cabal.Flag dynDir, Cabal.Flag vanillaDir) ->- -- When the vanilla and shared library builds are done- -- in one pass, only one set of HPC module interfaces- -- are generated. This set should suffice for both- -- static and dynamically linked executables. We copy- -- the modules interfaces so they are available under- -- both ways.- copyDirectoryRecursive verbosity dynDir vanillaDir- _ -> return ()- else if isGhcDynamic- then do shared; vanilla- else do vanilla; shared- whenProfLib (runGhcProg profOpts)-- -- build any C sources- unless (null (cSources libBi)) $ do- info verbosity "Building C Sources..."- sequence_- [ do let baseCcOpts = Internal.componentCcGhcOptions verbosity implInfo- lbi libBi clbi libTargetDir filename- vanillaCcOpts = if isGhcDynamic- -- Dynamic GHC requires C sources to be built- -- with -fPIC for REPL to work. See #2207.- then baseCcOpts { ghcOptFPic = toFlag True }- else baseCcOpts- profCcOpts = vanillaCcOpts `mappend` mempty {- ghcOptProfilingMode = toFlag True,- ghcOptObjSuffix = toFlag "p_o"- }- sharedCcOpts = vanillaCcOpts `mappend` mempty {- ghcOptFPic = toFlag True,- ghcOptDynLinkMode = toFlag GhcDynamicOnly,- ghcOptObjSuffix = toFlag "dyn_o"- }- odir = fromFlag (ghcOptObjDir vanillaCcOpts)- createDirectoryIfMissingVerbose verbosity True odir- let runGhcProgIfNeeded ccOpts = do- needsRecomp <- checkNeedsRecompilation filename ccOpts- when needsRecomp $ runGhcProg ccOpts- runGhcProgIfNeeded vanillaCcOpts- unless forRepl $- whenSharedLib forceSharedLib (runGhcProgIfNeeded sharedCcOpts)- unless forRepl $ whenProfLib (runGhcProgIfNeeded profCcOpts)- | filename <- cSources libBi]-- -- TODO: problem here is we need the .c files built first, so we can load them- -- with ghci, but .c files can depend on .h files generated by ghc by ffi- -- exports.-- ifReplLib $ do- when (null (libModules lib)) $ warn verbosity "No exposed modules"- ifReplLib (runGhcProg replOpts)-- -- link:- unless forRepl $ do- info verbosity "Linking..."- let cProfObjs = map (`replaceExtension` ("p_" ++ objExtension))- (cSources libBi)- cSharedObjs = map (`replaceExtension` ("dyn_" ++ objExtension))- (cSources libBi)- cid = compilerId (compiler lbi)- vanillaLibFilePath = libTargetDir </> mkLibName libName- profileLibFilePath = libTargetDir </> mkProfLibName libName- sharedLibFilePath = libTargetDir </> mkSharedLibName cid libName- ghciLibFilePath = libTargetDir </> Internal.mkGHCiLibName libName- libInstallPath = libdir $ absoluteInstallDirs pkg_descr lbi NoCopyDest- sharedLibInstallPath = libInstallPath </> mkSharedLibName cid libName-- stubObjs <- catMaybes <$> sequence- [ findFileWithExtension [objExtension] [libTargetDir]- (ModuleName.toFilePath x ++"_stub")- | ghcVersion < Version [7,2] [] -- ghc-7.2+ does not make _stub.o files- , x <- libModules lib ]- stubProfObjs <- catMaybes <$> sequence- [ findFileWithExtension ["p_" ++ objExtension] [libTargetDir]- (ModuleName.toFilePath x ++"_stub")- | ghcVersion < Version [7,2] [] -- ghc-7.2+ does not make _stub.o files- , x <- libModules lib ]- stubSharedObjs <- catMaybes <$> sequence- [ findFileWithExtension ["dyn_" ++ objExtension] [libTargetDir]- (ModuleName.toFilePath x ++"_stub")- | ghcVersion < Version [7,2] [] -- ghc-7.2+ does not make _stub.o files- , x <- libModules lib ]-- hObjs <- Internal.getHaskellObjects implInfo lib lbi- libTargetDir objExtension True- hProfObjs <-- if withProfLib lbi- then Internal.getHaskellObjects implInfo lib lbi- libTargetDir ("p_" ++ objExtension) True- else return []- hSharedObjs <-- if withSharedLib lbi- then Internal.getHaskellObjects implInfo lib lbi- libTargetDir ("dyn_" ++ objExtension) False- else return []-- unless (null hObjs && null cObjs && null stubObjs) $ do- rpaths <- getRPaths lbi clbi-- let staticObjectFiles =- hObjs- ++ map (libTargetDir </>) cObjs- ++ stubObjs- profObjectFiles =- hProfObjs- ++ map (libTargetDir </>) cProfObjs- ++ stubProfObjs- ghciObjFiles =- hObjs- ++ map (libTargetDir </>) cObjs- ++ stubObjs- dynamicObjectFiles =- hSharedObjs- ++ map (libTargetDir </>) cSharedObjs- ++ stubSharedObjs- -- After the relocation lib is created we invoke ghc -shared- -- with the dependencies spelled out as -package arguments- -- and ghc invokes the linker with the proper library paths- ghcSharedLinkArgs =- mempty {- ghcOptShared = toFlag True,- ghcOptDynLinkMode = toFlag GhcDynamicOnly,- ghcOptInputFiles = toNubListR dynamicObjectFiles,- ghcOptOutputFile = toFlag sharedLibFilePath,- ghcOptExtra = toNubListR $- hcSharedOptions GHC libBi,- -- For dynamic libs, Mac OS/X needs to know the install location- -- at build time. This only applies to GHC < 7.8 - see the- -- discussion in #1660.- ghcOptDylibName = if hostOS == OSX- && ghcVersion < Version [7,8] []- then toFlag sharedLibInstallPath- else mempty,- ghcOptHideAllPackages = toFlag True,- ghcOptNoAutoLinkPackages = toFlag True,- ghcOptPackageDBs = withPackageDB lbi,- ghcOptPackages = toNubListR $- Internal.mkGhcOptPackages clbi ,- ghcOptLinkLibs = toNubListR $ extraLibs libBi,- ghcOptLinkLibPath = toNubListR $ extraLibDirs libBi,- ghcOptLinkFrameworks = toNubListR $ PD.frameworks libBi,- ghcOptLinkFrameworkDirs =- toNubListR $ PD.extraFrameworkDirs libBi,- ghcOptRPaths = rpaths- }-- info verbosity (show (ghcOptPackages ghcSharedLinkArgs))-- whenVanillaLib False $- Ar.createArLibArchive verbosity lbi vanillaLibFilePath staticObjectFiles-- whenProfLib $- Ar.createArLibArchive verbosity lbi profileLibFilePath profObjectFiles-- whenGHCiLib $ do- (ldProg, _) <- requireProgram verbosity ldProgram (withPrograms lbi)- Ld.combineObjectFiles verbosity ldProg- ghciLibFilePath ghciObjFiles-- whenSharedLib False $- runGhcProg ghcSharedLinkArgs---- | Start a REPL without loading any source files.-startInterpreter :: Verbosity -> ProgramConfiguration -> Compiler -> Platform- -> PackageDBStack -> IO ()-startInterpreter verbosity conf comp platform packageDBs = do- let replOpts = mempty {- ghcOptMode = toFlag GhcModeInteractive,- ghcOptPackageDBs = packageDBs- }- checkPackageDbStack comp packageDBs- (ghcProg, _) <- requireProgram verbosity ghcProgram conf- runGHC verbosity ghcProg comp platform replOpts---- | Build an executable with GHC.----buildExe, replExe :: Verbosity -> Cabal.Flag (Maybe Int)- -> PackageDescription -> LocalBuildInfo- -> Executable -> ComponentLocalBuildInfo -> IO ()-buildExe = buildOrReplExe False-replExe = buildOrReplExe True--buildOrReplExe :: Bool -> Verbosity -> Cabal.Flag (Maybe Int)- -> PackageDescription -> LocalBuildInfo- -> Executable -> ComponentLocalBuildInfo -> IO ()-buildOrReplExe forRepl verbosity numJobs _pkg_descr lbi- exe@Executable { exeName = exeName', modulePath = modPath } clbi = do-- (ghcProg, _) <- requireProgram verbosity ghcProgram (withPrograms lbi)- let comp = compiler lbi- platform = hostPlatform lbi- implInfo = getImplInfo comp- runGhcProg = runGHC verbosity ghcProg comp platform-- exeBi <- hackThreadedFlag verbosity- comp (withProfExe lbi) (buildInfo exe)-- -- exeNameReal, the name that GHC really uses (with .exe on Windows)- let exeNameReal = exeName' <.>- (if takeExtension exeName' /= ('.':exeExtension)- then exeExtension- else "")-- let targetDir = buildDir lbi </> exeName'- let exeDir = targetDir </> (exeName' ++ "-tmp")- createDirectoryIfMissingVerbose verbosity True targetDir- createDirectoryIfMissingVerbose verbosity True exeDir- -- TODO: do we need to put hs-boot files into place for mutually recursive- -- modules? FIX: what about exeName.hi-boot?-- -- Determine if program coverage should be enabled and if so, what- -- '-hpcdir' should be.- let isCoverageEnabled = fromFlag $ configCoverage $ configFlags lbi- distPref = fromFlag $ configDistPref $ configFlags lbi- hpcdir way- | forRepl = mempty -- HPC is not supported in ghci- | isCoverageEnabled = toFlag $ Hpc.mixDir distPref way exeName'- | otherwise = mempty-- -- build executables-- srcMainFile <- findFile (exeDir : hsSourceDirs exeBi) modPath- rpaths <- getRPaths lbi clbi-- let isGhcDynamic = isDynamic comp- dynamicTooSupported = supportsDynamicToo comp- isHaskellMain = elem (takeExtension srcMainFile) [".hs", ".lhs"]- cSrcs = cSources exeBi ++ [srcMainFile | not isHaskellMain]- cObjs = map (`replaceExtension` objExtension) cSrcs- baseOpts = (componentGhcOptions verbosity lbi exeBi clbi exeDir)- `mappend` mempty {- ghcOptMode = toFlag GhcModeMake,- ghcOptInputFiles = toNubListR- [ srcMainFile | isHaskellMain],- ghcOptInputModules = toNubListR- [ m | not isHaskellMain, m <- exeModules exe]- }- staticOpts = baseOpts `mappend` mempty {- ghcOptDynLinkMode = toFlag GhcStaticOnly,- ghcOptHPCDir = hpcdir Hpc.Vanilla- }- profOpts = baseOpts `mappend` mempty {- ghcOptProfilingMode = toFlag True,- ghcOptProfilingAuto = Internal.profDetailLevelFlag False- (withProfExeDetail lbi),- ghcOptHiSuffix = toFlag "p_hi",- ghcOptObjSuffix = toFlag "p_o",- ghcOptExtra = toNubListR- (hcProfOptions GHC exeBi),- ghcOptHPCDir = hpcdir Hpc.Prof- }- dynOpts = baseOpts `mappend` mempty {- ghcOptDynLinkMode = toFlag GhcDynamicOnly,- ghcOptHiSuffix = toFlag "dyn_hi",- ghcOptObjSuffix = toFlag "dyn_o",- ghcOptExtra = toNubListR $- hcSharedOptions GHC exeBi,- ghcOptHPCDir = hpcdir Hpc.Dyn- }- dynTooOpts = staticOpts `mappend` mempty {- ghcOptDynLinkMode = toFlag GhcStaticAndDynamic,- ghcOptDynHiSuffix = toFlag "dyn_hi",- ghcOptDynObjSuffix = toFlag "dyn_o",- ghcOptHPCDir = hpcdir Hpc.Dyn- }- linkerOpts = mempty {- ghcOptLinkOptions = toNubListR $ PD.ldOptions exeBi,- ghcOptLinkLibs = toNubListR $ extraLibs exeBi,- ghcOptLinkLibPath = toNubListR $ extraLibDirs exeBi,- ghcOptLinkFrameworks = toNubListR $- PD.frameworks exeBi,- ghcOptLinkFrameworkDirs = toNubListR $- PD.extraFrameworkDirs exeBi,- ghcOptInputFiles = toNubListR- [exeDir </> x | x <- cObjs]- }- dynLinkerOpts = mempty {- ghcOptRPaths = rpaths- }- replOpts = baseOpts {- ghcOptExtra = overNubListR- Internal.filterGhciFlags- (ghcOptExtra baseOpts)- }- -- For a normal compile we do separate invocations of ghc for- -- compiling as for linking. But for repl we have to do just- -- the one invocation, so that one has to include all the- -- linker stuff too, like -l flags and any .o files from C- -- files etc.- `mappend` linkerOpts- `mappend` mempty {- ghcOptMode = toFlag GhcModeInteractive,- ghcOptOptimisation = toFlag GhcNoOptimisation- }- commonOpts | withProfExe lbi = profOpts- | withDynExe lbi = dynOpts- | otherwise = staticOpts- compileOpts | useDynToo = dynTooOpts- | otherwise = commonOpts- withStaticExe = (not $ withProfExe lbi) && (not $ withDynExe lbi)-- -- For building exe's that use TH with -prof or -dynamic we actually have- -- to build twice, once without -prof/-dynamic and then again with- -- -prof/-dynamic. This is because the code that TH needs to run at- -- compile time needs to be the vanilla ABI so it can be loaded up and run- -- by the compiler.- -- With dynamic-by-default GHC the TH object files loaded at compile-time- -- need to be .dyn_o instead of .o.- doingTH = EnableExtension TemplateHaskell `elem` allExtensions exeBi- -- Should we use -dynamic-too instead of compiling twice?- useDynToo = dynamicTooSupported && isGhcDynamic- && doingTH && withStaticExe- && null (hcSharedOptions GHC exeBi)- compileTHOpts | isGhcDynamic = dynOpts- | otherwise = staticOpts- compileForTH- | forRepl = False- | useDynToo = False- | isGhcDynamic = doingTH && (withProfExe lbi || withStaticExe)- | otherwise = doingTH && (withProfExe lbi || withDynExe lbi)-- linkOpts =- commonOpts `mappend`- linkerOpts `mappend`- mempty { ghcOptLinkNoHsMain = toFlag (not isHaskellMain) } `mappend`- (if withDynExe lbi then dynLinkerOpts else mempty)-- -- Build static/dynamic object files for TH, if needed.- when compileForTH $- runGhcProg compileTHOpts { ghcOptNoLink = toFlag True- , ghcOptNumJobs = numJobs }-- unless forRepl $- runGhcProg compileOpts { ghcOptNoLink = toFlag True- , ghcOptNumJobs = numJobs }-- -- build any C sources- unless (null cSrcs) $ do- info verbosity "Building C Sources..."- sequence_- [ do let opts = (Internal.componentCcGhcOptions verbosity implInfo lbi exeBi- clbi exeDir filename) `mappend` mempty {- ghcOptDynLinkMode = toFlag (if withDynExe lbi- then GhcDynamicOnly- else GhcStaticOnly),- ghcOptProfilingMode = toFlag (withProfExe lbi)- }- odir = fromFlag (ghcOptObjDir opts)- createDirectoryIfMissingVerbose verbosity True odir- needsRecomp <- checkNeedsRecompilation filename opts- when needsRecomp $- runGhcProg opts- | filename <- cSrcs ]-- -- TODO: problem here is we need the .c files built first, so we can load them- -- with ghci, but .c files can depend on .h files generated by ghc by ffi- -- exports.- when forRepl $ runGhcProg replOpts-- -- link:- unless forRepl $ do- info verbosity "Linking..."- runGhcProg linkOpts { ghcOptOutputFile = toFlag (targetDir </> exeNameReal) }---- | Returns True if the modification date of the given source file is newer than--- the object file we last compiled for it, or if no object file exists yet.-checkNeedsRecompilation :: FilePath -> GhcOptions -> IO Bool-checkNeedsRecompilation filename opts = filename `moreRecentFile` oname- where oname = getObjectFileName filename opts---- | Finds the object file name of the given source file-getObjectFileName :: FilePath -> GhcOptions -> FilePath-getObjectFileName filename opts = oname- where odir = fromFlag (ghcOptObjDir opts)- oext = fromFlagOrDefault "o" (ghcOptObjSuffix opts)- oname = odir </> replaceExtension filename oext---- | Calculate the RPATHs for the component we are building.------ Calculates relative RPATHs when 'relocatable' is set.-getRPaths :: LocalBuildInfo- -> ComponentLocalBuildInfo -- ^ Component we are building- -> IO (NubListR FilePath)-getRPaths lbi clbi | supportRPaths hostOS = do- libraryPaths <- depLibraryPaths False (relocatable lbi) lbi clbi- let hostPref = case hostOS of- OSX -> "@loader_path"- _ -> "$ORIGIN"- relPath p = if isRelative p then hostPref </> p else p- rpaths = toNubListR (map relPath libraryPaths)- return rpaths- where- (Platform _ hostOS) = hostPlatform lbi-- -- The list of RPath-supported operating systems below reflects the- -- platforms on which Cabal's RPATH handling is tested. It does _NOT_- -- reflect whether the OS supports RPATH.-- -- E.g. when this comment was written, the *BSD operating systems were- -- untested with regards to Cabal RPATH handling, and were hence set to- -- 'False', while those operating systems themselves do support RPATH.- supportRPaths Linux = True- supportRPaths Windows = False- supportRPaths OSX = True- supportRPaths FreeBSD = False- supportRPaths OpenBSD = False- supportRPaths NetBSD = False- supportRPaths DragonFly = False- supportRPaths Solaris = False- supportRPaths AIX = False- supportRPaths HPUX = False- supportRPaths IRIX = False- supportRPaths HaLVM = False- supportRPaths IOS = False- supportRPaths Android = False- supportRPaths Ghcjs = False- supportRPaths Hurd = False- supportRPaths (OtherOS _) = False- -- Do _not_ add a default case so that we get a warning here when a new OS- -- is added.--getRPaths _ _ = return mempty---- | Filter the "-threaded" flag when profiling as it does not--- work with ghc-6.8 and older.-hackThreadedFlag :: Verbosity -> Compiler -> Bool -> BuildInfo -> IO BuildInfo-hackThreadedFlag verbosity comp prof bi- | not mustFilterThreaded = return bi- | otherwise = do- warn verbosity $ "The ghc flag '-threaded' is not compatible with "- ++ "profiling in ghc-6.8 and older. It will be disabled."- return bi { options = filterHcOptions (/= "-threaded") (options bi) }- where- mustFilterThreaded = prof && compilerVersion comp < Version [6, 10] []- && "-threaded" `elem` hcOptions GHC bi- filterHcOptions p hcoptss =- [ (hc, if hc == GHC then filter p opts else opts)- | (hc, opts) <- hcoptss ]----- | Extracts a String representing a hash of the ABI of a built--- library. It can fail if the library has not yet been built.----libAbiHash :: Verbosity -> PackageDescription -> LocalBuildInfo- -> Library -> ComponentLocalBuildInfo -> IO String-libAbiHash verbosity _pkg_descr lbi lib clbi = do- libBi <- hackThreadedFlag verbosity- (compiler lbi) (withProfLib lbi) (libBuildInfo lib)- let- comp = compiler lbi- platform = hostPlatform lbi- vanillaArgs =- (componentGhcOptions verbosity lbi libBi clbi (buildDir lbi))- `mappend` mempty {- ghcOptMode = toFlag GhcModeAbiHash,- ghcOptInputModules = toNubListR $ exposedModules lib- }- sharedArgs = vanillaArgs `mappend` mempty {- ghcOptDynLinkMode = toFlag GhcDynamicOnly,- ghcOptFPic = toFlag True,- ghcOptHiSuffix = toFlag "dyn_hi",- ghcOptObjSuffix = toFlag "dyn_o",- ghcOptExtra = toNubListR $ hcSharedOptions GHC libBi- }- profArgs = vanillaArgs `mappend` mempty {- ghcOptProfilingMode = toFlag True,- ghcOptProfilingAuto = Internal.profDetailLevelFlag True- (withProfLibDetail lbi),- ghcOptHiSuffix = toFlag "p_hi",- ghcOptObjSuffix = toFlag "p_o",- ghcOptExtra = toNubListR $ hcProfOptions GHC libBi- }- ghcArgs- | withVanillaLib lbi = vanillaArgs- | withSharedLib lbi = sharedArgs- | withProfLib lbi = profArgs- | otherwise = error "libAbiHash: Can't find an enabled library way"-- (ghcProg, _) <- requireProgram verbosity ghcProgram (withPrograms lbi)- hash <- getProgramInvocationOutput verbosity- (ghcInvocation ghcProg comp platform ghcArgs)- return (takeWhile (not . isSpace) hash)--componentGhcOptions :: Verbosity -> LocalBuildInfo- -> BuildInfo -> ComponentLocalBuildInfo -> FilePath- -> GhcOptions-componentGhcOptions = Internal.componentGhcOptions--componentCcGhcOptions :: Verbosity -> LocalBuildInfo- -> BuildInfo -> ComponentLocalBuildInfo- -> FilePath -> FilePath- -> GhcOptions-componentCcGhcOptions verbosity lbi =- Internal.componentCcGhcOptions verbosity implInfo lbi- where- comp = compiler lbi- implInfo = getImplInfo comp---- -------------------------------------------------------------------------------- Installing---- |Install executables for GHC.-installExe :: Verbosity- -> LocalBuildInfo- -> InstallDirs FilePath -- ^Where to copy the files to- -> FilePath -- ^Build location- -> (FilePath, FilePath) -- ^Executable (prefix,suffix)- -> PackageDescription- -> Executable- -> IO ()-installExe verbosity lbi installDirs buildPref- (progprefix, progsuffix) _pkg exe = do- let binDir = bindir installDirs- createDirectoryIfMissingVerbose verbosity True binDir- let exeFileName = exeName exe <.> exeExtension- fixedExeBaseName = progprefix ++ exeName exe ++ progsuffix- installBinary dest = do- installExecutableFile verbosity- (buildPref </> exeName exe </> exeFileName)- (dest <.> exeExtension)- when (stripExes lbi) $- Strip.stripExe verbosity (hostPlatform lbi) (withPrograms lbi)- (dest <.> exeExtension)- installBinary (binDir </> fixedExeBaseName)---- |Install for ghc, .hi, .a and, if --with-ghci given, .o-installLib :: Verbosity- -> LocalBuildInfo- -> FilePath -- ^install location- -> FilePath -- ^install location for dynamic libraries- -> FilePath -- ^Build location- -> PackageDescription- -> Library- -> ComponentLocalBuildInfo- -> IO ()-installLib verbosity lbi targetDir dynlibTargetDir builtDir _pkg lib clbi = do- -- copy .hi files over:- whenVanilla $ copyModuleFiles "hi"- whenProf $ copyModuleFiles "p_hi"- whenShared $ copyModuleFiles "dyn_hi"-- -- copy the built library files over:- whenVanilla $ installOrdinary builtDir targetDir vanillaLibName- whenProf $ installOrdinary builtDir targetDir profileLibName- whenGHCi $ installOrdinary builtDir targetDir ghciLibName- whenShared $ installShared builtDir dynlibTargetDir sharedLibName-- where- install isShared srcDir dstDir name = do- let src = srcDir </> name- dst = dstDir </> name- createDirectoryIfMissingVerbose verbosity True dstDir-- if isShared- then installExecutableFile verbosity src dst- else installOrdinaryFile verbosity src dst-- when (stripLibs lbi) $ Strip.stripLib verbosity- (hostPlatform lbi) (withPrograms lbi) dst-- installOrdinary = install False- installShared = install True-- copyModuleFiles ext =- findModuleFiles [builtDir] [ext] (libModules lib)- >>= installOrdinaryFiles verbosity targetDir-- cid = compilerId (compiler lbi)- libName = componentUnitId clbi- vanillaLibName = mkLibName libName- profileLibName = mkProfLibName libName- ghciLibName = Internal.mkGHCiLibName libName- sharedLibName = (mkSharedLibName cid) libName-- hasLib = not $ null (libModules lib)- && null (cSources (libBuildInfo lib))- whenVanilla = when (hasLib && withVanillaLib lbi)- whenProf = when (hasLib && withProfLib lbi)- whenGHCi = when (hasLib && withGHCiLib lbi)- whenShared = when (hasLib && withSharedLib lbi)---- -------------------------------------------------------------------------------- Registering--hcPkgInfo :: ProgramConfiguration -> HcPkg.HcPkgInfo-hcPkgInfo conf = HcPkg.HcPkgInfo { HcPkg.hcPkgProgram = ghcPkgProg- , HcPkg.noPkgDbStack = v < [6,9]- , HcPkg.noVerboseFlag = v < [6,11]- , HcPkg.flagPackageConf = v < [7,5]- , HcPkg.supportsDirDbs = v >= [6,8]- , HcPkg.requiresDirDbs = v >= [7,10]- , HcPkg.nativeMultiInstance = v >= [7,10]- , HcPkg.recacheMultiInstance = v >= [6,12]- }- where- v = versionBranch ver- Just ghcPkgProg = lookupProgram ghcPkgProgram conf- Just ver = programVersion ghcPkgProg--registerPackage- :: Verbosity- -> ProgramConfiguration- -> Bool- -> PackageDBStack- -> InstalledPackageInfo- -> IO ()-registerPackage verbosity progdb multiInstance packageDbs installedPkgInfo- | multiInstance- = HcPkg.registerMultiInstance (hcPkgInfo progdb) verbosity- packageDbs installedPkgInfo-- | otherwise- = HcPkg.reregister (hcPkgInfo progdb) verbosity- packageDbs (Right installedPkgInfo)--pkgRoot :: Verbosity -> LocalBuildInfo -> PackageDB -> IO FilePath-pkgRoot verbosity lbi = pkgRoot'- where- pkgRoot' GlobalPackageDB =- let Just ghcProg = lookupProgram ghcProgram (withPrograms lbi)- in fmap takeDirectory (getGlobalPackageDB verbosity ghcProg)- pkgRoot' UserPackageDB = do- appDir <- getAppUserDataDirectory "ghc"- let ver = compilerVersion (compiler lbi)- subdir = System.Info.arch ++ '-':System.Info.os- ++ '-':showVersion ver- rootDir = appDir </> subdir- -- We must create the root directory for the user package database if it- -- does not yet exists. Otherwise '${pkgroot}' will resolve to a- -- directory at the time of 'ghc-pkg register', and registration will- -- fail.- createDirectoryIfMissing True rootDir- return rootDir- pkgRoot' (SpecificPackageDB fp) = return (takeDirectory fp)---- -------------------------------------------------------------------------------- Utils--isDynamic :: Compiler -> Bool-isDynamic = Internal.ghcLookupProperty "GHC Dynamic"--supportsDynamicToo :: Compiler -> Bool-supportsDynamicToo = Internal.ghcLookupProperty "Support dynamic-too"+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE CPP #-}++-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Simple.GHC+-- Copyright : Isaac Jones 2003-2007+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+-- This is a fairly large module. It contains most of the GHC-specific code for+-- configuring, building and installing packages. It also exports a function+-- for finding out what packages are already installed. Configuring involves+-- finding the @ghc@ and @ghc-pkg@ programs, finding what language extensions+-- this version of ghc supports and returning a 'Compiler' value.+--+-- 'getInstalledPackages' involves calling the @ghc-pkg@ program to find out+-- what packages are installed.+--+-- Building is somewhat complex as there is quite a bit of information to take+-- into account. We have to build libs and programs, possibly for profiling and+-- shared libs. We have to support building libraries that will be usable by+-- GHCi and also ghc's @-split-objs@ feature. We have to compile any C files+-- using ghc. Linking, especially for @split-objs@ is remarkably complex,+-- partly because there tend to be 1,000's of @.o@ files and this can often be+-- more than we can pass to the @ld@ or @ar@ programs in one go.+--+-- Installing for libs and exes involves finding the right files and copying+-- them to the right places. One of the more tricky things about this module is+-- remembering the layout of files in the build directory (which is not+-- explicitly documented) and thus what search dirs are used for various kinds+-- of files.++module Distribution.Simple.GHC (+ getGhcInfo,+ configure,+ getInstalledPackages,+ getInstalledPackagesMonitorFiles,+ getPackageDBContents,+ buildLib, buildFLib, buildExe,+ replLib, replFLib, replExe,+ startInterpreter,+ installLib, installFLib, installExe,+ libAbiHash,+ hcPkgInfo,+ registerPackage,+ componentGhcOptions,+ componentCcGhcOptions,+ getLibDir,+ isDynamic,+ getGlobalPackageDB,+ pkgRoot,+ -- * Constructing GHC environment files+ Internal.GhcEnvironmentFileEntry(..),+ Internal.simpleGhcEnvironmentFile,+ Internal.writeGhcEnvironmentFile,+ -- * Version-specific implementation quirks+ getImplInfo,+ GhcImplInfo(..)+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import qualified Distribution.Simple.GHC.IPI642 as IPI642+import qualified Distribution.Simple.GHC.Internal as Internal+import Distribution.Simple.GHC.ImplInfo+import Distribution.PackageDescription.Utils (cabalBug)+import Distribution.PackageDescription as PD+import Distribution.InstalledPackageInfo (InstalledPackageInfo)+import qualified Distribution.InstalledPackageInfo as InstalledPackageInfo+import Distribution.Simple.PackageIndex (InstalledPackageIndex)+import qualified Distribution.Simple.PackageIndex as PackageIndex+import Distribution.Simple.LocalBuildInfo+import Distribution.Types.ComponentLocalBuildInfo+import qualified Distribution.Simple.Hpc as Hpc+import Distribution.Simple.BuildPaths+import Distribution.Simple.Utils+import Distribution.Package+import qualified Distribution.ModuleName as ModuleName+import Distribution.ModuleName (ModuleName)+import Distribution.Simple.Program+import Distribution.Simple.Program.Builtin (runghcProgram)+import qualified Distribution.Simple.Program.HcPkg as HcPkg+import qualified Distribution.Simple.Program.Ar as Ar+import qualified Distribution.Simple.Program.Ld as Ld+import qualified Distribution.Simple.Program.Strip as Strip+import Distribution.Simple.Program.GHC+import Distribution.Simple.Setup+import qualified Distribution.Simple.Setup as Cabal+import Distribution.Simple.Compiler hiding (Flag)+import Distribution.Version+import Distribution.System+import Distribution.Verbosity+import Distribution.Text+import Distribution.Types.ForeignLib+import Distribution.Types.ForeignLibType+import Distribution.Types.ForeignLibOption+import Distribution.Types.UnqualComponentName+import Distribution.Utils.NubList+import Language.Haskell.Extension++import Control.Monad (msum)+import Data.Char (isLower)+import qualified Data.Map as Map+import System.Directory+ ( doesFileExist, getAppUserDataDirectory, createDirectoryIfMissing+ , canonicalizePath, removeFile, renameFile )+import System.FilePath ( (</>), (<.>), takeExtension+ , takeDirectory, replaceExtension+ ,isRelative )+import qualified System.Info+#ifndef mingw32_HOST_OS+import System.Posix (createSymbolicLink)+#endif /* mingw32_HOST_OS */++-- -----------------------------------------------------------------------------+-- Configuring++configure :: Verbosity -> Maybe FilePath -> Maybe FilePath+ -> ProgramDb+ -> IO (Compiler, Maybe Platform, ProgramDb)+configure verbosity hcPath hcPkgPath conf0 = do++ (ghcProg, ghcVersion, progdb1) <-+ requireProgramVersion verbosity ghcProgram+ (orLaterVersion (mkVersion [6,11]))+ (userMaybeSpecifyPath "ghc" hcPath conf0)+ let implInfo = ghcVersionImplInfo ghcVersion++ -- This is slightly tricky, we have to configure ghc first, then we use the+ -- location of ghc to help find ghc-pkg in the case that the user did not+ -- specify the location of ghc-pkg directly:+ (ghcPkgProg, ghcPkgVersion, progdb2) <-+ requireProgramVersion verbosity ghcPkgProgram {+ programFindLocation = guessGhcPkgFromGhcPath ghcProg+ }+ anyVersion (userMaybeSpecifyPath "ghc-pkg" hcPkgPath progdb1)++ when (ghcVersion /= ghcPkgVersion) $ die' verbosity $+ "Version mismatch between ghc and ghc-pkg: "+ ++ programPath ghcProg ++ " is version " ++ display ghcVersion ++ " "+ ++ programPath ghcPkgProg ++ " is version " ++ display ghcPkgVersion++ -- Likewise we try to find the matching hsc2hs and haddock programs.+ let hsc2hsProgram' = hsc2hsProgram {+ programFindLocation = guessHsc2hsFromGhcPath ghcProg+ }+ haddockProgram' = haddockProgram {+ programFindLocation = guessHaddockFromGhcPath ghcProg+ }+ hpcProgram' = hpcProgram {+ programFindLocation = guessHpcFromGhcPath ghcProg+ }+ runghcProgram' = runghcProgram {+ programFindLocation = guessRunghcFromGhcPath ghcProg+ }+ progdb3 = addKnownProgram haddockProgram' $+ addKnownProgram hsc2hsProgram' $+ addKnownProgram hpcProgram' $+ addKnownProgram runghcProgram' progdb2++ languages <- Internal.getLanguages verbosity implInfo ghcProg+ extensions0 <- Internal.getExtensions verbosity implInfo ghcProg++ ghcInfo <- Internal.getGhcInfo verbosity implInfo ghcProg+ let ghcInfoMap = Map.fromList ghcInfo+ extensions = -- workaround https://ghc.haskell.org/ticket/11214+ filterExt JavaScriptFFI $+ -- see 'filterExtTH' comment below+ filterExtTH $ extensions0++ -- starting with GHC 8.0, `TemplateHaskell` will be omitted from+ -- `--supported-extensions` when it's not available.+ -- for older GHCs we can use the "Have interpreter" property to+ -- filter out `TemplateHaskell`+ filterExtTH | ghcVersion < mkVersion [8]+ , Just "NO" <- Map.lookup "Have interpreter" ghcInfoMap+ = filterExt TemplateHaskell+ | otherwise = id++ filterExt ext = filter ((/= EnableExtension ext) . fst)++ let comp = Compiler {+ compilerId = CompilerId GHC ghcVersion,+ compilerAbiTag = NoAbiTag,+ compilerCompat = [],+ compilerLanguages = languages,+ compilerExtensions = extensions,+ compilerProperties = ghcInfoMap+ }+ compPlatform = Internal.targetPlatform ghcInfo+ -- configure gcc and ld+ progdb4 = Internal.configureToolchain implInfo ghcProg ghcInfoMap progdb3+ return (comp, compPlatform, progdb4)++-- | Given something like /usr/local/bin/ghc-6.6.1(.exe) we try and find+-- the corresponding tool; e.g. if the tool is ghc-pkg, we try looking+-- for a versioned or unversioned ghc-pkg in the same dir, that is:+--+-- > /usr/local/bin/ghc-pkg-ghc-6.6.1(.exe)+-- > /usr/local/bin/ghc-pkg-6.6.1(.exe)+-- > /usr/local/bin/ghc-pkg(.exe)+--+guessToolFromGhcPath :: Program -> ConfiguredProgram+ -> Verbosity -> ProgramSearchPath+ -> IO (Maybe (FilePath, [FilePath]))+guessToolFromGhcPath tool ghcProg verbosity searchpath+ = do let toolname = programName tool+ given_path = programPath ghcProg+ given_dir = takeDirectory given_path+ real_path <- canonicalizePath given_path+ let real_dir = takeDirectory real_path+ versionSuffix path = takeVersionSuffix (dropExeExtension path)+ given_suf = versionSuffix given_path+ real_suf = versionSuffix real_path+ guessNormal dir = dir </> toolname <.> exeExtension+ guessGhcVersioned dir suf = dir </> (toolname ++ "-ghc" ++ suf)+ <.> exeExtension+ guessVersioned dir suf = dir </> (toolname ++ suf)+ <.> exeExtension+ mkGuesses dir suf | null suf = [guessNormal dir]+ | otherwise = [guessGhcVersioned dir suf,+ guessVersioned dir suf,+ guessNormal dir]+ guesses = mkGuesses given_dir given_suf +++ if real_path == given_path+ then []+ else mkGuesses real_dir real_suf+ info verbosity $ "looking for tool " ++ toolname+ ++ " near compiler in " ++ given_dir+ debug verbosity $ "candidate locations: " ++ show guesses+ exists <- traverse doesFileExist guesses+ case [ file | (file, True) <- zip guesses exists ] of+ -- If we can't find it near ghc, fall back to the usual+ -- method.+ [] -> programFindLocation tool verbosity searchpath+ (fp:_) -> do info verbosity $ "found " ++ toolname ++ " in " ++ fp+ let lookedAt = map fst+ . takeWhile (\(_file, exist) -> not exist)+ $ zip guesses exists+ return (Just (fp, lookedAt))++ where takeVersionSuffix :: FilePath -> String+ takeVersionSuffix = takeWhileEndLE isSuffixChar++ isSuffixChar :: Char -> Bool+ isSuffixChar c = isDigit c || c == '.' || c == '-'++-- | Given something like /usr/local/bin/ghc-6.6.1(.exe) we try and find a+-- corresponding ghc-pkg, we try looking for both a versioned and unversioned+-- ghc-pkg in the same dir, that is:+--+-- > /usr/local/bin/ghc-pkg-ghc-6.6.1(.exe)+-- > /usr/local/bin/ghc-pkg-6.6.1(.exe)+-- > /usr/local/bin/ghc-pkg(.exe)+--+guessGhcPkgFromGhcPath :: ConfiguredProgram+ -> Verbosity -> ProgramSearchPath+ -> IO (Maybe (FilePath, [FilePath]))+guessGhcPkgFromGhcPath = guessToolFromGhcPath ghcPkgProgram++-- | Given something like /usr/local/bin/ghc-6.6.1(.exe) we try and find a+-- corresponding hsc2hs, we try looking for both a versioned and unversioned+-- hsc2hs in the same dir, that is:+--+-- > /usr/local/bin/hsc2hs-ghc-6.6.1(.exe)+-- > /usr/local/bin/hsc2hs-6.6.1(.exe)+-- > /usr/local/bin/hsc2hs(.exe)+--+guessHsc2hsFromGhcPath :: ConfiguredProgram+ -> Verbosity -> ProgramSearchPath+ -> IO (Maybe (FilePath, [FilePath]))+guessHsc2hsFromGhcPath = guessToolFromGhcPath hsc2hsProgram++-- | Given something like /usr/local/bin/ghc-6.6.1(.exe) we try and find a+-- corresponding haddock, we try looking for both a versioned and unversioned+-- haddock in the same dir, that is:+--+-- > /usr/local/bin/haddock-ghc-6.6.1(.exe)+-- > /usr/local/bin/haddock-6.6.1(.exe)+-- > /usr/local/bin/haddock(.exe)+--+guessHaddockFromGhcPath :: ConfiguredProgram+ -> Verbosity -> ProgramSearchPath+ -> IO (Maybe (FilePath, [FilePath]))+guessHaddockFromGhcPath = guessToolFromGhcPath haddockProgram++guessHpcFromGhcPath :: ConfiguredProgram+ -> Verbosity -> ProgramSearchPath+ -> IO (Maybe (FilePath, [FilePath]))+guessHpcFromGhcPath = guessToolFromGhcPath hpcProgram++guessRunghcFromGhcPath :: ConfiguredProgram+ -> Verbosity -> ProgramSearchPath+ -> IO (Maybe (FilePath, [FilePath]))+guessRunghcFromGhcPath = guessToolFromGhcPath runghcProgram+++getGhcInfo :: Verbosity -> ConfiguredProgram -> IO [(String, String)]+getGhcInfo verbosity ghcProg = Internal.getGhcInfo verbosity implInfo ghcProg+ where+ Just version = programVersion ghcProg+ implInfo = ghcVersionImplInfo version++-- | Given a single package DB, return all installed packages.+getPackageDBContents :: Verbosity -> PackageDB -> ProgramDb+ -> IO InstalledPackageIndex+getPackageDBContents verbosity packagedb progdb = do+ pkgss <- getInstalledPackages' verbosity [packagedb] progdb+ toPackageIndex verbosity pkgss progdb++-- | Given a package DB stack, return all installed packages.+getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack+ -> ProgramDb+ -> IO InstalledPackageIndex+getInstalledPackages verbosity comp packagedbs progdb = do+ checkPackageDbEnvVar verbosity+ checkPackageDbStack verbosity comp packagedbs+ pkgss <- getInstalledPackages' verbosity packagedbs progdb+ index <- toPackageIndex verbosity pkgss progdb+ return $! hackRtsPackage index++ where+ hackRtsPackage index =+ case PackageIndex.lookupPackageName index (mkPackageName "rts") of+ [(_,[rts])]+ -> PackageIndex.insert (removeMingwIncludeDir rts) index+ _ -> index -- No (or multiple) ghc rts package is registered!!+ -- Feh, whatever, the ghc test suite does some crazy stuff.++-- | Given a list of @(PackageDB, InstalledPackageInfo)@ pairs, produce a+-- @PackageIndex@. Helper function used by 'getPackageDBContents' and+-- 'getInstalledPackages'.+toPackageIndex :: Verbosity+ -> [(PackageDB, [InstalledPackageInfo])]+ -> ProgramDb+ -> IO InstalledPackageIndex+toPackageIndex verbosity pkgss progdb = do+ -- On Windows, various fields have $topdir/foo rather than full+ -- paths. We need to substitute the right value in so that when+ -- we, for example, call gcc, we have proper paths to give it.+ topDir <- getLibDir' verbosity ghcProg+ let indices = [ PackageIndex.fromList (map (Internal.substTopDir topDir) pkgs)+ | (_, pkgs) <- pkgss ]+ return $! mconcat indices++ where+ Just ghcProg = lookupProgram ghcProgram progdb++getLibDir :: Verbosity -> LocalBuildInfo -> IO FilePath+getLibDir verbosity lbi =+ dropWhileEndLE isSpace `fmap`+ getDbProgramOutput verbosity ghcProgram+ (withPrograms lbi) ["--print-libdir"]++getLibDir' :: Verbosity -> ConfiguredProgram -> IO FilePath+getLibDir' verbosity ghcProg =+ dropWhileEndLE isSpace `fmap`+ getProgramOutput verbosity ghcProg ["--print-libdir"]+++-- | Return the 'FilePath' to the global GHC package database.+getGlobalPackageDB :: Verbosity -> ConfiguredProgram -> IO FilePath+getGlobalPackageDB verbosity ghcProg =+ dropWhileEndLE isSpace `fmap`+ getProgramOutput verbosity ghcProg ["--print-global-package-db"]++-- | Return the 'FilePath' to the per-user GHC package database.+getUserPackageDB :: Verbosity -> ConfiguredProgram -> Platform -> NoCallStackIO FilePath+getUserPackageDB _verbosity ghcProg platform = do+ -- It's rather annoying that we have to reconstruct this, because ghc+ -- hides this information from us otherwise. But for certain use cases+ -- like change monitoring it really can't remain hidden.+ appdir <- getAppUserDataDirectory "ghc"+ return (appdir </> platformAndVersion </> packageConfFileName)+ where+ platformAndVersion = Internal.ghcPlatformAndVersionString+ platform ghcVersion+ packageConfFileName+ | ghcVersion >= mkVersion [6,12] = "package.conf.d"+ | otherwise = "package.conf"+ Just ghcVersion = programVersion ghcProg++checkPackageDbEnvVar :: Verbosity -> IO ()+checkPackageDbEnvVar verbosity =+ Internal.checkPackageDbEnvVar verbosity "GHC" "GHC_PACKAGE_PATH"++checkPackageDbStack :: Verbosity -> Compiler -> PackageDBStack -> IO ()+checkPackageDbStack verbosity comp =+ if flagPackageConf implInfo+ then checkPackageDbStackPre76 verbosity+ else checkPackageDbStackPost76 verbosity+ where implInfo = ghcVersionImplInfo (compilerVersion comp)++checkPackageDbStackPost76 :: Verbosity -> PackageDBStack -> IO ()+checkPackageDbStackPost76 _ (GlobalPackageDB:rest)+ | GlobalPackageDB `notElem` rest = return ()+checkPackageDbStackPost76 verbosity rest+ | GlobalPackageDB `elem` rest =+ die' verbosity $ "If the global package db is specified, it must be "+ ++ "specified first and cannot be specified multiple times"+checkPackageDbStackPost76 _ _ = return ()++checkPackageDbStackPre76 :: Verbosity -> PackageDBStack -> IO ()+checkPackageDbStackPre76 _ (GlobalPackageDB:rest)+ | GlobalPackageDB `notElem` rest = return ()+checkPackageDbStackPre76 verbosity rest+ | GlobalPackageDB `notElem` rest =+ die' verbosity $ "With current ghc versions the global package db is always used "+ ++ "and must be listed first. This ghc limitation is lifted in GHC 7.6,"+ ++ "see http://hackage.haskell.org/trac/ghc/ticket/5977"+checkPackageDbStackPre76 verbosity _ =+ die' verbosity $ "If the global package db is specified, it must be "+ ++ "specified first and cannot be specified multiple times"++-- GHC < 6.10 put "$topdir/include/mingw" in rts's installDirs. This+-- breaks when you want to use a different gcc, so we need to filter+-- it out.+removeMingwIncludeDir :: InstalledPackageInfo -> InstalledPackageInfo+removeMingwIncludeDir pkg =+ let ids = InstalledPackageInfo.includeDirs pkg+ ids' = filter (not . ("mingw" `isSuffixOf`)) ids+ in pkg { InstalledPackageInfo.includeDirs = ids' }++-- | Get the packages from specific PackageDBs, not cumulative.+--+getInstalledPackages' :: Verbosity -> [PackageDB] -> ProgramDb+ -> IO [(PackageDB, [InstalledPackageInfo])]+getInstalledPackages' verbosity packagedbs progdb+ | ghcVersion >= mkVersion [6,9] =+ sequenceA+ [ do pkgs <- HcPkg.dump (hcPkgInfo progdb) verbosity packagedb+ return (packagedb, pkgs)+ | packagedb <- packagedbs ]++ where+ Just ghcProg = lookupProgram ghcProgram progdb+ Just ghcVersion = programVersion ghcProg++getInstalledPackages' verbosity packagedbs progdb = do+ str <- getDbProgramOutput verbosity ghcPkgProgram progdb ["list"]+ let pkgFiles = [ init line | line <- lines str, last line == ':' ]+ dbFile packagedb = case (packagedb, pkgFiles) of+ (GlobalPackageDB, global:_) -> return $ Just global+ (UserPackageDB, _global:user:_) -> return $ Just user+ (UserPackageDB, _global:_) -> return $ Nothing+ (SpecificPackageDB specific, _) -> return $ Just specific+ _ -> die' verbosity "cannot read ghc-pkg package listing"+ pkgFiles' <- traverse dbFile packagedbs+ sequenceA [ withFileContents file $ \content -> do+ pkgs <- readPackages file content+ return (db, pkgs)+ | (db , Just file) <- zip packagedbs pkgFiles' ]+ where+ -- Depending on the version of ghc we use a different type's Read+ -- instance to parse the package file and then convert.+ -- It's a bit yuck. But that's what we get for using Read/Show.+ readPackages+ | ghcVersion >= mkVersion [6,4,2]+ = \file content -> case reads content of+ [(pkgs, _)] -> return (map IPI642.toCurrent pkgs)+ _ -> failToRead file+ -- We dropped support for 6.4.2 and earlier.+ | otherwise+ = \file _ -> failToRead file+ Just ghcProg = lookupProgram ghcProgram progdb+ Just ghcVersion = programVersion ghcProg+ failToRead file = die' verbosity $ "cannot read ghc package database " ++ file++getInstalledPackagesMonitorFiles :: Verbosity -> Platform+ -> ProgramDb+ -> [PackageDB]+ -> IO [FilePath]+getInstalledPackagesMonitorFiles verbosity platform progdb =+ traverse getPackageDBPath+ where+ getPackageDBPath :: PackageDB -> IO FilePath+ getPackageDBPath GlobalPackageDB =+ selectMonitorFile =<< getGlobalPackageDB verbosity ghcProg++ getPackageDBPath UserPackageDB =+ selectMonitorFile =<< getUserPackageDB verbosity ghcProg platform++ getPackageDBPath (SpecificPackageDB path) = selectMonitorFile path++ -- GHC has old style file dbs, and new style directory dbs.+ -- Note that for dir style dbs, we only need to monitor the cache file, not+ -- the whole directory. The ghc program itself only reads the cache file+ -- so it's safe to only monitor this one file.+ selectMonitorFile path = do+ isFileStyle <- doesFileExist path+ if isFileStyle then return path+ else return (path </> "package.cache")++ Just ghcProg = lookupProgram ghcProgram progdb+++-- -----------------------------------------------------------------------------+-- Building a library++buildLib, replLib :: Verbosity -> Cabal.Flag (Maybe Int)+ -> PackageDescription -> LocalBuildInfo+ -> Library -> ComponentLocalBuildInfo -> IO ()+buildLib = buildOrReplLib False+replLib = buildOrReplLib True++buildOrReplLib :: Bool -> Verbosity -> Cabal.Flag (Maybe Int)+ -> PackageDescription -> LocalBuildInfo+ -> Library -> ComponentLocalBuildInfo -> IO ()+buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do+ let uid = componentUnitId clbi+ libTargetDir = componentBuildDir lbi clbi+ whenVanillaLib forceVanilla =+ when (forceVanilla || withVanillaLib lbi)+ whenProfLib = when (withProfLib lbi)+ whenSharedLib forceShared =+ when (forceShared || withSharedLib lbi)+ whenGHCiLib = when (withGHCiLib lbi && withVanillaLib lbi)+ ifReplLib = when forRepl+ comp = compiler lbi+ ghcVersion = compilerVersion comp+ implInfo = getImplInfo comp+ platform@(Platform _hostArch hostOS) = hostPlatform lbi+ has_code = not (componentIsIndefinite clbi)++ (ghcProg, _) <- requireProgram verbosity ghcProgram (withPrograms lbi)+ let runGhcProg = runGHC verbosity ghcProg comp platform++ libBi <- hackThreadedFlag verbosity+ comp (withProfLib lbi) (libBuildInfo lib)++ let isGhcDynamic = isDynamic comp+ dynamicTooSupported = supportsDynamicToo comp+ doingTH = EnableExtension TemplateHaskell `elem` allExtensions libBi+ forceVanillaLib = doingTH && not isGhcDynamic+ forceSharedLib = doingTH && isGhcDynamic+ -- TH always needs default libs, even when building for profiling++ -- Determine if program coverage should be enabled and if so, what+ -- '-hpcdir' should be.+ let isCoverageEnabled = libCoverage lbi+ -- TODO: Historically HPC files have been put into a directory which+ -- has the package name. I'm going to avoid changing this for+ -- now, but it would probably be better for this to be the+ -- component ID instead...+ pkg_name = display (PD.package pkg_descr)+ distPref = fromFlag $ configDistPref $ configFlags lbi+ hpcdir way+ | forRepl = mempty -- HPC is not supported in ghci+ | isCoverageEnabled = toFlag $ Hpc.mixDir distPref way pkg_name+ | otherwise = mempty++ createDirectoryIfMissingVerbose verbosity True libTargetDir+ -- TODO: do we need to put hs-boot files into place for mutually recursive+ -- modules?+ let cObjs = map (`replaceExtension` objExtension) (cSources libBi)+ baseOpts = componentGhcOptions verbosity lbi libBi clbi libTargetDir+ vanillaOpts = baseOpts `mappend` mempty {+ ghcOptMode = toFlag GhcModeMake,+ ghcOptNumJobs = numJobs,+ ghcOptInputModules = toNubListR $ allLibModules lib clbi,+ ghcOptHPCDir = hpcdir Hpc.Vanilla+ }++ profOpts = vanillaOpts `mappend` mempty {+ ghcOptProfilingMode = toFlag True,+ ghcOptProfilingAuto = Internal.profDetailLevelFlag True+ (withProfLibDetail lbi),+ ghcOptHiSuffix = toFlag "p_hi",+ ghcOptObjSuffix = toFlag "p_o",+ ghcOptExtra = toNubListR $ hcProfOptions GHC libBi,+ ghcOptHPCDir = hpcdir Hpc.Prof+ }++ sharedOpts = vanillaOpts `mappend` mempty {+ ghcOptDynLinkMode = toFlag GhcDynamicOnly,+ ghcOptFPic = toFlag True,+ ghcOptHiSuffix = toFlag "dyn_hi",+ ghcOptObjSuffix = toFlag "dyn_o",+ ghcOptExtra = toNubListR $ hcSharedOptions GHC libBi,+ ghcOptHPCDir = hpcdir Hpc.Dyn+ }+ linkerOpts = mempty {+ ghcOptLinkOptions = toNubListR $ PD.ldOptions libBi,+ ghcOptLinkLibs = toNubListR $ extraLibs libBi,+ ghcOptLinkLibPath = toNubListR $ extraLibDirs libBi,+ ghcOptLinkFrameworks = toNubListR $+ PD.frameworks libBi,+ ghcOptLinkFrameworkDirs = toNubListR $+ PD.extraFrameworkDirs libBi,+ ghcOptInputFiles = toNubListR+ [libTargetDir </> x | x <- cObjs]+ }+ replOpts = vanillaOpts {+ ghcOptExtra = overNubListR+ Internal.filterGhciFlags $+ ghcOptExtra vanillaOpts,+ ghcOptNumJobs = mempty+ }+ `mappend` linkerOpts+ `mappend` mempty {+ ghcOptMode = toFlag GhcModeInteractive,+ ghcOptOptimisation = toFlag GhcNoOptimisation+ }++ vanillaSharedOpts = vanillaOpts `mappend` mempty {+ ghcOptDynLinkMode = toFlag GhcStaticAndDynamic,+ ghcOptDynHiSuffix = toFlag "dyn_hi",+ ghcOptDynObjSuffix = toFlag "dyn_o",+ ghcOptHPCDir = hpcdir Hpc.Dyn+ }++ unless (forRepl || null (allLibModules lib clbi)) $+ do let vanilla = whenVanillaLib forceVanillaLib (runGhcProg vanillaOpts)+ shared = whenSharedLib forceSharedLib (runGhcProg sharedOpts)+ useDynToo = dynamicTooSupported &&+ (forceVanillaLib || withVanillaLib lbi) &&+ (forceSharedLib || withSharedLib lbi) &&+ null (hcSharedOptions GHC libBi)+ if not has_code+ then vanilla+ else+ if useDynToo+ then do+ runGhcProg vanillaSharedOpts+ case (hpcdir Hpc.Dyn, hpcdir Hpc.Vanilla) of+ (Cabal.Flag dynDir, Cabal.Flag vanillaDir) ->+ -- When the vanilla and shared library builds are done+ -- in one pass, only one set of HPC module interfaces+ -- are generated. This set should suffice for both+ -- static and dynamically linked executables. We copy+ -- the modules interfaces so they are available under+ -- both ways.+ copyDirectoryRecursive verbosity dynDir vanillaDir+ _ -> return ()+ else if isGhcDynamic+ then do shared; vanilla+ else do vanilla; shared+ when has_code $ whenProfLib (runGhcProg profOpts)++ -- build any C sources+ unless (not has_code || null (cSources libBi)) $ do+ info verbosity "Building C Sources..."+ sequence_+ [ do let baseCcOpts = Internal.componentCcGhcOptions verbosity implInfo+ lbi libBi clbi libTargetDir filename+ vanillaCcOpts = if isGhcDynamic+ -- Dynamic GHC requires C sources to be built+ -- with -fPIC for REPL to work. See #2207.+ then baseCcOpts { ghcOptFPic = toFlag True }+ else baseCcOpts+ profCcOpts = vanillaCcOpts `mappend` mempty {+ ghcOptProfilingMode = toFlag True,+ ghcOptObjSuffix = toFlag "p_o"+ }+ sharedCcOpts = vanillaCcOpts `mappend` mempty {+ ghcOptFPic = toFlag True,+ ghcOptDynLinkMode = toFlag GhcDynamicOnly,+ ghcOptObjSuffix = toFlag "dyn_o"+ }+ odir = fromFlag (ghcOptObjDir vanillaCcOpts)+ createDirectoryIfMissingVerbose verbosity True odir+ let runGhcProgIfNeeded ccOpts = do+ needsRecomp <- checkNeedsRecompilation filename ccOpts+ when needsRecomp $ runGhcProg ccOpts+ runGhcProgIfNeeded vanillaCcOpts+ unless forRepl $+ whenSharedLib forceSharedLib (runGhcProgIfNeeded sharedCcOpts)+ unless forRepl $ whenProfLib (runGhcProgIfNeeded profCcOpts)+ | filename <- cSources libBi]++ -- TODO: problem here is we need the .c files built first, so we can load them+ -- with ghci, but .c files can depend on .h files generated by ghc by ffi+ -- exports.++ when has_code . ifReplLib $ do+ when (null (allLibModules lib clbi)) $ warn verbosity "No exposed modules"+ ifReplLib (runGhcProg replOpts)++ -- link:+ when has_code . unless forRepl $ do+ info verbosity "Linking..."+ let cProfObjs = map (`replaceExtension` ("p_" ++ objExtension))+ (cSources libBi)+ cSharedObjs = map (`replaceExtension` ("dyn_" ++ objExtension))+ (cSources libBi)+ compiler_id = compilerId (compiler lbi)+ vanillaLibFilePath = libTargetDir </> mkLibName uid+ profileLibFilePath = libTargetDir </> mkProfLibName uid+ sharedLibFilePath = libTargetDir </> mkSharedLibName compiler_id uid+ ghciLibFilePath = libTargetDir </> Internal.mkGHCiLibName uid+ libInstallPath = libdir $ absoluteComponentInstallDirs pkg_descr lbi uid NoCopyDest+ sharedLibInstallPath = libInstallPath </> mkSharedLibName compiler_id uid++ stubObjs <- catMaybes <$> sequenceA+ [ findFileWithExtension [objExtension] [libTargetDir]+ (ModuleName.toFilePath x ++"_stub")+ | ghcVersion < mkVersion [7,2] -- ghc-7.2+ does not make _stub.o files+ , x <- allLibModules lib clbi ]+ stubProfObjs <- catMaybes <$> sequenceA+ [ findFileWithExtension ["p_" ++ objExtension] [libTargetDir]+ (ModuleName.toFilePath x ++"_stub")+ | ghcVersion < mkVersion [7,2] -- ghc-7.2+ does not make _stub.o files+ , x <- allLibModules lib clbi ]+ stubSharedObjs <- catMaybes <$> sequenceA+ [ findFileWithExtension ["dyn_" ++ objExtension] [libTargetDir]+ (ModuleName.toFilePath x ++"_stub")+ | ghcVersion < mkVersion [7,2] -- ghc-7.2+ does not make _stub.o files+ , x <- allLibModules lib clbi ]++ hObjs <- Internal.getHaskellObjects implInfo lib lbi clbi+ libTargetDir objExtension True+ hProfObjs <-+ if withProfLib lbi+ then Internal.getHaskellObjects implInfo lib lbi clbi+ libTargetDir ("p_" ++ objExtension) True+ else return []+ hSharedObjs <-+ if withSharedLib lbi+ then Internal.getHaskellObjects implInfo lib lbi clbi+ libTargetDir ("dyn_" ++ objExtension) False+ else return []++ unless (null hObjs && null cObjs && null stubObjs) $ do+ rpaths <- getRPaths lbi clbi++ let staticObjectFiles =+ hObjs+ ++ map (libTargetDir </>) cObjs+ ++ stubObjs+ profObjectFiles =+ hProfObjs+ ++ map (libTargetDir </>) cProfObjs+ ++ stubProfObjs+ ghciObjFiles =+ hObjs+ ++ map (libTargetDir </>) cObjs+ ++ stubObjs+ dynamicObjectFiles =+ hSharedObjs+ ++ map (libTargetDir </>) cSharedObjs+ ++ stubSharedObjs+ -- After the relocation lib is created we invoke ghc -shared+ -- with the dependencies spelled out as -package arguments+ -- and ghc invokes the linker with the proper library paths+ ghcSharedLinkArgs =+ mempty {+ ghcOptShared = toFlag True,+ ghcOptDynLinkMode = toFlag GhcDynamicOnly,+ ghcOptInputFiles = toNubListR dynamicObjectFiles,+ ghcOptOutputFile = toFlag sharedLibFilePath,+ ghcOptExtra = toNubListR $+ hcSharedOptions GHC libBi,+ -- For dynamic libs, Mac OS/X needs to know the install location+ -- at build time. This only applies to GHC < 7.8 - see the+ -- discussion in #1660.+ ghcOptDylibName = if hostOS == OSX+ && ghcVersion < mkVersion [7,8]+ then toFlag sharedLibInstallPath+ else mempty,+ ghcOptHideAllPackages = toFlag True,+ ghcOptNoAutoLinkPackages = toFlag True,+ ghcOptPackageDBs = withPackageDB lbi,+ ghcOptThisUnitId = case clbi of+ LibComponentLocalBuildInfo { componentCompatPackageKey = pk }+ -> toFlag pk+ _ -> mempty,+ ghcOptThisComponentId = case clbi of+ LibComponentLocalBuildInfo { componentInstantiatedWith = insts } ->+ if null insts+ then mempty+ else toFlag (componentComponentId clbi)+ _ -> mempty,+ ghcOptInstantiatedWith = case clbi of+ LibComponentLocalBuildInfo { componentInstantiatedWith = insts }+ -> insts+ _ -> [],+ ghcOptPackages = toNubListR $+ Internal.mkGhcOptPackages clbi ,+ ghcOptLinkLibs = toNubListR $ extraLibs libBi,+ ghcOptLinkLibPath = toNubListR $ extraLibDirs libBi,+ ghcOptLinkFrameworks = toNubListR $ PD.frameworks libBi,+ ghcOptLinkFrameworkDirs =+ toNubListR $ PD.extraFrameworkDirs libBi,+ ghcOptRPaths = rpaths+ }++ info verbosity (show (ghcOptPackages ghcSharedLinkArgs))++ whenVanillaLib False $+ Ar.createArLibArchive verbosity lbi vanillaLibFilePath staticObjectFiles++ whenProfLib $+ Ar.createArLibArchive verbosity lbi profileLibFilePath profObjectFiles++ whenGHCiLib $ do+ (ldProg, _) <- requireProgram verbosity ldProgram (withPrograms lbi)+ Ld.combineObjectFiles verbosity ldProg+ ghciLibFilePath ghciObjFiles++ whenSharedLib False $+ runGhcProg ghcSharedLinkArgs++-- | Start a REPL without loading any source files.+startInterpreter :: Verbosity -> ProgramDb -> Compiler -> Platform+ -> PackageDBStack -> IO ()+startInterpreter verbosity progdb comp platform packageDBs = do+ let replOpts = mempty {+ ghcOptMode = toFlag GhcModeInteractive,+ ghcOptPackageDBs = packageDBs+ }+ checkPackageDbStack verbosity comp packageDBs+ (ghcProg, _) <- requireProgram verbosity ghcProgram progdb+ runGHC verbosity ghcProg comp platform replOpts++-- -----------------------------------------------------------------------------+-- Building an executable or foreign library++-- | Build a foreign library+buildFLib, replFLib+ :: Verbosity -> Cabal.Flag (Maybe Int)+ -> PackageDescription -> LocalBuildInfo+ -> ForeignLib -> ComponentLocalBuildInfo -> IO ()+buildFLib v njobs pkg lbi = gbuild v njobs pkg lbi . GBuildFLib+replFLib v njobs pkg lbi = gbuild v njobs pkg lbi . GReplFLib++-- | Build an executable with GHC.+--+buildExe, replExe+ :: Verbosity -> Cabal.Flag (Maybe Int)+ -> PackageDescription -> LocalBuildInfo+ -> Executable -> ComponentLocalBuildInfo -> IO ()+buildExe v njobs pkg lbi = gbuild v njobs pkg lbi . GBuildExe+replExe v njobs pkg lbi = gbuild v njobs pkg lbi . GReplExe++-- | Building an executable, starting the REPL, and building foreign+-- libraries are all very similar and implemented in 'gbuild'. The+-- 'GBuildMode' distinguishes between the various kinds of operation.+data GBuildMode =+ GBuildExe Executable+ | GReplExe Executable+ | GBuildFLib ForeignLib+ | GReplFLib ForeignLib++gbuildInfo :: GBuildMode -> BuildInfo+gbuildInfo (GBuildExe exe) = buildInfo exe+gbuildInfo (GReplExe exe) = buildInfo exe+gbuildInfo (GBuildFLib flib) = foreignLibBuildInfo flib+gbuildInfo (GReplFLib flib) = foreignLibBuildInfo flib++gbuildName :: GBuildMode -> String+gbuildName (GBuildExe exe) = unUnqualComponentName $ exeName exe+gbuildName (GReplExe exe) = unUnqualComponentName $ exeName exe+gbuildName (GBuildFLib flib) = unUnqualComponentName $ foreignLibName flib+gbuildName (GReplFLib flib) = unUnqualComponentName $ foreignLibName flib++gbuildTargetName :: LocalBuildInfo -> GBuildMode -> String+gbuildTargetName _lbi (GBuildExe exe) = exeTargetName exe+gbuildTargetName _lbi (GReplExe exe) = exeTargetName exe+gbuildTargetName lbi (GBuildFLib flib) = flibTargetName lbi flib+gbuildTargetName lbi (GReplFLib flib) = flibTargetName lbi flib++exeTargetName :: Executable -> String+exeTargetName exe = unUnqualComponentName (exeName exe) `withExt` exeExtension++-- | Target name for a foreign library (the actual file name)+--+-- We do not use mkLibName and co here because the naming for foreign libraries+-- is slightly different (we don't use "_p" or compiler version suffices, and we+-- don't want the "lib" prefix on Windows).+--+-- TODO: We do use `dllExtension` and co here, but really that's wrong: they+-- use the OS used to build cabal to determine which extension to use, rather+-- than the target OS (but this is wrong elsewhere in Cabal as well).+flibTargetName :: LocalBuildInfo -> ForeignLib -> String+flibTargetName lbi flib =+ case (os, foreignLibType flib) of+ (Windows, ForeignLibNativeShared) -> nm <.> "dll"+ (Windows, ForeignLibNativeStatic) -> nm <.> "lib"+ (Linux, ForeignLibNativeShared) -> "lib" ++ nm <.> versionedExt+ (_other, ForeignLibNativeShared) -> "lib" ++ nm <.> dllExtension+ (_other, ForeignLibNativeStatic) -> "lib" ++ nm <.> staticLibExtension+ (_any, ForeignLibTypeUnknown) -> cabalBug "unknown foreign lib type"+ where+ nm :: String+ nm = unUnqualComponentName $ foreignLibName flib++ os :: OS+ os = let (Platform _ os') = hostPlatform lbi+ in os'++ -- If a foreign lib foo has lib-version-info 5:1:2 or+ -- lib-version-linux 3.2.1, it should be built as libfoo.so.3.2.1+ -- Libtool's version-info data is translated into library versions in a+ -- nontrivial way: so refer to libtool documentation.+ versionedExt :: String+ versionedExt =+ let nums = foreignLibVersion flib os+ in foldl (<.>) "so" (map show nums)++-- | Name for the library when building.+--+-- If the `lib-version-info` field or the `lib-version-linux` field of+-- a foreign library target is set, we need to incorporate that+-- version into the SONAME field.+--+-- If a foreign library foo has lib-version-info 5:1:2, it should be+-- built as libfoo.so.3.2.1. We want it to get soname libfoo.so.3.+-- However, GHC does not allow overriding soname by setting linker+-- options, as it sets a soname of its own (namely the output+-- filename), after the user-supplied linker options. Hence, we have+-- to compile the library with the soname as its filename. We rename+-- the compiled binary afterwards.+--+-- This method allows to adjust the name of the library at build time+-- such that the correct soname can be set.+flibBuildName :: LocalBuildInfo -> ForeignLib -> String+flibBuildName lbi flib+ -- On linux, if a foreign-library has version data, the first digit is used+ -- to produce the SONAME.+ | (os, foreignLibType flib) ==+ (Linux, ForeignLibNativeShared)+ = let nums = foreignLibVersion flib os+ in "lib" ++ nm <.> foldl (<.>) "so" (map show (take 1 nums))+ | otherwise = flibTargetName lbi flib+ where+ os :: OS+ os = let (Platform _ os') = hostPlatform lbi+ in os'++ nm :: String+ nm = unUnqualComponentName $ foreignLibName flib++gbuildIsRepl :: GBuildMode -> Bool+gbuildIsRepl (GBuildExe _) = False+gbuildIsRepl (GReplExe _) = True+gbuildIsRepl (GBuildFLib _) = False+gbuildIsRepl (GReplFLib _) = True++gbuildNeedDynamic :: LocalBuildInfo -> GBuildMode -> Bool+gbuildNeedDynamic lbi bm =+ case bm of+ GBuildExe _ -> withDynExe lbi+ GReplExe _ -> withDynExe lbi+ GBuildFLib flib -> withDynFLib flib+ GReplFLib flib -> withDynFLib flib+ where+ withDynFLib flib =+ case foreignLibType flib of+ ForeignLibNativeShared ->+ ForeignLibStandalone `notElem` foreignLibOptions flib+ ForeignLibNativeStatic ->+ False+ ForeignLibTypeUnknown ->+ cabalBug "unknown foreign lib type"++gbuildModDefFiles :: GBuildMode -> [FilePath]+gbuildModDefFiles (GBuildExe _) = []+gbuildModDefFiles (GReplExe _) = []+gbuildModDefFiles (GBuildFLib flib) = foreignLibModDefFile flib+gbuildModDefFiles (GReplFLib flib) = foreignLibModDefFile flib++-- | "Main" module name when overridden by @ghc-options: -main-is ...@+-- or 'Nothing' if no @-main-is@ flag could be found.+--+-- In case of 'Nothing', 'Distribution.ModuleName.main' can be assumed.+exeMainModuleName :: Executable -> Maybe ModuleName+exeMainModuleName Executable{buildInfo = bnfo} =+ -- GHC honors the last occurence of a module name updated via -main-is+ --+ -- Moreover, -main-is when parsed left-to-right can update either+ -- the "Main" module name, or the "main" function name, or both,+ -- see also 'decodeMainIsArg'.+ msum $ reverse $ map decodeMainIsArg $ findIsMainArgs ghcopts+ where+ ghcopts = hcOptions GHC bnfo++ findIsMainArgs [] = []+ findIsMainArgs ("-main-is":arg:rest) = arg : findIsMainArgs rest+ findIsMainArgs (_:rest) = findIsMainArgs rest++-- | Decode argument to '-main-is'+--+-- Returns 'Nothing' if argument set only the function name.+--+-- This code has been stolen/refactored from GHC's DynFlags.setMainIs+-- function. The logic here is deliberately imperfect as it is+-- intended to be bug-compatible with GHC's parser. See discussion in+-- https://github.com/haskell/cabal/pull/4539#discussion_r118981753.+decodeMainIsArg :: String -> Maybe ModuleName+decodeMainIsArg arg+ | not (null main_fn) && isLower (head main_fn)+ -- The arg looked like "Foo.Bar.baz"+ = Just (ModuleName.fromString main_mod)+ | isUpper (head arg) -- The arg looked like "Foo" or "Foo.Bar"+ = Just (ModuleName.fromString arg)+ | otherwise -- The arg looked like "baz"+ = Nothing+ where+ (main_mod, main_fn) = splitLongestPrefix arg (== '.')++ splitLongestPrefix :: String -> (Char -> Bool) -> (String,String)+ splitLongestPrefix str pred'+ | null r_pre = (str, [])+ | otherwise = (reverse (tail r_pre), reverse r_suf)+ -- 'tail' drops the char satisfying 'pred'+ where (r_suf, r_pre) = break pred' (reverse str)++-- | Return C sources, GHC input files and GHC input modules+gbuildSources :: Verbosity+ -> Version -- ^ specVersion+ -> FilePath+ -> GBuildMode+ -> IO ([FilePath], [FilePath], [ModuleName])+gbuildSources verbosity specVer tmpDir bm =+ case bm of+ GBuildExe exe -> exeSources exe+ GReplExe exe -> exeSources exe+ GBuildFLib flib -> return $ flibSources flib+ GReplFLib flib -> return $ flibSources flib+ where+ exeSources :: Executable -> IO ([FilePath], [FilePath], [ModuleName])+ exeSources exe@Executable{buildInfo = bnfo, modulePath = modPath} = do+ main <- findFile (tmpDir : hsSourceDirs bnfo) modPath+ let mainModName = fromMaybe ModuleName.main $ exeMainModuleName exe+ otherModNames = exeModules exe++ if isHaskell main+ then+ if specVer < mkVersion [2] && (mainModName `elem` otherModNames)+ then do+ -- The cabal manual clearly states that `other-modules` is+ -- intended for non-main modules. However, there's at least one+ -- important package on Hackage (happy-1.19.5) which+ -- violates this. We workaround this here so that we don't+ -- invoke GHC with e.g. 'ghc --make Main src/Main.hs' which+ -- would result in GHC complaining about duplicate Main+ -- modules.+ --+ -- Finally, we only enable this workaround for+ -- specVersion < 2, as 'cabal-version:>=2.0' cabal files+ -- have no excuse anymore to keep doing it wrong... ;-)+ warn verbosity $ "Enabling workaround for Main module '"+ ++ display mainModName+ ++ "' listed in 'other-modules' illegaly!"++ return (cSources bnfo, [main],+ filter (/= mainModName) (exeModules exe))++ else return (cSources bnfo, [main], exeModules exe)+ else return (main : cSources bnfo, [], exeModules exe)++ flibSources :: ForeignLib -> ([FilePath], [FilePath], [ModuleName])+ flibSources flib@ForeignLib{foreignLibBuildInfo = bnfo} =+ (cSources bnfo, [], foreignLibModules flib)++ isHaskell :: FilePath -> Bool+ isHaskell fp = elem (takeExtension fp) [".hs", ".lhs"]++-- | Generic build function. See comment for 'GBuildMode'.+gbuild :: Verbosity -> Cabal.Flag (Maybe Int)+ -> PackageDescription -> LocalBuildInfo+ -> GBuildMode -> ComponentLocalBuildInfo -> IO ()+gbuild verbosity numJobs pkg_descr lbi bm clbi = do+ (ghcProg, _) <- requireProgram verbosity ghcProgram (withPrograms lbi)+ let comp = compiler lbi+ platform = hostPlatform lbi+ implInfo = getImplInfo comp+ runGhcProg = runGHC verbosity ghcProg comp platform++ bnfo <- hackThreadedFlag verbosity+ comp (withProfExe lbi) (gbuildInfo bm)++ -- the name that GHC really uses (e.g., with .exe on Windows for executables)+ let targetName = gbuildTargetName lbi bm+ let targetDir = buildDir lbi </> (gbuildName bm)+ let tmpDir = targetDir </> (gbuildName bm ++ "-tmp")+ createDirectoryIfMissingVerbose verbosity True targetDir+ createDirectoryIfMissingVerbose verbosity True tmpDir++ -- TODO: do we need to put hs-boot files into place for mutually recursive+ -- modules? FIX: what about exeName.hi-boot?++ -- Determine if program coverage should be enabled and if so, what+ -- '-hpcdir' should be.+ let isCoverageEnabled = exeCoverage lbi+ distPref = fromFlag $ configDistPref $ configFlags lbi+ hpcdir way+ | gbuildIsRepl bm = mempty -- HPC is not supported in ghci+ | isCoverageEnabled = toFlag $ Hpc.mixDir distPref way (gbuildName bm)+ | otherwise = mempty++ rpaths <- getRPaths lbi clbi+ (cSrcs, inputFiles, inputModules) <- gbuildSources verbosity+ (specVersion pkg_descr) tmpDir bm++ let isGhcDynamic = isDynamic comp+ dynamicTooSupported = supportsDynamicToo comp+ cObjs = map (`replaceExtension` objExtension) cSrcs+ needDynamic = gbuildNeedDynamic lbi bm+ needProfiling = withProfExe lbi++ -- build executables+ baseOpts = (componentGhcOptions verbosity lbi bnfo clbi tmpDir)+ `mappend` mempty {+ ghcOptMode = toFlag GhcModeMake,+ ghcOptInputFiles = toNubListR inputFiles,+ ghcOptInputModules = toNubListR inputModules+ }+ staticOpts = baseOpts `mappend` mempty {+ ghcOptDynLinkMode = toFlag GhcStaticOnly,+ ghcOptHPCDir = hpcdir Hpc.Vanilla+ }+ profOpts = baseOpts `mappend` mempty {+ ghcOptProfilingMode = toFlag True,+ ghcOptProfilingAuto = Internal.profDetailLevelFlag False+ (withProfExeDetail lbi),+ ghcOptHiSuffix = toFlag "p_hi",+ ghcOptObjSuffix = toFlag "p_o",+ ghcOptExtra = toNubListR+ (hcProfOptions GHC bnfo),+ ghcOptHPCDir = hpcdir Hpc.Prof+ }+ dynOpts = baseOpts `mappend` mempty {+ ghcOptDynLinkMode = toFlag GhcDynamicOnly,+ -- TODO: Does it hurt to set -fPIC for executables?+ ghcOptFPic = toFlag True,+ ghcOptHiSuffix = toFlag "dyn_hi",+ ghcOptObjSuffix = toFlag "dyn_o",+ ghcOptExtra = toNubListR $+ hcSharedOptions GHC bnfo,+ ghcOptHPCDir = hpcdir Hpc.Dyn+ }+ dynTooOpts = staticOpts `mappend` mempty {+ ghcOptDynLinkMode = toFlag GhcStaticAndDynamic,+ ghcOptDynHiSuffix = toFlag "dyn_hi",+ ghcOptDynObjSuffix = toFlag "dyn_o",+ ghcOptHPCDir = hpcdir Hpc.Dyn+ }+ linkerOpts = mempty {+ ghcOptLinkOptions = toNubListR $ PD.ldOptions bnfo,+ ghcOptLinkLibs = toNubListR $ extraLibs bnfo,+ ghcOptLinkLibPath = toNubListR $ extraLibDirs bnfo,+ ghcOptLinkFrameworks = toNubListR $+ PD.frameworks bnfo,+ ghcOptLinkFrameworkDirs = toNubListR $+ PD.extraFrameworkDirs bnfo,+ ghcOptInputFiles = toNubListR+ [tmpDir </> x | x <- cObjs]+ }+ dynLinkerOpts = mempty {+ ghcOptRPaths = rpaths+ }+ replOpts = baseOpts {+ ghcOptExtra = overNubListR+ Internal.filterGhciFlags+ (ghcOptExtra baseOpts)+ }+ -- For a normal compile we do separate invocations of ghc for+ -- compiling as for linking. But for repl we have to do just+ -- the one invocation, so that one has to include all the+ -- linker stuff too, like -l flags and any .o files from C+ -- files etc.+ `mappend` linkerOpts+ `mappend` mempty {+ ghcOptMode = toFlag GhcModeInteractive,+ ghcOptOptimisation = toFlag GhcNoOptimisation+ }+ commonOpts | needProfiling = profOpts+ | needDynamic = dynOpts+ | otherwise = staticOpts+ compileOpts | useDynToo = dynTooOpts+ | otherwise = commonOpts+ withStaticExe = not needProfiling && not needDynamic++ -- For building exe's that use TH with -prof or -dynamic we actually have+ -- to build twice, once without -prof/-dynamic and then again with+ -- -prof/-dynamic. This is because the code that TH needs to run at+ -- compile time needs to be the vanilla ABI so it can be loaded up and run+ -- by the compiler.+ -- With dynamic-by-default GHC the TH object files loaded at compile-time+ -- need to be .dyn_o instead of .o.+ doingTH = EnableExtension TemplateHaskell `elem` allExtensions bnfo+ -- Should we use -dynamic-too instead of compiling twice?+ useDynToo = dynamicTooSupported && isGhcDynamic+ && doingTH && withStaticExe+ && null (hcSharedOptions GHC bnfo)+ compileTHOpts | isGhcDynamic = dynOpts+ | otherwise = staticOpts+ compileForTH+ | gbuildIsRepl bm = False+ | useDynToo = False+ | isGhcDynamic = doingTH && (needProfiling || withStaticExe)+ | otherwise = doingTH && (needProfiling || needDynamic)++ -- Build static/dynamic object files for TH, if needed.+ when compileForTH $+ runGhcProg compileTHOpts { ghcOptNoLink = toFlag True+ , ghcOptNumJobs = numJobs }++ unless (gbuildIsRepl bm) $+ runGhcProg compileOpts { ghcOptNoLink = toFlag True+ , ghcOptNumJobs = numJobs }++ -- build any C sources+ unless (null cSrcs) $ do+ info verbosity "Building C Sources..."+ sequence_+ [ do let baseCcOpts = Internal.componentCcGhcOptions verbosity implInfo+ lbi bnfo clbi tmpDir filename+ vanillaCcOpts = if isGhcDynamic+ -- Dynamic GHC requires C sources to be built+ -- with -fPIC for REPL to work. See #2207.+ then baseCcOpts { ghcOptFPic = toFlag True }+ else baseCcOpts+ profCcOpts = vanillaCcOpts `mappend` mempty {+ ghcOptProfilingMode = toFlag True+ }+ sharedCcOpts = vanillaCcOpts `mappend` mempty {+ ghcOptFPic = toFlag True,+ ghcOptDynLinkMode = toFlag GhcDynamicOnly+ }+ opts | needProfiling = profCcOpts+ | needDynamic = sharedCcOpts+ | otherwise = vanillaCcOpts+ odir = fromFlag (ghcOptObjDir opts)+ createDirectoryIfMissingVerbose verbosity True odir+ needsRecomp <- checkNeedsRecompilation filename opts+ when needsRecomp $+ runGhcProg opts+ | filename <- cSrcs ]++ -- TODO: problem here is we need the .c files built first, so we can load them+ -- with ghci, but .c files can depend on .h files generated by ghc by ffi+ -- exports.+ case bm of+ GReplExe _ -> runGhcProg replOpts+ GReplFLib _ -> runGhcProg replOpts+ GBuildExe _ -> do+ let linkOpts = commonOpts+ `mappend` linkerOpts+ `mappend` mempty {+ ghcOptLinkNoHsMain = toFlag (null inputFiles)+ }+ `mappend` (if withDynExe lbi then dynLinkerOpts else mempty)++ info verbosity "Linking..."+ -- Work around old GHCs not relinking in this+ -- situation, see #3294+ let target = targetDir </> targetName+ when (compilerVersion comp < mkVersion [7,7]) $ do+ e <- doesFileExist target+ when e (removeFile target)+ runGhcProg linkOpts { ghcOptOutputFile = toFlag target }+ GBuildFLib flib -> do+ let rtsInfo = extractRtsInfo lbi+ linkOpts = case foreignLibType flib of+ ForeignLibNativeShared ->+ commonOpts+ `mappend` linkerOpts+ `mappend` dynLinkerOpts+ `mappend` mempty {+ ghcOptLinkNoHsMain = toFlag True,+ ghcOptShared = toFlag True,+ ghcOptLinkLibs = toNubListR [+ if needDynamic+ then rtsDynamicLib rtsInfo+ else rtsStaticLib rtsInfo+ ],+ ghcOptLinkLibPath = toNubListR $ rtsLibPaths rtsInfo,+ ghcOptFPic = toFlag True,+ ghcOptLinkModDefFiles = toNubListR $ gbuildModDefFiles bm+ }+ -- See Note [RPATH]+ `mappend` ifNeedsRPathWorkaround lbi mempty {+ ghcOptLinkOptions = toNubListR ["-Wl,--no-as-needed"]+ , ghcOptLinkLibs = toNubListR ["ffi"]+ }+ ForeignLibNativeStatic ->+ -- this should be caught by buildFLib+ -- (and if we do implement tihs, we probably don't even want to call+ -- ghc here, but rather Ar.createArLibArchive or something)+ cabalBug "static libraries not yet implemented"+ ForeignLibTypeUnknown ->+ cabalBug "unknown foreign lib type"+ -- We build under a (potentially) different filename to set a+ -- soname on supported platforms. See also the note for+ -- @flibBuildName@.+ info verbosity "Linking..."+ let buildName = flibBuildName lbi flib+ runGhcProg linkOpts { ghcOptOutputFile = toFlag (targetDir </> buildName) }+ renameFile (targetDir </> buildName) (targetDir </> targetName)++{-+Note [RPATH]+~~~~~~~~~~~~++Suppose that the dynamic library depends on `base`, but not (directly) on+`integer-gmp` (which, however, is a dependency of `base`). We will link the+library as++ gcc ... -lHSbase-4.7.0.2-ghc7.8.4 -lHSinteger-gmp-0.5.1.0-ghc7.8.4 ...++However, on systems (like Ubuntu) where the linker gets called with `-as-needed`+by default, the linker will notice that `integer-gmp` isn't actually a direct+dependency and hence omit the link.++Then when we attempt to link a C program against this dynamic library, the+_static_ linker will attempt to verify that all symbols can be resolved. The+dynamic library itself does not require any symbols from `integer-gmp`, but+`base` does. In order to verify that the symbols used by `base` can be+resolved, the static linker needs to be able to _find_ integer-gmp.++Finding the `base` dependency is simple, because the dynamic elf header+(`readelf -d`) for the library that we have created looks something like++ (NEEDED) Shared library: [libHSbase-4.7.0.2-ghc7.8.4.so]+ (RPATH) Library rpath: [/path/to/base-4.7.0.2:...]++However, when it comes to resolving the dependency on `integer-gmp`, it needs+to look at the dynamic header for `base`. On modern ghc (7.8 and higher) this+looks something like++ (NEEDED) Shared library: [libHSinteger-gmp-0.5.1.0-ghc7.8.4.so]+ (RPATH) Library rpath: [$ORIGIN/../integer-gmp-0.5.1.0:...]++This specifies the location of `integer-gmp` _in terms of_ the location of base+(using the `$ORIGIN`) variable. But here's the crux: when the static linker+attempts to verify that all symbols can be resolved, [**IT DOES NOT RESOLVE+`$ORIGIN`**](http://stackoverflow.com/questions/6323603/ld-using-rpath-origin-inside-a-shared-library-recursive).+As a consequence, it will not be able to resolve the symbols and report the+missing symbols as errors, _even though the dynamic linker **would** be able to+resolve these symbols_. We can tell the static linker not to report these+errors by using `--unresolved-symbols=ignore-all` and all will be fine when we+run the program ([(indeed, this is what the gold linker+does)](https://sourceware.org/ml/binutils/2013-05/msg00038.html), but it makes+the resulting library more difficult to use.++Instead what we can do is make sure that the generated dynamic library has+explicit top-level dependencies on these libraries. This means that the static+linker knows where to find them, and when we have transitive dependencies on+the same libraries the linker will only load them once, so we avoid needing to+look at the `RPATH` of our dependencies. We can do this by passing+`--no-as-needed` to the linker, so that it doesn't omit any libraries.++Note that on older ghc (7.6 and before) the Haskell libraries don't have an+RPATH set at all, which makes it even more important that we make these+top-level dependencies.++Finally, we have to explicitly link against `libffi` for the same reason. For+newer ghc this _happens_ to be unnecessary on many systems because `libffi` is+a library which is not specific to GHC, and when the static linker verifies+that all symbols can be resolved it will find the `libffi` that is globally+installed (completely independent from ghc). Of course, this may well be the+_wrong_ version of `libffi`, but it's quite possible that symbol resolution+happens to work. This is of course the wrong approach, which is why we link+explicitly against `libffi` so that we will find the _right_ version of+`libffi`.+-}++-- | Do we need the RPATH workaround?+--+-- See Note [RPATH].+ifNeedsRPathWorkaround :: Monoid a => LocalBuildInfo -> a -> a+ifNeedsRPathWorkaround lbi a =+ case hostPlatform lbi of+ Platform _ Linux -> a+ _otherwise -> mempty++data RtsInfo = RtsInfo {+ rtsDynamicLib :: FilePath+ , rtsStaticLib :: FilePath+ , rtsLibPaths :: [FilePath]+ }++-- | Extract (and compute) information about the RTS library+--+-- TODO: This hardcodes the name as @HSrts-ghc<version>@. I don't know if we can+-- find this information somewhere. We can lookup the 'hsLibraries' field of+-- 'InstalledPackageInfo' but it will tell us @["HSrts", "Cffi"]@, which+-- doesn't really help.+extractRtsInfo :: LocalBuildInfo -> RtsInfo+extractRtsInfo lbi =+ case PackageIndex.lookupPackageName (installedPkgs lbi) (mkPackageName "rts") of+ [(_, [rts])] -> aux rts+ _otherwise -> error "No (or multiple) ghc rts package is registered"+ where+ aux :: InstalledPackageInfo -> RtsInfo+ aux rts = RtsInfo {+ rtsDynamicLib = "HSrts-ghc" ++ display ghcVersion+ , rtsStaticLib = "HSrts"+ , rtsLibPaths = InstalledPackageInfo.libraryDirs rts+ }+ ghcVersion :: Version+ ghcVersion = compilerVersion (compiler lbi)++-- | Returns True if the modification date of the given source file is newer than+-- the object file we last compiled for it, or if no object file exists yet.+checkNeedsRecompilation :: FilePath -> GhcOptions -> NoCallStackIO Bool+checkNeedsRecompilation filename opts = filename `moreRecentFile` oname+ where oname = getObjectFileName filename opts++-- | Finds the object file name of the given source file+getObjectFileName :: FilePath -> GhcOptions -> FilePath+getObjectFileName filename opts = oname+ where odir = fromFlag (ghcOptObjDir opts)+ oext = fromFlagOrDefault "o" (ghcOptObjSuffix opts)+ oname = odir </> replaceExtension filename oext++-- | Calculate the RPATHs for the component we are building.+--+-- Calculates relative RPATHs when 'relocatable' is set.+getRPaths :: LocalBuildInfo+ -> ComponentLocalBuildInfo -- ^ Component we are building+ -> NoCallStackIO (NubListR FilePath)+getRPaths lbi clbi | supportRPaths hostOS = do+ libraryPaths <- depLibraryPaths False (relocatable lbi) lbi clbi+ let hostPref = case hostOS of+ OSX -> "@loader_path"+ _ -> "$ORIGIN"+ relPath p = if isRelative p then hostPref </> p else p+ rpaths = toNubListR (map relPath libraryPaths)+ return rpaths+ where+ (Platform _ hostOS) = hostPlatform lbi++ -- The list of RPath-supported operating systems below reflects the+ -- platforms on which Cabal's RPATH handling is tested. It does _NOT_+ -- reflect whether the OS supports RPATH.++ -- E.g. when this comment was written, the *BSD operating systems were+ -- untested with regards to Cabal RPATH handling, and were hence set to+ -- 'False', while those operating systems themselves do support RPATH.+ supportRPaths Linux = True+ supportRPaths Windows = False+ supportRPaths OSX = True+ supportRPaths FreeBSD = False+ supportRPaths OpenBSD = False+ supportRPaths NetBSD = False+ supportRPaths DragonFly = False+ supportRPaths Solaris = False+ supportRPaths AIX = False+ supportRPaths HPUX = False+ supportRPaths IRIX = False+ supportRPaths HaLVM = False+ supportRPaths IOS = False+ supportRPaths Android = False+ supportRPaths Ghcjs = False+ supportRPaths Hurd = False+ supportRPaths (OtherOS _) = False+ -- Do _not_ add a default case so that we get a warning here when a new OS+ -- is added.++getRPaths _ _ = return mempty++-- | Filter the "-threaded" flag when profiling as it does not+-- work with ghc-6.8 and older.+hackThreadedFlag :: Verbosity -> Compiler -> Bool -> BuildInfo -> IO BuildInfo+hackThreadedFlag verbosity comp prof bi+ | not mustFilterThreaded = return bi+ | otherwise = do+ warn verbosity $ "The ghc flag '-threaded' is not compatible with "+ ++ "profiling in ghc-6.8 and older. It will be disabled."+ return bi { options = filterHcOptions (/= "-threaded") (options bi) }+ where+ mustFilterThreaded = prof && compilerVersion comp < mkVersion [6, 10]+ && "-threaded" `elem` hcOptions GHC bi+ filterHcOptions p hcoptss =+ [ (hc, if hc == GHC then filter p opts else opts)+ | (hc, opts) <- hcoptss ]+++-- | Extracts a String representing a hash of the ABI of a built+-- library. It can fail if the library has not yet been built.+--+libAbiHash :: Verbosity -> PackageDescription -> LocalBuildInfo+ -> Library -> ComponentLocalBuildInfo -> IO String+libAbiHash verbosity _pkg_descr lbi lib clbi = do+ libBi <- hackThreadedFlag verbosity+ (compiler lbi) (withProfLib lbi) (libBuildInfo lib)+ let+ comp = compiler lbi+ platform = hostPlatform lbi+ vanillaArgs0 =+ (componentGhcOptions verbosity lbi libBi clbi (componentBuildDir lbi clbi))+ `mappend` mempty {+ ghcOptMode = toFlag GhcModeAbiHash,+ ghcOptInputModules = toNubListR $ exposedModules lib+ }+ vanillaArgs =+ -- Package DBs unnecessary, and break ghc-cabal. See #3633+ -- BUT, put at least the global database so that 7.4 doesn't+ -- break.+ vanillaArgs0 { ghcOptPackageDBs = [GlobalPackageDB]+ , ghcOptPackages = mempty }+ sharedArgs = vanillaArgs `mappend` mempty {+ ghcOptDynLinkMode = toFlag GhcDynamicOnly,+ ghcOptFPic = toFlag True,+ ghcOptHiSuffix = toFlag "dyn_hi",+ ghcOptObjSuffix = toFlag "dyn_o",+ ghcOptExtra = toNubListR $ hcSharedOptions GHC libBi+ }+ profArgs = vanillaArgs `mappend` mempty {+ ghcOptProfilingMode = toFlag True,+ ghcOptProfilingAuto = Internal.profDetailLevelFlag True+ (withProfLibDetail lbi),+ ghcOptHiSuffix = toFlag "p_hi",+ ghcOptObjSuffix = toFlag "p_o",+ ghcOptExtra = toNubListR $ hcProfOptions GHC libBi+ }+ ghcArgs+ | withVanillaLib lbi = vanillaArgs+ | withSharedLib lbi = sharedArgs+ | withProfLib lbi = profArgs+ | otherwise = error "libAbiHash: Can't find an enabled library way"++ (ghcProg, _) <- requireProgram verbosity ghcProgram (withPrograms lbi)+ hash <- getProgramInvocationOutput verbosity+ (ghcInvocation ghcProg comp platform ghcArgs)+ return (takeWhile (not . isSpace) hash)++componentGhcOptions :: Verbosity -> LocalBuildInfo+ -> BuildInfo -> ComponentLocalBuildInfo -> FilePath+ -> GhcOptions+componentGhcOptions verbosity lbi =+ Internal.componentGhcOptions verbosity implInfo lbi+ where+ comp = compiler lbi+ implInfo = getImplInfo comp++componentCcGhcOptions :: Verbosity -> LocalBuildInfo+ -> BuildInfo -> ComponentLocalBuildInfo+ -> FilePath -> FilePath+ -> GhcOptions+componentCcGhcOptions verbosity lbi =+ Internal.componentCcGhcOptions verbosity implInfo lbi+ where+ comp = compiler lbi+ implInfo = getImplInfo comp++-- -----------------------------------------------------------------------------+-- Installing++-- |Install executables for GHC.+installExe :: Verbosity+ -> LocalBuildInfo+ -> FilePath -- ^Where to copy the files to+ -> FilePath -- ^Build location+ -> (FilePath, FilePath) -- ^Executable (prefix,suffix)+ -> PackageDescription+ -> Executable+ -> IO ()+installExe verbosity lbi binDir buildPref+ (progprefix, progsuffix) _pkg exe = do+ createDirectoryIfMissingVerbose verbosity True binDir+ let exeName' = unUnqualComponentName $ exeName exe+ exeFileName = exeTargetName exe+ fixedExeBaseName = progprefix ++ exeName' ++ progsuffix+ installBinary dest = do+ installExecutableFile verbosity+ (buildPref </> exeName' </> exeFileName)+ (dest <.> exeExtension)+ when (stripExes lbi) $+ Strip.stripExe verbosity (hostPlatform lbi) (withPrograms lbi)+ (dest <.> exeExtension)+ installBinary (binDir </> fixedExeBaseName)++-- |Install foreign library for GHC.+installFLib :: Verbosity+ -> LocalBuildInfo+ -> FilePath -- ^install location+ -> FilePath -- ^Build location+ -> PackageDescription+ -> ForeignLib+ -> IO ()+installFLib verbosity lbi targetDir builtDir _pkg flib =+ install (foreignLibIsShared flib)+ builtDir+ targetDir+ (flibTargetName lbi flib)+ where+ install isShared srcDir dstDir name = do+ let src = srcDir </> name+ dst = dstDir </> name+ createDirectoryIfMissingVerbose verbosity True targetDir+ -- TODO: Should we strip? (stripLibs lbi)+ if isShared+ then installExecutableFile verbosity src dst+ else installOrdinaryFile verbosity src dst+ -- Now install appropriate symlinks if library is versioned+ let (Platform _ os) = hostPlatform lbi+ when (not (null (foreignLibVersion flib os))) $ do+ when (os /= Linux) $ die' verbosity+ -- It should be impossible to get here.+ "Can't install foreign-library symlink on non-Linux OS"+#ifndef mingw32_HOST_OS+ -- 'createSymbolicLink file1 file2' creates a symbolic link+ -- named 'file2' which points to the file 'file1'.+ -- Note that we do want a symlink to 'name' rather than+ -- 'dst', because the symlink will be relative to the+ -- directory it's created in.+ -- Finally, we first create the symlinks in a temporary+ -- directory and then rename to simulate 'ln --force'.+ withTempDirectory verbosity dstDir nm $ \tmpDir -> do+ let link1 = flibBuildName lbi flib+ link2 = "lib" ++ nm <.> "so"+ createSymbolicLink name (tmpDir </> link1)+ renameFile (tmpDir </> link1) (dstDir </> link1)+ createSymbolicLink name (tmpDir </> link2)+ renameFile (tmpDir </> link2) (dstDir </> link2)+ where+ nm :: String+ nm = unUnqualComponentName $ foreignLibName flib+#endif /* mingw32_HOST_OS */+++-- |Install for ghc, .hi, .a and, if --with-ghci given, .o+installLib :: Verbosity+ -> LocalBuildInfo+ -> FilePath -- ^install location+ -> FilePath -- ^install location for dynamic libraries+ -> FilePath -- ^Build location+ -> PackageDescription+ -> Library+ -> ComponentLocalBuildInfo+ -> IO ()+installLib verbosity lbi targetDir dynlibTargetDir _builtDir _pkg lib clbi = do+ -- copy .hi files over:+ whenVanilla $ copyModuleFiles "hi"+ whenProf $ copyModuleFiles "p_hi"+ whenShared $ copyModuleFiles "dyn_hi"++ -- copy the built library files over:+ whenHasCode $ do+ whenVanilla $ installOrdinary builtDir targetDir vanillaLibName+ whenProf $ installOrdinary builtDir targetDir profileLibName+ whenGHCi $ installOrdinary builtDir targetDir ghciLibName+ whenShared $ installShared builtDir dynlibTargetDir sharedLibName++ where+ builtDir = componentBuildDir lbi clbi++ install isShared srcDir dstDir name = do+ let src = srcDir </> name+ dst = dstDir </> name+ createDirectoryIfMissingVerbose verbosity True dstDir++ if isShared+ then installExecutableFile verbosity src dst+ else installOrdinaryFile verbosity src dst++ when (stripLibs lbi) $ Strip.stripLib verbosity+ (hostPlatform lbi) (withPrograms lbi) dst++ installOrdinary = install False+ installShared = install True++ copyModuleFiles ext =+ findModuleFiles [builtDir] [ext] (allLibModules lib clbi)+ >>= installOrdinaryFiles verbosity targetDir++ compiler_id = compilerId (compiler lbi)+ uid = componentUnitId clbi+ vanillaLibName = mkLibName uid+ profileLibName = mkProfLibName uid+ ghciLibName = Internal.mkGHCiLibName uid+ sharedLibName = (mkSharedLibName compiler_id) uid++ hasLib = not $ null (allLibModules lib clbi)+ && null (cSources (libBuildInfo lib))+ has_code = not (componentIsIndefinite clbi)+ whenHasCode = when has_code+ whenVanilla = when (hasLib && withVanillaLib lbi)+ whenProf = when (hasLib && withProfLib lbi && has_code)+ whenGHCi = when (hasLib && withGHCiLib lbi && has_code)+ whenShared = when (hasLib && withSharedLib lbi && has_code)++-- -----------------------------------------------------------------------------+-- Registering++hcPkgInfo :: ProgramDb -> HcPkg.HcPkgInfo+hcPkgInfo progdb = HcPkg.HcPkgInfo { HcPkg.hcPkgProgram = ghcPkgProg+ , HcPkg.noPkgDbStack = v < [6,9]+ , HcPkg.noVerboseFlag = v < [6,11]+ , HcPkg.flagPackageConf = v < [7,5]+ , HcPkg.supportsDirDbs = v >= [6,8]+ , HcPkg.requiresDirDbs = v >= [7,10]+ , HcPkg.nativeMultiInstance = v >= [7,10]+ , HcPkg.recacheMultiInstance = v >= [6,12]+ , HcPkg.suppressFilesCheck = v >= [6,6]+ }+ where+ v = versionNumbers ver+ Just ghcPkgProg = lookupProgram ghcPkgProgram progdb+ Just ver = programVersion ghcPkgProg++registerPackage+ :: Verbosity+ -> ProgramDb+ -> PackageDBStack+ -> InstalledPackageInfo+ -> HcPkg.RegisterOptions+ -> IO ()+registerPackage verbosity progdb packageDbs installedPkgInfo registerOptions =+ HcPkg.register (hcPkgInfo progdb) verbosity packageDbs+ installedPkgInfo registerOptions++pkgRoot :: Verbosity -> LocalBuildInfo -> PackageDB -> IO FilePath+pkgRoot verbosity lbi = pkgRoot'+ where+ pkgRoot' GlobalPackageDB =+ let Just ghcProg = lookupProgram ghcProgram (withPrograms lbi)+ in fmap takeDirectory (getGlobalPackageDB verbosity ghcProg)+ pkgRoot' UserPackageDB = do+ appDir <- getAppUserDataDirectory "ghc"+ let ver = compilerVersion (compiler lbi)+ subdir = System.Info.arch ++ '-':System.Info.os+ ++ '-':display ver+ rootDir = appDir </> subdir+ -- We must create the root directory for the user package database if it+ -- does not yet exists. Otherwise '${pkgroot}' will resolve to a+ -- directory at the time of 'ghc-pkg register', and registration will+ -- fail.+ createDirectoryIfMissing True rootDir+ return rootDir+ pkgRoot' (SpecificPackageDB fp) = return (takeDirectory fp)++-- -----------------------------------------------------------------------------+-- Utils++isDynamic :: Compiler -> Bool+isDynamic = Internal.ghcLookupProperty "GHC Dynamic"++supportsDynamicToo :: Compiler -> Bool+supportsDynamicToo = Internal.ghcLookupProperty "Support dynamic-too"++withExt :: FilePath -> String -> FilePath+withExt fp ext = fp <.> if takeExtension fp /= ('.':ext) then ext else ""
Distribution/Simple/GHC/IPI642.hs view
@@ -13,9 +13,15 @@ toCurrent, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import qualified Distribution.InstalledPackageInfo as Current-import qualified Distribution.Package as Current hiding (installedUnitId)+import qualified Distribution.Types.AbiHash as Current+import qualified Distribution.Types.ComponentId as Current+import qualified Distribution.Types.UnitId as Current import Distribution.Simple.GHC.IPIConvert+import Distribution.Text -- | This is the InstalledPackageInfo type used by ghc-6.4.2 and later. --@@ -61,13 +67,17 @@ toCurrent :: InstalledPackageInfo -> Current.InstalledPackageInfo toCurrent ipi@InstalledPackageInfo{} =- let pid = convertPackageId (package ipi)- mkExposedModule m = Current.ExposedModule m Nothing+ let mkExposedModule m = Current.ExposedModule m Nothing+ pid = convertPackageId (package ipi) in Current.InstalledPackageInfo { Current.sourcePackageId = pid, Current.installedUnitId = Current.mkLegacyUnitId pid,+ Current.installedComponentId_ = Current.mkComponentId (display pid),+ Current.instantiatedWith = [],+ -- Internal libraries not supported!+ Current.sourceLibName = Nothing, Current.compatPackageKey = "",- Current.abiHash = Current.AbiHash "", -- bogus but old GHCs don't care.+ Current.abiHash = Current.mkAbiHash "", -- bogus but old GHCs don't care. Current.license = convertLicense (license ipi), Current.copyright = copyright ipi, Current.maintainer = maintainer ipi,@@ -78,6 +88,7 @@ Current.synopsis = "", Current.description = description ipi, Current.category = category ipi,+ Current.indefinite = False, Current.exposed = exposed ipi, Current.exposedModules = map (mkExposedModule . convertModuleName) (exposedModules ipi), Current.hiddenModules = map convertModuleName (hiddenModules ipi),@@ -92,6 +103,7 @@ Current.includeDirs = includeDirs ipi, Current.includes = includes ipi, Current.depends = map (Current.mkLegacyUnitId . convertPackageId) (depends ipi),+ Current.abiDepends = [], Current.ccOptions = ccOptions ipi, Current.ldOptions = ldOptions ipi, Current.frameworkDirs = frameworkDirs ipi,
Distribution/Simple/GHC/IPIConvert.hs view
@@ -14,31 +14,35 @@ convertModuleName ) where -import qualified Distribution.Package as Current hiding (installedUnitId)+import Prelude ()+import Distribution.Compat.Prelude++import qualified Distribution.Types.PackageId as Current+import qualified Distribution.Types.PackageName as Current import qualified Distribution.License as Current import Distribution.Version import Distribution.ModuleName import Distribution.Text -import Data.Maybe-+-- | This is a indeed a munged package id, but the constructor name cannot be+-- changed or the Read instance (the entire point of this type) will break. data PackageIdentifier = PackageIdentifier { pkgName :: String, pkgVersion :: Version } deriving Read -convertPackageId :: PackageIdentifier -> Current.PackageIdentifier+convertPackageId :: PackageIdentifier -> Current.PackageId convertPackageId PackageIdentifier { pkgName = n, pkgVersion = v } =- Current.PackageIdentifier (Current.PackageName n) v+ Current.PackageIdentifier (Current.mkPackageName n) v data License = GPL | LGPL | BSD3 | BSD4 | PublicDomain | AllRightsReserved | OtherLicense deriving Read convertModuleName :: String -> ModuleName-convertModuleName s = fromJust $ simpleParse s+convertModuleName s = fromMaybe (error "convertModuleName") $ simpleParse s convertLicense :: License -> Current.License convertLicense GPL = Current.GPL Nothing
Distribution/Simple/GHC/ImplInfo.hs view
@@ -14,6 +14,9 @@ ghcVersionImplInfo, ghcjsVersionImplInfo, lhcVersionImplInfo ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.Compiler import Distribution.Version @@ -31,23 +34,15 @@ -} data GhcImplInfo = GhcImplInfo- { hasCcOdirBug :: Bool -- ^ bug in -odir handling for C compilations.- , flagInfoLanguages :: Bool -- ^ --info and --supported-languages flags- , fakeRecordPuns :: Bool -- ^ use -XRecordPuns for NamedFieldPuns- , flagStubdir :: Bool -- ^ -stubdir flag supported- , flagOutputDir :: Bool -- ^ -outputdir flag supported- , noExtInSplitSuffix :: Bool -- ^ split-obj suffix does not contain p_o ext- , flagFfiIncludes :: Bool -- ^ -#include on command line for FFI includes- , flagBuildingCabalPkg :: Bool -- ^ -fbuilding-cabal-package flag supported- , flagPackageId :: Bool -- ^ -package-id / -package flags supported- , separateGccMingw :: Bool -- ^ mingw and gcc are in separate directories- , supportsHaskell2010 :: Bool -- ^ -XHaskell2010 and -XHaskell98 flags+ { supportsHaskell2010 :: Bool -- ^ -XHaskell2010 and -XHaskell98 flags , reportsNoExt :: Bool -- ^ --supported-languages gives Ext and NoExt , alwaysNondecIndent :: Bool -- ^ NondecreasingIndentation is always on , flagGhciScript :: Bool -- ^ -ghci-script flag supported , flagProfAuto :: Bool -- ^ new style -fprof-auto* flags , flagPackageConf :: Bool -- ^ use package-conf instead of package-db , flagDebugInfo :: Bool -- ^ -g flag supported+ , supportsPkgEnvFiles :: Bool -- ^ picks up @.ghc.environment@ files+ , flagWarnMissingHomeModules :: Bool -- ^ -Wmissing-home-modules is supported } getImplInfo :: Compiler -> GhcImplInfo@@ -64,46 +59,36 @@ ", but found " ++ show x) ghcVersionImplInfo :: Version -> GhcImplInfo-ghcVersionImplInfo (Version v _) = GhcImplInfo- { hasCcOdirBug = v < [6,4,1]- , flagInfoLanguages = v >= [6,7]- , fakeRecordPuns = v >= [6,8] && v < [6,10]- , flagStubdir = v >= [6,8]- , flagOutputDir = v >= [6,10]- , noExtInSplitSuffix = v < [6,11]- , flagFfiIncludes = v < [6,11]- , flagBuildingCabalPkg = v >= [6,11]- , flagPackageId = v > [6,11]- , separateGccMingw = v < [6,12]- , supportsHaskell2010 = v >= [7]+ghcVersionImplInfo ver = GhcImplInfo+ { supportsHaskell2010 = v >= [7] , reportsNoExt = v >= [7] , alwaysNondecIndent = v < [7,1] , flagGhciScript = v >= [7,2] , flagProfAuto = v >= [7,4] , flagPackageConf = v < [7,5] , flagDebugInfo = v >= [7,10]+ , supportsPkgEnvFiles = v >= [8,0,1,20160901] -- broken in 8.0.1, fixed in 8.0.2+ , flagWarnMissingHomeModules = v >= [8,2] }+ where+ v = versionNumbers ver -ghcjsVersionImplInfo :: Version -> Version -> GhcImplInfo-ghcjsVersionImplInfo _ghcjsVer _ghcVer = GhcImplInfo- { hasCcOdirBug = False- , flagInfoLanguages = True- , fakeRecordPuns = False- , flagStubdir = True- , flagOutputDir = True- , noExtInSplitSuffix = False- , flagFfiIncludes = False- , flagBuildingCabalPkg = True- , flagPackageId = True- , separateGccMingw = False- , supportsHaskell2010 = True+ghcjsVersionImplInfo :: Version -- ^ The GHCJS version+ -> Version -- ^ The GHC version+ -> GhcImplInfo+ghcjsVersionImplInfo _ghcjsver ghcver = GhcImplInfo+ { supportsHaskell2010 = True , reportsNoExt = True , alwaysNondecIndent = False , flagGhciScript = True , flagProfAuto = True , flagPackageConf = False , flagDebugInfo = False+ , supportsPkgEnvFiles = ghcv >= [8,0,2] --TODO: check this works in ghcjs+ , flagWarnMissingHomeModules = False }+ where+ ghcv = versionNumbers ghcver lhcVersionImplInfo :: Version -> GhcImplInfo lhcVersionImplInfo = ghcVersionImplInfo
Distribution/Simple/GHC/Internal.hs view
@@ -1,4 +1,5 @@-{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-} ----------------------------------------------------------------------------- -- |@@ -27,12 +28,25 @@ substTopDir, checkPackageDbEnvVar, profDetailLevelFlag,- showArchString,- showOsString,+ -- * GHC platform and version strings+ ghcArchString,+ ghcOsString,+ ghcPlatformAndVersionString,+ -- * Constructing GHC environment files+ GhcEnvironmentFileEntry(..),+ writeGhcEnvironmentFile,+ simpleGhcEnvironmentFile,+ ghcEnvironmentFileName,+ renderGhcEnvironmentFile,+ renderGhcEnvironmentFileEntry, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.GHC.ImplInfo-import Distribution.Package+import Distribution.Types.ComponentLocalBuildInfo+import Distribution.Backpack import Distribution.InstalledPackageInfo import qualified Distribution.InstalledPackageInfo as InstalledPackageInfo import Distribution.PackageDescription as PD hiding (Flag)@@ -44,19 +58,21 @@ import qualified Distribution.ModuleName as ModuleName import Distribution.Simple.Program import Distribution.Simple.LocalBuildInfo+import Distribution.Types.UnitId+import Distribution.Types.LocalBuildInfo+import Distribution.Types.TargetInfo import Distribution.Simple.Utils import Distribution.Simple.BuildPaths import Distribution.System import Distribution.Text ( display, simpleParse ) import Distribution.Utils.NubList ( toNubListR ) import Distribution.Verbosity+import Distribution.Compat.Stack+import Distribution.Version (Version) import Language.Haskell.Extension -import qualified Data.Map as M-import Data.Char ( isSpace )-import Data.Maybe ( fromMaybe, maybeToList, isJust )-import Control.Monad ( unless, when )-import Data.Monoid as Mon ( Monoid(..) )+import qualified Data.Map as Map+import qualified Data.ByteString.Lazy.Char8 as BS import System.Directory ( getDirectoryContents, getTemporaryDirectory ) import System.Environment ( getEnv ) import System.FilePath ( (</>), (<.>), takeExtension@@ -70,10 +86,10 @@ -- configureToolchain :: GhcImplInfo -> ConfiguredProgram- -> M.Map String String- -> ProgramConfiguration- -> ProgramConfiguration-configureToolchain implInfo ghcProg ghcInfo =+ -> Map String String+ -> ProgramDb+ -> ProgramDb+configureToolchain _implInfo ghcProg ghcInfo = addKnownProgram gccProgram { programFindLocation = findProg gccProgramName extraGccPath, programPostConf = configureGcc@@ -92,8 +108,6 @@ compilerDir = takeDirectory (programPath ghcProg) baseDir = takeDirectory compilerDir mingwBinDir = baseDir </> "mingw" </> "bin"- libDir = baseDir </> "gcc-lib"- includeDir = baseDir </> "include" </> "mingw" isWindows = case buildOS of Windows -> True; _ -> False binPrefix = "" @@ -118,9 +132,7 @@ -- on Windows finding and configuring ghc's gcc & binutils is a bit special (windowsExtraGccDir, windowsExtraLdDir,- windowsExtraArDir, windowsExtraStripDir)- | separateGccMingw implInfo = (baseDir, libDir, libDir, libDir)- | otherwise = -- GHC >= 6.12+ windowsExtraArDir, windowsExtraStripDir) = let b = mingwBinDir </> binPrefix in (b, b, b, b) @@ -134,10 +146,10 @@ -- Read tool locations from the 'ghc --info' output. Useful when -- cross-compiling.- mbGccLocation = M.lookup "C compiler command" ghcInfo- mbLdLocation = M.lookup "ld command" ghcInfo- mbArLocation = M.lookup "ar command" ghcInfo- mbStripLocation = M.lookup "strip command" ghcInfo+ mbGccLocation = Map.lookup "C compiler command" ghcInfo+ mbLdLocation = Map.lookup "ld command" ghcInfo+ mbArLocation = Map.lookup "ar command" ghcInfo+ mbStripLocation = Map.lookup "strip command" ghcInfo ccFlags = getFlags "C compiler flags" -- GHC 7.8 renamed "Gcc Linker flags" to "C compiler link flags"@@ -153,35 +165,19 @@ -- flags ourself. getFlags :: String -> [String] getFlags key =- case M.lookup key ghcInfo of+ case Map.lookup key ghcInfo of Nothing -> [] Just flags | (flags', ""):_ <- reads flags -> flags' | otherwise -> tokenizeQuotedWords flags - configureGcc :: Verbosity -> ConfiguredProgram -> IO ConfiguredProgram- configureGcc v gccProg = do- gccProg' <- configureGcc' v gccProg- return gccProg' {- programDefaultArgs = programDefaultArgs gccProg'+ configureGcc :: Verbosity -> ConfiguredProgram -> NoCallStackIO ConfiguredProgram+ configureGcc _v gccProg = do+ return gccProg {+ programDefaultArgs = programDefaultArgs gccProg ++ ccFlags ++ gccLinkerFlags } - configureGcc' :: Verbosity -> ConfiguredProgram -> IO ConfiguredProgram- configureGcc'- | isWindows = \_ gccProg -> case programLocation gccProg of- -- if it's found on system then it means we're using the result- -- of programFindLocation above rather than a user-supplied path- -- Pre GHC 6.12, that meant we should add these flags to tell- -- ghc's gcc where it lives and thus where gcc can find its- -- various files:- FoundOnSystem {}- | separateGccMingw implInfo ->- return gccProg { programDefaultArgs = ["-B" ++ libDir,- "-I" ++ includeDir] }- _ -> return gccProg- | otherwise = \_ gccProg -> return gccProg- configureLd :: Verbosity -> ConfiguredProgram -> IO ConfiguredProgram configureLd v ldProg = do ldProg' <- configureLd' v ldProg@@ -197,7 +193,7 @@ withTempFile tempDir ".o" $ \testofile testohnd -> do hPutStrLn testchnd "int foo() { return 0; }" hClose testchnd; hClose testohnd- rawSystemProgram verbosity ghcProg+ runProgram verbosity ghcProg [ "-hide-all-packages" , "-c", testcfile , "-o", testofile@@ -205,7 +201,7 @@ withTempFile tempDir ".o" $ \testofile' testohnd' -> do hClose testohnd'- _ <- rawSystemProgramStdout verbosity ldProg+ _ <- getProgramOutput verbosity ldProg ["-x", "-r", testofile, "-o", testofile'] return True `catchIO` (\_ -> return False)@@ -215,7 +211,7 @@ else return ldProg getLanguages :: Verbosity -> GhcImplInfo -> ConfiguredProgram- -> IO [(Language, String)]+ -> NoCallStackIO [(Language, String)] getLanguages _ implInfo _ -- TODO: should be using --supported-languages rather than hard coding | supportsHaskell2010 implInfo = return [(Haskell98, "-XHaskell98")@@ -224,8 +220,7 @@ getGhcInfo :: Verbosity -> GhcImplInfo -> ConfiguredProgram -> IO [(String, String)]-getGhcInfo verbosity implInfo ghcProg- | flagInfoLanguages implInfo = do+getGhcInfo verbosity _implInfo ghcProg = do xs <- getProgramOutput verbosity (suppressOverrideArgs ghcProg) ["--info"] case reads xs of@@ -233,14 +228,11 @@ | all isSpace ss -> return i _ ->- die "Can't parse --info output of GHC"- | otherwise =- return []+ die' verbosity "Can't parse --info output of GHC" getExtensions :: Verbosity -> GhcImplInfo -> ConfiguredProgram -> IO [(Extension, String)]-getExtensions verbosity implInfo ghcProg- | flagInfoLanguages implInfo = do+getExtensions verbosity implInfo ghcProg = do str <- getProgramOutput verbosity (suppressOverrideArgs ghcProg) ["--supported-languages"] let extStrs = if reportsNoExt implInfo@@ -256,94 +248,31 @@ ] let extensions0 = [ (ext, "-X" ++ display ext) | Just ext <- map simpleParse extStrs ]- extensions1 = if fakeRecordPuns implInfo- then -- ghc-6.8 introduced RecordPuns however it- -- should have been NamedFieldPuns. We now- -- encourage packages to use NamedFieldPuns- -- so for compatibility we fake support for- -- it in ghc-6.8 by making it an alias for- -- the old RecordPuns extension.- (EnableExtension NamedFieldPuns, "-XRecordPuns") :- (DisableExtension NamedFieldPuns, "-XNoRecordPuns") :- extensions0- else extensions0- extensions2 = if alwaysNondecIndent implInfo+ extensions1 = if alwaysNondecIndent implInfo then -- ghc-7.2 split NondecreasingIndentation off -- into a proper extension. Before that it -- was always on. (EnableExtension NondecreasingIndentation, "") : (DisableExtension NondecreasingIndentation, "") :- extensions1- else extensions1- return extensions2-- | otherwise = return oldLanguageExtensions---- | For GHC 6.6.x and earlier, the mapping from supported extensions to flags-oldLanguageExtensions :: [(Extension, String)]-oldLanguageExtensions =- let doFlag (f, (enable, disable)) = [(EnableExtension f, enable),- (DisableExtension f, disable)]- fglasgowExts = ("-fglasgow-exts",- "") -- This is wrong, but we don't want to turn- -- all the extensions off when asked to just- -- turn one off- fFlag flag = ("-f" ++ flag, "-fno-" ++ flag)- in concatMap doFlag- [(OverlappingInstances , fFlag "allow-overlapping-instances")- ,(TypeSynonymInstances , fglasgowExts)- ,(TemplateHaskell , fFlag "th")- ,(ForeignFunctionInterface , fFlag "ffi")- ,(MonomorphismRestriction , fFlag "monomorphism-restriction")- ,(MonoPatBinds , fFlag "mono-pat-binds")- ,(UndecidableInstances , fFlag "allow-undecidable-instances")- ,(IncoherentInstances , fFlag "allow-incoherent-instances")- ,(Arrows , fFlag "arrows")- ,(Generics , fFlag "generics")- ,(ImplicitPrelude , fFlag "implicit-prelude")- ,(ImplicitParams , fFlag "implicit-params")- ,(CPP , ("-cpp", ""{- Wrong -}))- ,(BangPatterns , fFlag "bang-patterns")- ,(KindSignatures , fglasgowExts)- ,(RecursiveDo , fglasgowExts)- ,(ParallelListComp , fglasgowExts)- ,(MultiParamTypeClasses , fglasgowExts)- ,(FunctionalDependencies , fglasgowExts)- ,(Rank2Types , fglasgowExts)- ,(RankNTypes , fglasgowExts)- ,(PolymorphicComponents , fglasgowExts)- ,(ExistentialQuantification , fglasgowExts)- ,(ScopedTypeVariables , fFlag "scoped-type-variables")- ,(FlexibleContexts , fglasgowExts)- ,(FlexibleInstances , fglasgowExts)- ,(EmptyDataDecls , fglasgowExts)- ,(PatternGuards , fglasgowExts)- ,(GeneralizedNewtypeDeriving , fglasgowExts)- ,(MagicHash , fglasgowExts)- ,(UnicodeSyntax , fglasgowExts)- ,(PatternSignatures , fglasgowExts)- ,(UnliftedFFITypes , fglasgowExts)- ,(LiberalTypeSynonyms , fglasgowExts)- ,(TypeOperators , fglasgowExts)- ,(GADTs , fglasgowExts)- ,(RelaxedPolyRec , fglasgowExts)- ,(ExtendedDefaultRules , fFlag "extended-default-rules")- ,(UnboxedTuples , fglasgowExts)- ,(DeriveDataTypeable , fglasgowExts)- ,(ConstrainedClassMethods , fglasgowExts)- ]+ extensions0+ else extensions0+ return extensions1 componentCcGhcOptions :: Verbosity -> GhcImplInfo -> LocalBuildInfo -> BuildInfo -> ComponentLocalBuildInfo -> FilePath -> FilePath -> GhcOptions-componentCcGhcOptions verbosity implInfo lbi bi clbi pref filename =+componentCcGhcOptions verbosity _implInfo lbi bi clbi odir filename = mempty {- ghcOptVerbosity = toFlag verbosity,+ -- Respect -v0, but don't crank up verbosity on GHC if+ -- Cabal verbosity is requested. For that, use --ghc-option=-v instead!+ ghcOptVerbosity = toFlag (min verbosity normal), ghcOptMode = toFlag GhcModeCompile, ghcOptInputFiles = toNubListR [filename], - ghcOptCppIncludePath = toNubListR $ [autogenModulesDir lbi, odir]+ ghcOptCppIncludePath = toNubListR $ [autogenComponentModulesDir lbi clbi+ ,autogenPackageModulesDir lbi+ ,odir] ++ PD.includeDirs bi, ghcOptHideAllPackages= toFlag True, ghcOptPackageDBs = withPackageDB lbi,@@ -360,34 +289,48 @@ PD.ccOptions bi, ghcOptObjDir = toFlag odir }- where- odir | hasCcOdirBug implInfo = pref </> takeDirectory filename- | otherwise = pref- -- ghc 6.4.0 had a bug in -odir handling for C compilations. -componentGhcOptions :: Verbosity -> LocalBuildInfo+componentGhcOptions :: Verbosity -> GhcImplInfo -> LocalBuildInfo -> BuildInfo -> ComponentLocalBuildInfo -> FilePath -> GhcOptions-componentGhcOptions verbosity lbi bi clbi odir =+componentGhcOptions verbosity implInfo lbi bi clbi odir = mempty {- ghcOptVerbosity = toFlag verbosity,+ -- Respect -v0, but don't crank up verbosity on GHC if+ -- Cabal verbosity is requested. For that, use --ghc-option=-v instead!+ ghcOptVerbosity = toFlag (min verbosity normal), ghcOptCabal = toFlag True, ghcOptThisUnitId = case clbi of LibComponentLocalBuildInfo { componentCompatPackageKey = pk } -> toFlag pk- _ -> Mon.mempty,+ _ -> mempty,+ ghcOptThisComponentId = case clbi of+ LibComponentLocalBuildInfo { componentComponentId = cid+ , componentInstantiatedWith = insts } ->+ if null insts+ then mempty+ else toFlag cid+ _ -> mempty,+ ghcOptInstantiatedWith = case clbi of+ LibComponentLocalBuildInfo { componentInstantiatedWith = insts }+ -> insts+ _ -> [],+ ghcOptNoCode = toFlag $ componentIsIndefinite clbi, ghcOptHideAllPackages = toFlag True,+ ghcOptWarnMissingHomeModules = toFlag $ flagWarnMissingHomeModules implInfo, ghcOptPackageDBs = withPackageDB lbi, ghcOptPackages = toNubListR $ mkGhcOptPackages clbi, ghcOptSplitObjs = toFlag (splitObjs lbi), ghcOptSourcePathClear = toFlag True, ghcOptSourcePath = toNubListR $ [odir] ++ (hsSourceDirs bi)- ++ [autogenModulesDir lbi],- ghcOptCppIncludePath = toNubListR $ [autogenModulesDir lbi, odir]+ ++ [autogenComponentModulesDir lbi clbi]+ ++ [autogenPackageModulesDir lbi],+ ghcOptCppIncludePath = toNubListR $ [autogenComponentModulesDir lbi clbi+ ,autogenPackageModulesDir lbi+ ,odir] ++ PD.includeDirs bi, ghcOptCppOptions = toNubListR $ cppOptions bi, ghcOptCppIncludes = toNubListR $- [autogenModulesDir lbi </> cppHeaderName],+ [autogenComponentModulesDir lbi clbi </> cppHeaderName], ghcOptFfiIncludes = toNubListR $ PD.includes bi, ghcOptObjDir = toFlag odir, ghcOptHiDir = toFlag odir,@@ -396,10 +339,11 @@ ghcOptOptimisation = toGhcOptimisation (withOptimization lbi), ghcOptDebugInfo = toGhcDebugInfo (withDebugInfo lbi), ghcOptExtra = toNubListR $ hcOptions GHC bi,+ ghcOptExtraPath = toNubListR $ exe_paths, ghcOptLanguage = toFlag (fromMaybe Haskell98 (defaultLanguage bi)), -- Unsupported extensions have already been checked by configure ghcOptExtensions = toNubListR $ usedExtensions bi,- ghcOptExtensionMap = M.fromList . compilerExtensions $ (compiler lbi)+ ghcOptExtensionMap = Map.fromList . compilerExtensions $ (compiler lbi) } where toGhcOptimisation NoOptimisation = mempty --TODO perhaps override?@@ -412,6 +356,11 @@ toGhcDebugInfo NormalDebugInfo = toFlag True toGhcDebugInfo MaximalDebugInfo = toFlag True + exe_paths = [ componentBuildDir lbi (targetCLBI exe_tgt)+ | uid <- componentExeDeps clbi+ -- TODO: Ugh, localPkgDescr+ , Just exe_tgt <- [unitIdTarget' (localPkgDescr lbi) lbi uid] ]+ -- | Strip out flags that are not supported in ghci filterGhciFlags :: [String] -> [String] filterGhciFlags = filter supported@@ -430,22 +379,21 @@ ghcLookupProperty :: String -> Compiler -> Bool ghcLookupProperty prop comp =- case M.lookup prop (compilerProperties comp) of+ case Map.lookup prop (compilerProperties comp) of Just "YES" -> True _ -> False -- when using -split-objs, we need to search for object files in the -- Module_split directory for each module. getHaskellObjects :: GhcImplInfo -> Library -> LocalBuildInfo- -> FilePath -> String -> Bool -> IO [FilePath]-getHaskellObjects implInfo lib lbi pref wanted_obj_ext allow_split_objs+ -> ComponentLocalBuildInfo+ -> FilePath -> String -> Bool -> NoCallStackIO [FilePath]+getHaskellObjects _implInfo lib lbi clbi pref wanted_obj_ext allow_split_objs | splitObjs lbi && allow_split_objs = do- let splitSuffix = if noExtInSplitSuffix implInfo- then "_split"- else "_" ++ wanted_obj_ext ++ "_split"+ let splitSuffix = "_" ++ wanted_obj_ext ++ "_split" dirs = [ pref </> (ModuleName.toFilePath x ++ splitSuffix)- | x <- libModules lib ]- objss <- mapM getDirectoryContents dirs+ | x <- allLibModules lib clbi ]+ objss <- traverse getDirectoryContents dirs let objs = [ dir </> obj | (objs',dir) <- zip objss dirs, obj <- objs', let obj_ext = takeExtension obj,@@ -453,13 +401,11 @@ return objs | otherwise = return [ pref </> ModuleName.toFilePath x <.> wanted_obj_ext- | x <- libModules lib ]+ | x <- allLibModules lib clbi ] mkGhcOptPackages :: ComponentLocalBuildInfo- -> [(UnitId, PackageId, ModuleRenaming)]-mkGhcOptPackages clbi =- map (\(i,p) -> (i,p,lookupRenaming p (componentPackageRenaming clbi)))- (componentPackageDeps clbi)+ -> [(OpenUnitId, ModuleRenaming)]+mkGhcOptPackages = componentIncludes substTopDir :: FilePath -> InstalledPackageInfo -> InstalledPackageInfo substTopDir topDir ipo@@ -490,22 +436,24 @@ -- CABAL_SANDBOX_PACKAGE_PATH to the same value that it set -- GHC{,JS}_PACKAGE_PATH to. If that is the case it is OK to allow -- GHC{,JS}_PACKAGE_PATH.-checkPackageDbEnvVar :: String -> String -> IO ()-checkPackageDbEnvVar compilerName packagePathEnvVar = do+checkPackageDbEnvVar :: Verbosity -> String -> String -> IO ()+checkPackageDbEnvVar verbosity compilerName packagePathEnvVar = do mPP <- lookupEnv packagePathEnvVar when (isJust mPP) $ do mcsPP <- lookupEnv "CABAL_SANDBOX_PACKAGE_PATH" unless (mPP == mcsPP) abort where- lookupEnv :: String -> IO (Maybe String)+ lookupEnv :: String -> NoCallStackIO (Maybe String) lookupEnv name = (Just `fmap` getEnv name) `catchIO` const (return Nothing) abort =- die $ "Use of " ++ compilerName ++ "'s environment variable "+ die' verbosity $ "Use of " ++ compilerName ++ "'s environment variable " ++ packagePathEnvVar ++ " is incompatible with Cabal. Use the " ++ "flag --package-db to specify a package database (it can be " ++ "used multiple times)." + _ = callStack -- TODO: output stack when erroring+ profDetailLevelFlag :: Bool -> ProfDetailLevel -> Flag GhcProfAuto profDetailLevelFlag forLib mpl = case mpl of@@ -517,19 +465,100 @@ ProfDetailAllFunctions -> toFlag GhcProfAutoAll ProfDetailOther _ -> mempty ++-- -----------------------------------------------------------------------------+-- GHC platform and version strings+ -- | GHC's rendering of it's host or target 'Arch' as used in its platform -- strings and certain file locations (such as user package db location). ---showArchString :: Arch -> String-showArchString PPC = "powerpc"-showArchString PPC64 = "powerpc64"-showArchString other = display other+ghcArchString :: Arch -> String+ghcArchString PPC = "powerpc"+ghcArchString PPC64 = "powerpc64"+ghcArchString other = display other -- | GHC's rendering of it's host or target 'OS' as used in its platform -- strings and certain file locations (such as user package db location). ---showOsString :: OS -> String-showOsString Windows = "mingw32"-showOsString OSX = "darwin"-showOsString Solaris = "solaris2"-showOsString other = display other+ghcOsString :: OS -> String+ghcOsString Windows = "mingw32"+ghcOsString OSX = "darwin"+ghcOsString Solaris = "solaris2"+ghcOsString other = display other++-- | GHC's rendering of it's platform and compiler version string as used in+-- certain file locations (such as user package db location).+-- For example @x86_64-linux-7.10.4@+--+ghcPlatformAndVersionString :: Platform -> Version -> String+ghcPlatformAndVersionString (Platform arch os) version =+ intercalate "-" [ ghcArchString arch, ghcOsString os, display version ]+++-- -----------------------------------------------------------------------------+-- Constructing GHC environment files++-- | The kinds of entries we can stick in a @.ghc.environment@ file.+--+data GhcEnvironmentFileEntry =+ GhcEnvFileComment String -- ^ @-- a comment@+ | GhcEnvFilePackageId UnitId -- ^ @package-id foo-1.0-4fe301a...@+ | GhcEnvFilePackageDb PackageDB -- ^ @global-package-db@,+ -- @user-package-db@ or+ -- @package-db blah/package.conf.d/@+ | GhcEnvFileClearPackageDbStack -- ^ @clear-package-db@++-- | Make entries for a GHC environment file based on a 'PackageDBStack' and+-- a bunch of package (unit) ids.+--+-- If you need to do anything more complicated then either use this as a basis+-- and add more entries, or just make all the entries directly.+--+simpleGhcEnvironmentFile :: PackageDBStack+ -> [UnitId]+ -> [GhcEnvironmentFileEntry]+simpleGhcEnvironmentFile packageDBs pkgids =+ GhcEnvFileClearPackageDbStack+ : map GhcEnvFilePackageDb packageDBs+ ++ map GhcEnvFilePackageId pkgids++-- | Write a @.ghc.environment-$arch-$os-$ver@ file in the given directory.+--+-- The 'Platform' and GHC 'Version' are needed as part of the file name.+--+writeGhcEnvironmentFile :: FilePath -- ^ directory in which to put it+ -> Platform -- ^ the GHC target platform+ -> Version -- ^ the GHC version+ -> [GhcEnvironmentFileEntry] -- ^ the content+ -> NoCallStackIO ()+writeGhcEnvironmentFile directory platform ghcversion =+ writeFileAtomic envfile . BS.pack . renderGhcEnvironmentFile+ where+ envfile = directory </> ghcEnvironmentFileName platform ghcversion++-- | The @.ghc.environment-$arch-$os-$ver@ file name+--+ghcEnvironmentFileName :: Platform -> Version -> FilePath+ghcEnvironmentFileName platform ghcversion =+ ".ghc.environment." ++ ghcPlatformAndVersionString platform ghcversion++-- | Render a bunch of GHC environment file entries+--+renderGhcEnvironmentFile :: [GhcEnvironmentFileEntry] -> String+renderGhcEnvironmentFile =+ unlines . map renderGhcEnvironmentFileEntry++-- | Render an individual GHC environment file entry+--+renderGhcEnvironmentFileEntry :: GhcEnvironmentFileEntry -> String+renderGhcEnvironmentFileEntry entry = case entry of+ GhcEnvFileComment comment -> format comment+ where format = intercalate "\n" . map ("-- " ++) . lines+ GhcEnvFilePackageId pkgid -> "package-id " ++ display pkgid+ GhcEnvFilePackageDb pkgdb ->+ case pkgdb of+ GlobalPackageDB -> "global-package-db"+ UserPackageDB -> "user-package-db"+ SpecificPackageDB dbfile -> "package-db " ++ dbfile+ GhcEnvFileClearPackageDbStack -> "clear-package-db"+
Distribution/Simple/GHCJS.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ module Distribution.Simple.GHCJS ( configure, getInstalledPackages, getPackageDBContents, buildLib, buildExe,@@ -14,11 +17,14 @@ runCmd ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.UnqualComponentName import Distribution.Simple.GHC.ImplInfo import qualified Distribution.Simple.GHC.Internal as Internal import Distribution.PackageDescription as PD import Distribution.InstalledPackageInfo-import Distribution.Package import Distribution.Simple.PackageIndex ( InstalledPackageIndex ) import qualified Distribution.Simple.PackageIndex as PackageIndex import Distribution.Simple.LocalBuildInfo@@ -39,45 +45,43 @@ import Distribution.Verbosity import Distribution.Utils.NubList import Distribution.Text+import Distribution.Types.UnitId import Language.Haskell.Extension -import Control.Monad ( unless, when )-import Data.Char ( isSpace )-import qualified Data.Map as M ( fromList )-import Data.Monoid as Mon ( Monoid(..) )+import qualified Data.Map as Map import System.Directory ( doesFileExist ) import System.FilePath ( (</>), (<.>), takeExtension , takeDirectory, replaceExtension ) configure :: Verbosity -> Maybe FilePath -> Maybe FilePath- -> ProgramConfiguration- -> IO (Compiler, Maybe Platform, ProgramConfiguration)-configure verbosity hcPath hcPkgPath conf0 = do- (ghcjsProg, ghcjsVersion, conf1) <-+ -> ProgramDb+ -> IO (Compiler, Maybe Platform, ProgramDb)+configure verbosity hcPath hcPkgPath progdb0 = do+ (ghcjsProg, ghcjsVersion, progdb1) <- requireProgramVersion verbosity ghcjsProgram- (orLaterVersion (Version [0,1] []))- (userMaybeSpecifyPath "ghcjs" hcPath conf0)+ (orLaterVersion (mkVersion [0,1]))+ (userMaybeSpecifyPath "ghcjs" hcPath progdb0) Just ghcjsGhcVersion <- findGhcjsGhcVersion verbosity (programPath ghcjsProg) let implInfo = ghcjsVersionImplInfo ghcjsVersion ghcjsGhcVersion -- This is slightly tricky, we have to configure ghcjs first, then we use the -- location of ghcjs to help find ghcjs-pkg in the case that the user did not -- specify the location of ghc-pkg directly:- (ghcjsPkgProg, ghcjsPkgVersion, conf2) <-+ (ghcjsPkgProg, ghcjsPkgVersion, progdb2) <- requireProgramVersion verbosity ghcjsPkgProgram { programFindLocation = guessGhcjsPkgFromGhcjsPath ghcjsProg }- anyVersion (userMaybeSpecifyPath "ghcjs-pkg" hcPkgPath conf1)+ anyVersion (userMaybeSpecifyPath "ghcjs-pkg" hcPkgPath progdb1) Just ghcjsPkgGhcjsVersion <- findGhcjsPkgGhcjsVersion verbosity (programPath ghcjsPkgProg) - when (ghcjsVersion /= ghcjsPkgGhcjsVersion) $ die $+ when (ghcjsVersion /= ghcjsPkgGhcjsVersion) $ die' verbosity $ "Version mismatch between ghcjs and ghcjs-pkg: " ++ programPath ghcjsProg ++ " is version " ++ display ghcjsVersion ++ " " ++ programPath ghcjsPkgProg ++ " is version " ++ display ghcjsPkgGhcjsVersion - when (ghcjsGhcVersion /= ghcjsPkgVersion) $ die $+ when (ghcjsGhcVersion /= ghcjsPkgVersion) $ die' verbosity $ "Version mismatch between ghcjs and ghcjs-pkg: " ++ programPath ghcjsProg ++ " was built with GHC version " ++ display ghcjsGhcVersion ++ " "@@ -95,18 +99,18 @@ haddockProgram' = haddockProgram { programFindLocation = guessHaddockFromGhcjsPath ghcjsProg }- conf3 = addKnownPrograms [ hsc2hsProgram', c2hsProgram', haddockProgram' ] conf2+ progdb3 = addKnownPrograms [ hsc2hsProgram', c2hsProgram', haddockProgram' ] progdb2 languages <- Internal.getLanguages verbosity implInfo ghcjsProg extensions <- Internal.getExtensions verbosity implInfo ghcjsProg ghcInfo <- Internal.getGhcInfo verbosity implInfo ghcjsProg- let ghcInfoMap = M.fromList ghcInfo+ let ghcInfoMap = Map.fromList ghcInfo let comp = Compiler { compilerId = CompilerId GHCJS ghcjsVersion, compilerAbiTag = AbiTag $- "ghc" ++ intercalate "_" (map show . versionBranch $ ghcjsGhcVersion),+ "ghc" ++ intercalate "_" (map show . versionNumbers $ ghcjsGhcVersion), compilerCompat = [CompilerId GHC ghcjsGhcVersion], compilerLanguages = languages, compilerExtensions = extensions,@@ -114,11 +118,11 @@ } compPlatform = Internal.targetPlatform ghcInfo -- configure gcc and ld- let conf4 = if ghcjsNativeToo comp+ let progdb4 = if ghcjsNativeToo comp then Internal.configureToolchain implInfo- ghcjsProg ghcInfoMap conf3- else conf3- return (comp, compPlatform, conf4)+ ghcjsProg ghcInfoMap progdb3+ else progdb3+ return (comp, compPlatform, progdb4) ghcjsNativeToo :: Compiler -> Bool ghcjsNativeToo = Internal.ghcLookupProperty "Native Too"@@ -160,7 +164,7 @@ guessNormal] info verbosity $ "looking for tool " ++ toolname ++ " near compiler in " ++ dir- exists <- mapM doesFileExist guesses+ exists <- traverse doesFileExist guesses case [ file | (file, True) <- zip guesses exists ] of -- If we can't find it near ghc, fall back to the usual -- method.@@ -176,27 +180,27 @@ reverse -- | Given a single package DB, return all installed packages.-getPackageDBContents :: Verbosity -> PackageDB -> ProgramConfiguration+getPackageDBContents :: Verbosity -> PackageDB -> ProgramDb -> IO InstalledPackageIndex-getPackageDBContents verbosity packagedb conf = do- pkgss <- getInstalledPackages' verbosity [packagedb] conf- toPackageIndex verbosity pkgss conf+getPackageDBContents verbosity packagedb progdb = do+ pkgss <- getInstalledPackages' verbosity [packagedb] progdb+ toPackageIndex verbosity pkgss progdb -- | Given a package DB stack, return all installed packages.-getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramConfiguration+getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex-getInstalledPackages verbosity packagedbs conf = do- checkPackageDbEnvVar- checkPackageDbStack packagedbs- pkgss <- getInstalledPackages' verbosity packagedbs conf- index <- toPackageIndex verbosity pkgss conf+getInstalledPackages verbosity packagedbs progdb = do+ checkPackageDbEnvVar verbosity+ checkPackageDbStack verbosity packagedbs+ pkgss <- getInstalledPackages' verbosity packagedbs progdb+ index <- toPackageIndex verbosity pkgss progdb return $! index toPackageIndex :: Verbosity -> [(PackageDB, [InstalledPackageInfo])]- -> ProgramConfiguration+ -> ProgramDb -> IO InstalledPackageIndex-toPackageIndex verbosity pkgss conf = do+toPackageIndex verbosity pkgss progdb = do -- On Windows, various fields have $topdir/foo rather than full -- paths. We need to substitute the right value in so that when -- we, for example, call gcc, we have proper paths to give it.@@ -206,48 +210,48 @@ return $! (mconcat indices) where- Just ghcjsProg = lookupProgram ghcjsProgram conf+ Just ghcjsProg = lookupProgram ghcjsProgram progdb -checkPackageDbEnvVar :: IO ()-checkPackageDbEnvVar =- Internal.checkPackageDbEnvVar "GHCJS" "GHCJS_PACKAGE_PATH"+checkPackageDbEnvVar :: Verbosity -> IO ()+checkPackageDbEnvVar verbosity =+ Internal.checkPackageDbEnvVar verbosity "GHCJS" "GHCJS_PACKAGE_PATH" -checkPackageDbStack :: PackageDBStack -> IO ()-checkPackageDbStack (GlobalPackageDB:rest)+checkPackageDbStack :: Verbosity -> PackageDBStack -> IO ()+checkPackageDbStack _ (GlobalPackageDB:rest) | GlobalPackageDB `notElem` rest = return ()-checkPackageDbStack rest+checkPackageDbStack verbosity rest | GlobalPackageDB `notElem` rest =- die $ "With current ghc versions the global package db is always used "+ die' verbosity $ "With current ghc versions the global package db is always used " ++ "and must be listed first. This ghc limitation may be lifted in " ++ "future, see http://hackage.haskell.org/trac/ghc/ticket/5977"-checkPackageDbStack _ =- die $ "If the global package db is specified, it must be "+checkPackageDbStack verbosity _ =+ die' verbosity $ "If the global package db is specified, it must be " ++ "specified first and cannot be specified multiple times" -getInstalledPackages' :: Verbosity -> [PackageDB] -> ProgramConfiguration+getInstalledPackages' :: Verbosity -> [PackageDB] -> ProgramDb -> IO [(PackageDB, [InstalledPackageInfo])]-getInstalledPackages' verbosity packagedbs conf =- sequence- [ do pkgs <- HcPkg.dump (hcPkgInfo conf) verbosity packagedb+getInstalledPackages' verbosity packagedbs progdb =+ sequenceA+ [ do pkgs <- HcPkg.dump (hcPkgInfo progdb) verbosity packagedb return (packagedb, pkgs) | packagedb <- packagedbs ] getLibDir :: Verbosity -> LocalBuildInfo -> IO FilePath getLibDir verbosity lbi = (reverse . dropWhile isSpace . reverse) `fmap`- rawSystemProgramStdoutConf verbosity ghcjsProgram+ getDbProgramOutput verbosity ghcjsProgram (withPrograms lbi) ["--print-libdir"] getLibDir' :: Verbosity -> ConfiguredProgram -> IO FilePath getLibDir' verbosity ghcjsProg = (reverse . dropWhile isSpace . reverse) `fmap`- rawSystemProgramStdout verbosity ghcjsProg ["--print-libdir"]+ getProgramOutput verbosity ghcjsProg ["--print-libdir"] -- | Return the 'FilePath' to the global GHC package database. getGlobalPackageDB :: Verbosity -> ConfiguredProgram -> IO FilePath getGlobalPackageDB verbosity ghcjsProg = (reverse . dropWhile isSpace . reverse) `fmap`- rawSystemProgramStdout verbosity ghcjsProg ["--print-global-package-db"]+ getProgramOutput verbosity ghcjsProg ["--print-global-package-db"] toJSLibName :: String -> String toJSLibName lib@@ -265,8 +269,8 @@ buildOrReplLib :: Bool -> Verbosity -> Cabal.Flag (Maybe Int) -> PackageDescription -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO ()-buildOrReplLib forRepl verbosity numJobs _pkg_descr lbi lib clbi = do- let libName = componentUnitId clbi+buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do+ let uid = componentUnitId clbi libTargetDir = buildDir lbi whenVanillaLib forceVanilla = when (not forRepl && (forceVanilla || withVanillaLib lbi))@@ -292,14 +296,12 @@ -- Determine if program coverage should be enabled and if so, what -- '-hpcdir' should be.- let isCoverageEnabled = fromFlag $ configCoverage $ configFlags lbi- -- Component name. Not 'libName' because that has the "HS" prefix- -- that GHC gives Haskell libraries.- cname = display $ PD.package $ localPkgDescr lbi+ let isCoverageEnabled = libCoverage lbi+ pkg_name = display $ PD.package pkg_descr distPref = fromFlag $ configDistPref $ configFlags lbi hpcdir way- | isCoverageEnabled = toFlag $ Hpc.mixDir distPref way cname- | otherwise = Mon.mempty+ | isCoverageEnabled = toFlag $ Hpc.mixDir distPref way pkg_name+ | otherwise = mempty createDirectoryIfMissingVerbose verbosity True libTargetDir -- TODO: do we need to put hs-boot files into place for mutually recursive@@ -309,14 +311,14 @@ baseOpts = componentGhcOptions verbosity lbi libBi clbi libTargetDir linkJsLibOpts = mempty { ghcOptExtra = toNubListR $- [ "-link-js-lib" , getHSLibraryName libName+ [ "-link-js-lib" , getHSLibraryName uid , "-js-lib-outputdir", libTargetDir ] ++ concatMap (\x -> ["-js-lib-src",x]) jsSrcs } vanillaOptsNoJsLib = baseOpts `mappend` mempty { ghcOptMode = toFlag GhcModeMake, ghcOptNumJobs = numJobs,- ghcOptInputModules = toNubListR $ libModules lib,+ ghcOptInputModules = toNubListR $ allLibModules lib clbi, ghcOptHPCDir = hpcdir Hpc.Vanilla } vanillaOpts = vanillaOptsNoJsLib `mappend` linkJsLibOpts@@ -362,7 +364,7 @@ ghcOptHPCDir = hpcdir Hpc.Dyn } - unless (forRepl || (null (libModules lib) && null jsSrcs && null cObjs)) $+ unless (forRepl || (null (allLibModules lib clbi) && null jsSrcs && null cObjs)) $ do let vanilla = whenVanillaLib forceVanillaLib (runGhcjsProg vanillaOpts) shared = whenSharedLib forceSharedLib (runGhcjsProg sharedOpts) useDynToo = dynamicTooSupported &&@@ -413,7 +415,7 @@ -- TODO: problem here is we need the .c files built first, so we can load them -- with ghci, but .c files can depend on .h files generated by ghc by ffi -- exports.- unless (null (libModules lib)) $+ unless (null (allLibModules lib clbi)) $ ifReplLib (runGhcjsProg replOpts) -- link:@@ -423,22 +425,22 @@ (cSources libBi) cSharedObjs = map (`replaceExtension` ("dyn_" ++ objExtension)) (cSources libBi)- cid = compilerId (compiler lbi)- vanillaLibFilePath = libTargetDir </> mkLibName libName- profileLibFilePath = libTargetDir </> mkProfLibName libName- sharedLibFilePath = libTargetDir </> mkSharedLibName cid libName- ghciLibFilePath = libTargetDir </> Internal.mkGHCiLibName libName+ compiler_id = compilerId (compiler lbi)+ vanillaLibFilePath = libTargetDir </> mkLibName uid+ profileLibFilePath = libTargetDir </> mkProfLibName uid+ sharedLibFilePath = libTargetDir </> mkSharedLibName compiler_id uid+ ghciLibFilePath = libTargetDir </> Internal.mkGHCiLibName uid - hObjs <- Internal.getHaskellObjects implInfo lib lbi+ hObjs <- Internal.getHaskellObjects implInfo lib lbi clbi libTargetDir objExtension True hProfObjs <- if (withProfLib lbi)- then Internal.getHaskellObjects implInfo lib lbi+ then Internal.getHaskellObjects implInfo lib lbi clbi libTargetDir ("p_" ++ objExtension) True else return [] hSharedObjs <- if (withSharedLib lbi)- then Internal.getHaskellObjects implInfo lib lbi+ then Internal.getHaskellObjects implInfo lib lbi clbi libTargetDir ("dyn_" ++ objExtension) False else return [] @@ -490,15 +492,15 @@ runGhcjsProg ghcSharedLinkArgs -- | Start a REPL without loading any source files.-startInterpreter :: Verbosity -> ProgramConfiguration -> Compiler -> Platform+startInterpreter :: Verbosity -> ProgramDb -> Compiler -> Platform -> PackageDBStack -> IO ()-startInterpreter verbosity conf comp platform packageDBs = do+startInterpreter verbosity progdb comp platform packageDBs = do let replOpts = mempty { ghcOptMode = toFlag GhcModeInteractive, ghcOptPackageDBs = packageDBs }- checkPackageDbStack packageDBs- (ghcjsProg, _) <- requireProgram verbosity ghcjsProgram conf+ checkPackageDbStack verbosity packageDBs+ (ghcjsProg, _) <- requireProgram verbosity ghcjsProgram progdb runGHC verbosity ghcjsProg comp platform replOpts buildExe, replExe :: Verbosity -> Cabal.Flag (Maybe Int)@@ -520,14 +522,15 @@ runGhcjsProg = runGHC verbosity ghcjsProg comp platform exeBi = buildInfo exe + let exeName'' = unUnqualComponentName exeName' -- exeNameReal, the name that GHC really uses (with .exe on Windows)- let exeNameReal = exeName' <.>- (if takeExtension exeName' /= ('.':exeExtension)+ let exeNameReal = exeName'' <.>+ (if takeExtension exeName'' /= ('.':exeExtension) then exeExtension else "") - let targetDir = (buildDir lbi) </> exeName'- let exeDir = targetDir </> (exeName' ++ "-tmp")+ let targetDir = (buildDir lbi) </> exeName''+ let exeDir = targetDir </> (exeName'' ++ "-tmp") createDirectoryIfMissingVerbose verbosity True targetDir createDirectoryIfMissingVerbose verbosity True exeDir -- TODO: do we need to put hs-boot files into place for mutually recursive@@ -535,10 +538,10 @@ -- Determine if program coverage should be enabled and if so, what -- '-hpcdir' should be.- let isCoverageEnabled = fromFlag $ configCoverage $ configFlags lbi+ let isCoverageEnabled = exeCoverage lbi distPref = fromFlag $ configDistPref $ configFlags lbi hpcdir way- | isCoverageEnabled = toFlag $ Hpc.mixDir distPref way exeName'+ | isCoverageEnabled = toFlag $ Hpc.mixDir distPref way exeName'' | otherwise = mempty -- build executables@@ -725,17 +728,17 @@ installSharedNative = install True False copyModuleFiles ext =- findModuleFiles [builtDir] [ext] (libModules lib)+ findModuleFiles [builtDir] [ext] (allLibModules lib clbi) >>= installOrdinaryFiles verbosity targetDir - cid = compilerId (compiler lbi)- libName = componentUnitId clbi- vanillaLibName = mkLibName libName- profileLibName = mkProfLibName libName- ghciLibName = Internal.mkGHCiLibName libName- sharedLibName = (mkSharedLibName cid) libName+ compiler_id = compilerId (compiler lbi)+ uid = componentUnitId clbi+ vanillaLibName = mkLibName uid+ profileLibName = mkProfLibName uid+ ghciLibName = Internal.mkGHCiLibName uid+ sharedLibName = (mkSharedLibName compiler_id) uid - hasLib = not $ null (libModules lib)+ hasLib = not $ null (allLibModules lib clbi) && null (cSources (libBuildInfo lib)) whenVanilla = when (hasLib && withVanillaLib lbi) whenProf = when (hasLib && withProfLib lbi)@@ -744,22 +747,22 @@ installExe :: Verbosity -> LocalBuildInfo- -> InstallDirs FilePath -- ^Where to copy the files to+ -> FilePath -- ^Where to copy the files to -> FilePath -- ^Build location -> (FilePath, FilePath) -- ^Executable (prefix,suffix) -> PackageDescription -> Executable -> IO ()-installExe verbosity lbi installDirs buildPref+installExe verbosity lbi binDir buildPref (progprefix, progsuffix) _pkg exe = do- let binDir = bindir installDirs createDirectoryIfMissingVerbose verbosity True binDir- let exeFileName = exeName exe- fixedExeBaseName = progprefix ++ exeName exe ++ progsuffix+ let exeName' = unUnqualComponentName $ exeName exe+ exeFileName = exeName'+ fixedExeBaseName = progprefix ++ exeName' ++ progsuffix installBinary dest = do- rawSystemProgramConf verbosity ghcjsProgram (withPrograms lbi) $+ runDbProgram verbosity ghcjsProgram (withPrograms lbi) $ [ "--install-executable"- , buildPref </> exeName exe </> exeFileName+ , buildPref </> exeName' </> exeFileName , "-o", dest ] ++ case (stripExes lbi, lookupProgram stripProgram $ withPrograms lbi) of@@ -801,25 +804,22 @@ } registerPackage :: Verbosity- -> ProgramConfiguration- -> Bool+ -> ProgramDb -> PackageDBStack -> InstalledPackageInfo+ -> HcPkg.RegisterOptions -> IO ()-registerPackage verbosity progdb multiInstance packageDbs installedPkgInfo- | multiInstance- = HcPkg.registerMultiInstance (hcPkgInfo progdb) verbosity- packageDbs installedPkgInfo-- | otherwise- = HcPkg.reregister (hcPkgInfo progdb) verbosity- packageDbs (Right installedPkgInfo)+registerPackage verbosity progdb packageDbs installedPkgInfo registerOptions =+ HcPkg.register (hcPkgInfo progdb) verbosity packageDbs+ installedPkgInfo registerOptions componentGhcOptions :: Verbosity -> LocalBuildInfo -> BuildInfo -> ComponentLocalBuildInfo -> FilePath -> GhcOptions componentGhcOptions verbosity lbi bi clbi odir =- let opts = Internal.componentGhcOptions verbosity lbi bi clbi odir+ let opts = Internal.componentGhcOptions verbosity implInfo lbi bi clbi odir+ comp = compiler lbi+ implInfo = getImplInfo comp in opts { ghcOptExtra = ghcOptExtra opts `mappend` toNubListR (hcOptions GHCJS bi) }@@ -849,31 +849,32 @@ -- ----------------------------------------------------------------------------- -- Registering -hcPkgInfo :: ProgramConfiguration -> HcPkg.HcPkgInfo-hcPkgInfo conf = HcPkg.HcPkgInfo { HcPkg.hcPkgProgram = ghcjsPkgProg- , HcPkg.noPkgDbStack = False- , HcPkg.noVerboseFlag = False- , HcPkg.flagPackageConf = False- , HcPkg.supportsDirDbs = True- , HcPkg.requiresDirDbs = v >= [7,10]- , HcPkg.nativeMultiInstance = v >= [7,10]- , HcPkg.recacheMultiInstance = True- }+hcPkgInfo :: ProgramDb -> HcPkg.HcPkgInfo+hcPkgInfo progdb = HcPkg.HcPkgInfo { HcPkg.hcPkgProgram = ghcjsPkgProg+ , HcPkg.noPkgDbStack = False+ , HcPkg.noVerboseFlag = False+ , HcPkg.flagPackageConf = False+ , HcPkg.supportsDirDbs = True+ , HcPkg.requiresDirDbs = ver >= v7_10+ , HcPkg.nativeMultiInstance = ver >= v7_10+ , HcPkg.recacheMultiInstance = True+ , HcPkg.suppressFilesCheck = True+ } where- v = versionBranch ver- Just ghcjsPkgProg = lookupProgram ghcjsPkgProgram conf+ v7_10 = mkVersion [7,10]+ Just ghcjsPkgProg = lookupProgram ghcjsPkgProgram progdb Just ver = programVersion ghcjsPkgProg -- | Get the JavaScript file name and command and arguments to run a -- program compiled by GHCJS -- the exe should be the base program name without exe extension-runCmd :: ProgramConfiguration -> FilePath+runCmd :: ProgramDb -> FilePath -> (FilePath, FilePath, [String])-runCmd conf exe =+runCmd progdb exe = ( script , programPath ghcjsProg , programDefaultArgs ghcjsProg ++ programOverrideArgs ghcjsProg ++ ["--run"] ) where script = exe <.> "jsexe" </> "all" <.> "js"- Just ghcjsProg = lookupProgram ghcjsProgram conf+ Just ghcjsProg = lookupProgram ghcjsProgram progdb
Distribution/Simple/Haddock.hs view
@@ -1,4 +1,6 @@ {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-} ----------------------------------------------------------------------------- -- |@@ -22,11 +24,18 @@ haddockPackagePaths ) where +import Prelude ()+import Distribution.Compat.Prelude+ import qualified Distribution.Simple.GHC as GHC import qualified Distribution.Simple.GHCJS as GHCJS -- local-import Distribution.Compat.Semigroup as Semi+import Distribution.Backpack.DescribeUnitId+import Distribution.Types.ForeignLib+import Distribution.Types.UnqualComponentName+import Distribution.Types.ComponentLocalBuildInfo+import Distribution.Types.ExecutableScope import Distribution.Package import qualified Distribution.ModuleName as ModuleName import Distribution.PackageDescription as PD hiding (Flag)@@ -50,17 +59,12 @@ import Distribution.Verbosity import Language.Haskell.Extension +import Distribution.Compat.Semigroup (All (..), Any (..)) -import Control.Monad ( when, forM_ )-import Data.Char ( isSpace ) import Data.Either ( rights )-import Data.Foldable ( traverse_, foldl' )-import Data.Maybe ( fromMaybe, listToMaybe )-import GHC.Generics ( Generic ) import System.Directory (doesFileExist)-import System.FilePath ( (</>), (<.>)- , normalise, splitPath, joinPath, isAbsolute )+import System.FilePath ( (</>), (<.>), normalise, isAbsolute ) import System.IO (hClose, hPutStr, hPutStrLn, hSetEncoding, utf8) -- ------------------------------------------------------------------------------@@ -106,7 +110,7 @@ newtype Directory = Dir { unDir' :: FilePath } deriving (Read,Show,Eq,Ord) unDir :: Directory -> FilePath-unDir = joinPath . filter (\p -> p /="./" && p /= ".") . splitPath . unDir'+unDir = normalise . unDir' type Template = String @@ -124,11 +128,13 @@ | not (hasLibs pkg_descr) && not (fromFlag $ haddockExecutables haddockFlags) && not (fromFlag $ haddockTestSuites haddockFlags)- && not (fromFlag $ haddockBenchmarks haddockFlags) =+ && not (fromFlag $ haddockBenchmarks haddockFlags)+ && not (fromFlag $ haddockForeignLibs haddockFlags)+ = warn (fromFlag $ haddockVerbosity haddockFlags) $ "No documentation was generated as this package does not contain "- ++ "a library. Perhaps you want to use the --executables, --tests or"- ++ " --benchmarks flags."+ ++ "a library. Perhaps you want to use the --executables, --tests,"+ ++ " --benchmarks or --foreign-libraries flags." haddock pkg_descr lbi suffixes flags' = do let verbosity = flag haddockVerbosity@@ -152,26 +158,25 @@ htmlTemplate = fmap toPathTemplate . flagToMaybe . haddockHtmlLocation $ flags haddockTarget =- haddockTargetFromFlag (haddockForHackage flags')+ fromFlagOrDefault ForDevelopment (haddockForHackage flags') - setupMessage verbosity "Running Haddock for" (packageId pkg_descr)- (confHaddock, version, _) <-+ (haddockProg, version, _) <- requireProgramVersion verbosity haddockProgram- (orLaterVersion (Version [2,0] [])) (withPrograms lbi)+ (orLaterVersion (mkVersion [2,0])) (withPrograms lbi) -- various sanity checks when ( flag haddockHoogle- && version < Version [2,2] []) $- die "haddock 2.0 and 2.1 do not support the --hoogle flag."+ && version < mkVersion [2,2]) $+ die' verbosity "haddock 2.0 and 2.1 do not support the --hoogle flag." - haddockGhcVersionStr <- rawSystemProgramStdout verbosity confHaddock+ haddockGhcVersionStr <- getProgramOutput verbosity haddockProg ["--ghc-version"] case (simpleParse haddockGhcVersionStr, compilerCompatVersion GHC comp) of- (Nothing, _) -> die "Could not get GHC version from Haddock"- (_, Nothing) -> die "Could not get GHC version from compiler"+ (Nothing, _) -> die' verbosity "Could not get GHC version from Haddock"+ (_, Nothing) -> die' verbosity "Could not get GHC version from compiler" (Just haddockGhcVersion, Just ghcVersion) | haddockGhcVersion == ghcVersion -> return ()- | otherwise -> die $+ | otherwise -> die' verbosity $ "Haddock's internal GHC version must match the configured " ++ "GHC version.\n" ++ "The GHC version is " ++ display ghcVersion ++ " but "@@ -179,8 +184,6 @@ -- the tools match the requests, we can proceed - initialBuildSteps (flag haddockDistPref) pkg_descr lbi verbosity- when (flag haddockHscolour) $ hscolour' (warn verbosity) haddockTarget pkg_descr lbi suffixes (defaultHscolourFlags `mappend` haddockToHscolour flags)@@ -191,41 +194,56 @@ , fromFlags (haddockTemplateEnv lbi (packageId pkg_descr)) flags , fromPackageDescription haddockTarget pkg_descr ] - let pre c = preprocessComponent pkg_descr c lbi False verbosity suffixes withAllComponentsInBuildOrder pkg_descr lbi $ \component clbi -> do- pre component+ componentInitialBuildSteps (flag haddockDistPref) pkg_descr lbi clbi verbosity+ preprocessComponent pkg_descr component lbi clbi False verbosity suffixes let doExe com = case (compToExe com) of Just exe -> do withTempDirectoryEx verbosity tmpFileOpts (buildDir lbi) "tmp" $ \tmp -> do- exeArgs <- fromExecutable verbosity tmp lbi exe clbi htmlTemplate- version+ exeArgs <- fromExecutable verbosity tmp lbi clbi htmlTemplate+ version exe let exeArgs' = commonArgs `mappend` exeArgs runHaddock verbosity tmpFileOpts comp platform- confHaddock exeArgs'+ haddockProg exeArgs' Nothing -> do warn (fromFlag $ haddockVerbosity flags) "Unsupported component, skipping..." return ()+ -- We define 'smsg' once and then reuse it inside the case, so that+ -- we don't say we are running Haddock when we actually aren't+ -- (e.g., Haddock is not run on non-libraries)+ smsg :: IO ()+ smsg = setupMessage' verbosity "Running Haddock on" (packageId pkg_descr)+ (componentLocalName clbi) (maybeComponentInstantiatedWith clbi) case component of CLib lib -> do withTempDirectoryEx verbosity tmpFileOpts (buildDir lbi) "tmp" $ \tmp -> do- libArgs <- fromLibrary verbosity tmp lbi lib clbi htmlTemplate- version+ smsg+ libArgs <- fromLibrary verbosity tmp lbi clbi htmlTemplate+ version lib let libArgs' = commonArgs `mappend` libArgs- runHaddock verbosity tmpFileOpts comp platform confHaddock libArgs'- CExe _ -> when (flag haddockExecutables) $ doExe component- CTest _ -> when (flag haddockTestSuites) $ doExe component- CBench _ -> when (flag haddockBenchmarks) $ doExe component+ runHaddock verbosity tmpFileOpts comp platform haddockProg libArgs'+ CFLib flib -> when (flag haddockForeignLibs) $ do+ withTempDirectoryEx verbosity tmpFileOpts (buildDir lbi) "tmp" $+ \tmp -> do+ smsg+ flibArgs <- fromForeignLib verbosity tmp lbi clbi htmlTemplate+ version flib+ let libArgs' = commonArgs `mappend` flibArgs+ runHaddock verbosity tmpFileOpts comp platform haddockProg libArgs'+ CExe _ -> when (flag haddockExecutables) $ smsg >> doExe component+ CTest _ -> when (flag haddockTestSuites) $ smsg >> doExe component+ CBench _ -> when (flag haddockBenchmarks) $ smsg >> doExe component - forM_ (extraDocFiles pkg_descr) $ \ fpath -> do+ for_ (extraDocFiles pkg_descr) $ \ fpath -> do files <- matchFileGlob fpath- forM_ files $ copyFileTo verbosity (unDir $ argOutputDir commonArgs)+ for_ files $ copyFileTo verbosity (unDir $ argOutputDir commonArgs) -- --------------------------------------------------------------------------------- Contributions to HaddockArgs.+-- Contributions to HaddockArgs (see also Doctest.hs for very similar code). fromFlags :: PathTemplateEnv -> HaddockFlags -> HaddockArgs fromFlags env flags =@@ -278,14 +296,16 @@ "haddock only supports GHC and GHCJS" in f verbosity lbi bi clbi odir -fromLibrary :: Verbosity- -> FilePath- -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo- -> Maybe PathTemplate -- ^ template for HTML location- -> Version- -> IO HaddockArgs-fromLibrary verbosity tmp lbi lib clbi htmlTemplate haddockVersion = do- inFiles <- map snd `fmap` getLibSourceFiles lbi lib+mkHaddockArgs :: Verbosity+ -> FilePath+ -> LocalBuildInfo+ -> ComponentLocalBuildInfo+ -> Maybe PathTemplate -- ^ template for HTML location+ -> Version+ -> [FilePath]+ -> BuildInfo+ -> IO HaddockArgs+mkHaddockArgs verbosity tmp lbi clbi htmlTemplate haddockVersion inFiles bi = do ifaceArgs <- getInterfaces verbosity lbi clbi htmlTemplate let vanillaOpts = (componentGhcOptions normal lbi bi clbi (buildDir lbi)) { -- Noooooooooo!!!!!111@@ -309,64 +329,66 @@ then return vanillaOpts else if withSharedLib lbi then return sharedOpts- else die $ "Must have vanilla or shared libraries "+ else die' verbosity $ "Must have vanilla or shared libraries " ++ "enabled in order to run haddock"- ghcVersion <- maybe (die "Compiler has no GHC version")+ ghcVersion <- maybe (die' verbosity "Compiler has no GHC version") return (compilerCompatVersion GHC (compiler lbi)) return ifaceArgs {- argHideModules = (mempty,otherModules $ bi), argGhcOptions = toFlag (opts, ghcVersion), argTargets = inFiles }- where- bi = libBuildInfo lib +fromLibrary :: Verbosity+ -> FilePath+ -> LocalBuildInfo+ -> ComponentLocalBuildInfo+ -> Maybe PathTemplate -- ^ template for HTML location+ -> Version+ -> Library+ -> IO HaddockArgs+fromLibrary verbosity tmp lbi clbi htmlTemplate haddockVersion lib = do+ inFiles <- map snd `fmap` getLibSourceFiles verbosity lbi lib clbi+ args <- mkHaddockArgs verbosity tmp lbi clbi htmlTemplate haddockVersion+ inFiles (libBuildInfo lib)+ return args {+ argHideModules = (mempty, otherModules (libBuildInfo lib))+ }+ fromExecutable :: Verbosity -> FilePath- -> LocalBuildInfo -> Executable -> ComponentLocalBuildInfo+ -> LocalBuildInfo+ -> ComponentLocalBuildInfo -> Maybe PathTemplate -- ^ template for HTML location -> Version+ -> Executable -> IO HaddockArgs-fromExecutable verbosity tmp lbi exe clbi htmlTemplate haddockVersion = do- inFiles <- map snd `fmap` getExeSourceFiles lbi exe- ifaceArgs <- getInterfaces verbosity lbi clbi htmlTemplate- let vanillaOpts = (componentGhcOptions normal lbi bi clbi (buildDir lbi)) {- -- Noooooooooo!!!!!111- -- haddock stomps on our precious .hi- -- and .o files. Workaround by telling- -- haddock to write them elsewhere.- ghcOptObjDir = toFlag tmp,- ghcOptHiDir = toFlag tmp,- ghcOptStubDir = toFlag tmp- } `mappend` getGhcCppOpts haddockVersion bi- sharedOpts = vanillaOpts {- ghcOptDynLinkMode = toFlag GhcDynamicOnly,- ghcOptFPic = toFlag True,- ghcOptHiSuffix = toFlag "dyn_hi",- ghcOptObjSuffix = toFlag "dyn_o",- ghcOptExtra =- toNubListR $ hcSharedOptions GHC bi- }- opts <- if withVanillaLib lbi- then return vanillaOpts- else if withSharedLib lbi- then return sharedOpts- else die $ "Must have vanilla or shared libraries "- ++ "enabled in order to run haddock"- ghcVersion <- maybe (die "Compiler has no GHC version")- return- (compilerCompatVersion GHC (compiler lbi))+fromExecutable verbosity tmp lbi clbi htmlTemplate haddockVersion exe = do+ inFiles <- map snd `fmap` getExeSourceFiles verbosity lbi exe clbi+ args <- mkHaddockArgs verbosity tmp lbi clbi htmlTemplate+ haddockVersion inFiles (buildInfo exe)+ return args {+ argOutputDir = Dir $ unUnqualComponentName $ exeName exe,+ argTitle = Flag $ unUnqualComponentName $ exeName exe+ } - return ifaceArgs {- argGhcOptions = toFlag (opts, ghcVersion),- argOutputDir = Dir (exeName exe),- argTitle = Flag (exeName exe),- argTargets = inFiles+fromForeignLib :: Verbosity+ -> FilePath+ -> LocalBuildInfo+ -> ComponentLocalBuildInfo+ -> Maybe PathTemplate -- ^ template for HTML location+ -> Version+ -> ForeignLib+ -> IO HaddockArgs+fromForeignLib verbosity tmp lbi clbi htmlTemplate haddockVersion flib = do+ inFiles <- map snd `fmap` getFLibSourceFiles verbosity lbi flib clbi+ args <- mkHaddockArgs verbosity tmp lbi clbi htmlTemplate+ haddockVersion inFiles (foreignLibBuildInfo flib)+ return args {+ argOutputDir = Dir $ unUnqualComponentName $ foreignLibName flib,+ argTitle = Flag $ unUnqualComponentName $ foreignLibName flib }- where- bi = buildInfo exe compToExe :: Component -> Maybe Executable compToExe comp =@@ -375,12 +397,14 @@ Just Executable { exeName = testName test, modulePath = f,+ exeScope = ExecutablePublic, buildInfo = testBuildInfo test } CBench bench@Benchmark { benchmarkInterface = BenchmarkExeV10 _ f } -> Just Executable { exeName = benchmarkName bench, modulePath = f,+ exeScope = ExecutablePublic, buildInfo = benchmarkBuildInfo bench } CExe exe -> Just exe@@ -392,8 +416,8 @@ -> Maybe PathTemplate -- ^ template for HTML location -> IO HaddockArgs getInterfaces verbosity lbi clbi htmlTemplate = do- (packageFlags, warnings) <- haddockPackageFlags lbi clbi htmlTemplate- traverse_ (warn verbosity) warnings+ (packageFlags, warnings) <- haddockPackageFlags verbosity lbi clbi htmlTemplate+ traverse_ (warn (verboseUnmarkOutput verbosity)) warnings return $ mempty { argInterfaces = packageFlags }@@ -412,7 +436,7 @@ haddockVersionMacro = "-D__HADDOCK_VERSION__=" ++ show (v1 * 1000 + v2 * 10 + v3) where- [v1, v2, v3] = take 3 $ versionBranch haddockVersion ++ [0,0]+ [v1, v2, v3] = take 3 $ versionNumbers haddockVersion ++ [0,0] getGhcLibDir :: Verbosity -> LocalBuildInfo -> IO HaddockArgs@@ -432,13 +456,13 @@ -> ConfiguredProgram -> HaddockArgs -> IO ()-runHaddock verbosity tmpFileOpts comp platform confHaddock args = do+runHaddock verbosity tmpFileOpts comp platform haddockProg args = do let haddockVersion = fromMaybe (error "unable to determine haddock version")- (programVersion confHaddock)+ (programVersion haddockProg) renderArgs verbosity tmpFileOpts haddockVersion comp platform args $ \(flags,result)-> do - rawSystemProgram verbosity confHaddock flags+ runProgram verbosity haddockProg flags notice verbosity $ "Documentation created: " ++ result @@ -452,8 +476,8 @@ -> (([String], FilePath) -> IO a) -> IO a renderArgs verbosity tmpFileOpts version comp platform args k = do- let haddockSupportsUTF8 = version >= Version [2,14,4] []- haddockSupportsResponseFiles = version > Version [2,16,2] []+ let haddockSupportsUTF8 = version >= mkVersion [2,14,4]+ haddockSupportsResponseFiles = version > mkVersion [2,16,2] createDirectoryIfMissingVerbose verbosity True outputDir withTempFileEx tmpFileOpts outputDir "haddock-prologue.txt" $ \prologueFileName h -> do@@ -560,7 +584,7 @@ map (\(i,mh) -> "--read-interface=" ++ maybe "" (++",") mh ++ i) bool a b c = if c then a else b- isVersion major minor = version >= Version [major,minor] []+ isVersion major minor = version >= mkVersion [major,minor] verbosityFlag | isVersion 2 5 = "--verbosity=1" | otherwise = "--verbose"@@ -571,9 +595,9 @@ -- HTML paths, and an optional warning for packages with missing documentation. haddockPackagePaths :: [InstalledPackageInfo] -> Maybe (InstalledPackageInfo -> FilePath)- -> IO ([(FilePath, Maybe FilePath)], Maybe String)+ -> NoCallStackIO ([(FilePath, Maybe FilePath)], Maybe String) haddockPackagePaths ipkgs mkHtmlPath = do- interfaces <- sequence+ interfaces <- sequenceA [ case interfaceAndHtmlPath ipkg of Nothing -> return (Left (packageId ipkg)) Just (interface, html) -> do@@ -595,7 +619,7 @@ where -- Don't warn about missing documentation for these packages. See #1231.- noHaddockWhitelist = map PackageName [ "rts" ]+ noHaddockWhitelist = map mkPackageName [ "rts" ] -- Actually extract interface and HTML paths from an 'InstalledPackageInfo'. interfaceAndHtmlPath :: InstalledPackageInfo@@ -613,16 +637,17 @@ fixFileUrl f | isAbsolute f = "file://" ++ f | otherwise = f -haddockPackageFlags :: LocalBuildInfo+haddockPackageFlags :: Verbosity+ -> LocalBuildInfo -> ComponentLocalBuildInfo -> Maybe PathTemplate -> IO ([(FilePath, Maybe FilePath)], Maybe String)-haddockPackageFlags lbi clbi htmlTemplate = do+haddockPackageFlags verbosity lbi clbi htmlTemplate = do let allPkgs = installedPkgs lbi directDeps = map fst (componentPackageDeps clbi) transitiveDeps <- case PackageIndex.dependencyClosure allPkgs directDeps of Left x -> return x- Right inf -> die $ "internal error when calculating transitive "+ Right inf -> die' verbosity $ "internal error when calculating transitive " ++ "package dependencies.\nDebug info: " ++ show inf haddockPackagePaths (PackageIndex.allPackages transitiveDeps) mkHtmlPath where@@ -637,8 +662,11 @@ (PrefixVar, prefix (installDirTemplates lbi)) -- We want the legacy unit ID here, because it gives us nice paths -- (Haddock people don't care about the dependencies)- : initialPathTemplateEnv pkg_id (mkLegacyUnitId pkg_id) (compilerInfo (compiler lbi))- (hostPlatform lbi)+ : initialPathTemplateEnv+ pkg_id+ (mkLegacyUnitId pkg_id)+ (compilerInfo (compiler lbi))+ (hostPlatform lbi) -- ------------------------------------------------------------------------------ -- hscolour support.@@ -648,14 +676,7 @@ -> [PPSuffixHandler] -> HscolourFlags -> IO ()-hscolour pkg_descr lbi suffixes flags = do- -- we preprocess even if hscolour won't be found on the machine- -- will this upset someone?- initialBuildSteps distPref pkg_descr lbi verbosity- hscolour' die ForDevelopment pkg_descr lbi suffixes flags- where- verbosity = fromFlag (hscolourVerbosity flags)- distPref = fromFlag $ hscolourDistPref flags+hscolour = hscolour' dieNoVerbosity ForDevelopment hscolour' :: (String -> IO ()) -- ^ Called when the 'hscolour' exe is not found. -> HaddockTarget@@ -667,31 +688,35 @@ hscolour' onNoHsColour haddockTarget pkg_descr lbi suffixes flags = either onNoHsColour (\(hscolourProg, _, _) -> go hscolourProg) =<< lookupProgramVersion verbosity hscolourProgram- (orLaterVersion (Version [1,8] [])) (withPrograms lbi)+ (orLaterVersion (mkVersion [1,8])) (withPrograms lbi) where go :: ConfiguredProgram -> IO () go hscolourProg = do setupMessage verbosity "Running hscolour for" (packageId pkg_descr) createDirectoryIfMissingVerbose verbosity True $- hscolourPref' haddockTarget distPref pkg_descr+ hscolourPref haddockTarget distPref pkg_descr - let pre c = preprocessComponent pkg_descr c lbi False verbosity suffixes- withAllComponentsInBuildOrder pkg_descr lbi $ \comp _ -> do- pre comp+ withAllComponentsInBuildOrder pkg_descr lbi $ \comp clbi -> do+ componentInitialBuildSteps distPref pkg_descr lbi clbi verbosity+ preprocessComponent pkg_descr comp lbi clbi False verbosity suffixes let doExe com = case (compToExe com) of Just exe -> do- let outputDir = hscolourPref' haddockTarget distPref pkg_descr- </> exeName exe </> "src"- runHsColour hscolourProg outputDir =<< getExeSourceFiles lbi exe+ let outputDir = hscolourPref haddockTarget distPref pkg_descr+ </> unUnqualComponentName (exeName exe) </> "src"+ runHsColour hscolourProg outputDir =<< getExeSourceFiles verbosity lbi exe clbi Nothing -> do warn (fromFlag $ hscolourVerbosity flags) "Unsupported component, skipping..." return () case comp of CLib lib -> do- let outputDir = hscolourPref' haddockTarget distPref pkg_descr </> "src"- runHsColour hscolourProg outputDir =<< getLibSourceFiles lbi lib+ let outputDir = hscolourPref haddockTarget distPref pkg_descr </> "src"+ runHsColour hscolourProg outputDir =<< getLibSourceFiles verbosity lbi lib clbi+ CFLib flib -> do+ let outputDir = hscolourPref haddockTarget distPref pkg_descr+ </> unUnqualComponentName (foreignLibName flib) </> "src"+ runHsColour hscolourProg outputDir =<< getFLibSourceFiles verbosity lbi flib clbi CExe _ -> when (fromFlag (hscolourExecutables flags)) $ doExe comp CTest _ -> when (fromFlag (hscolourTestSuites flags)) $ doExe comp CBench _ -> when (fromFlag (hscolourBenchmarks flags)) $ doExe comp@@ -705,14 +730,14 @@ createDirectoryIfMissingVerbose verbosity True outputDir case stylesheet of -- copy the CSS file- Nothing | programVersion prog >= Just (Version [1,9] []) ->- rawSystemProgram verbosity prog+ Nothing | programVersion prog >= Just (mkVersion [1,9]) ->+ runProgram verbosity prog ["-print-css", "-o" ++ outputDir </> "hscolour.css"] | otherwise -> return () Just s -> copyFileVerbose verbosity s (outputDir </> "hscolour.css") - forM_ moduleFiles $ \(m, inFile) ->- rawSystemProgram verbosity prog+ for_ moduleFiles $ \(m, inFile) ->+ runProgram verbosity prog ["-css", "-anchor", "-o" ++ outFile m, inFile] where outFile m = outputDir </>@@ -725,58 +750,23 @@ hscolourExecutables = haddockExecutables flags, hscolourTestSuites = haddockTestSuites flags, hscolourBenchmarks = haddockBenchmarks flags,+ hscolourForeignLibs = haddockForeignLibs flags, hscolourVerbosity = haddockVerbosity flags, hscolourDistPref = haddockDistPref flags }------------------------------------------------------------------------------------- TODO these should be moved elsewhere. -getLibSourceFiles :: LocalBuildInfo- -> Library- -> IO [(ModuleName.ModuleName, FilePath)]-getLibSourceFiles lbi lib = getSourceFiles searchpaths modules- where- bi = libBuildInfo lib- modules = PD.exposedModules lib ++ otherModules bi- searchpaths = autogenModulesDir lbi : buildDir lbi : hsSourceDirs bi--getExeSourceFiles :: LocalBuildInfo- -> Executable- -> IO [(ModuleName.ModuleName, FilePath)]-getExeSourceFiles lbi exe = do- moduleFiles <- getSourceFiles searchpaths modules- srcMainPath <- findFile (hsSourceDirs bi) (modulePath exe)- return ((ModuleName.main, srcMainPath) : moduleFiles)- where- bi = buildInfo exe- modules = otherModules bi- searchpaths = autogenModulesDir lbi : exeBuildDir lbi exe : hsSourceDirs bi--getSourceFiles :: [FilePath]- -> [ModuleName.ModuleName]- -> IO [(ModuleName.ModuleName, FilePath)]-getSourceFiles dirs modules = flip mapM modules $ \m -> fmap ((,) m) $- findFileWithExtension ["hs", "lhs"] dirs (ModuleName.toFilePath m)- >>= maybe (notFound m) (return . normalise)- where- notFound module_ = die $ "can't find source for module " ++ display module_---- | The directory where we put build results for an executable-exeBuildDir :: LocalBuildInfo -> Executable -> FilePath-exeBuildDir lbi exe = buildDir lbi </> exeName exe </> exeName exe ++ "-tmp"- -- ------------------------------------------------------------------------------ -- Boilerplate Monoid instance. instance Monoid HaddockArgs where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup HaddockArgs where (<>) = gmappend instance Monoid Directory where mempty = Dir "."- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup Directory where Dir m <> Dir n = Dir $ m </> n
Distribution/Simple/HaskellSuite.hs view
@@ -1,15 +1,19 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ module Distribution.Simple.HaskellSuite where -import Control.Monad-import Data.Maybe-import Data.Version-import qualified Data.Map as M (empty)+import Prelude ()+import Distribution.Compat.Prelude +import qualified Data.Map as Map (empty)+ import Distribution.Simple.Program import Distribution.Simple.Compiler as Compiler import Distribution.Simple.Utils import Distribution.Simple.BuildPaths import Distribution.Verbosity+import Distribution.Version import Distribution.Text import Distribution.Package import Distribution.InstalledPackageInfo hiding (includeDirs)@@ -23,35 +27,35 @@ configure :: Verbosity -> Maybe FilePath -> Maybe FilePath- -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)-configure verbosity mbHcPath hcPkgPath conf0 = do+ -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)+configure verbosity mbHcPath hcPkgPath progdb0 = do -- We have no idea how a haskell-suite tool is named, so we require at -- least some information from the user. hcPath <- let msg = "You have to provide name or path of a haskell-suite tool (-w PATH)"- in maybe (die msg) return mbHcPath+ in maybe (die' verbosity msg) return mbHcPath when (isJust hcPkgPath) $ warn verbosity "--with-hc-pkg option is ignored for haskell-suite" - (comp, confdCompiler, conf1) <- configureCompiler hcPath conf0+ (comp, confdCompiler, progdb1) <- configureCompiler hcPath progdb0 -- Update our pkg tool. It uses the same executable as the compiler, but -- all command start with "pkg"- (confdPkg, _) <- requireProgram verbosity haskellSuitePkgProgram conf1- let conf2 =+ (confdPkg, _) <- requireProgram verbosity haskellSuitePkgProgram progdb1+ let progdb2 = updateProgram confdPkg { programLocation = programLocation confdCompiler , programDefaultArgs = ["pkg"] }- conf1+ progdb1 - return (comp, Nothing, conf2)+ return (comp, Nothing, progdb2) where- configureCompiler hcPath conf0' = do+ configureCompiler hcPath progdb0' = do let haskellSuiteProgram' = haskellSuiteProgram@@ -60,8 +64,8 @@ -- NB: cannot call requireProgram right away — it'd think that -- the program is already configured and won't reconfigure it again. -- Instead, call configureProgram directly first.- conf1 <- configureProgram verbosity haskellSuiteProgram' conf0'- (confdCompiler, conf2) <- requireProgram verbosity haskellSuiteProgram' conf1+ progdb1 <- configureProgram verbosity haskellSuiteProgram' progdb0'+ (confdCompiler, progdb2) <- requireProgram verbosity haskellSuiteProgram' progdb1 extensions <- getExtensions verbosity confdCompiler languages <- getLanguages verbosity confdCompiler@@ -75,10 +79,10 @@ compilerCompat = [], compilerLanguages = languages, compilerExtensions = extensions,- compilerProperties = M.empty+ compilerProperties = Map.empty } - return (comp, confdCompiler, conf2)+ return (comp, confdCompiler, progdb2) hstoolVersion :: Verbosity -> FilePath -> IO (Maybe Version) hstoolVersion = findProgramVersion "--hspkg-version" id@@ -94,7 +98,7 @@ name = concat $ init parts -- there shouldn't be any spaces in the name anyway versionStr = last parts version <-- maybe (die "haskell-suite: couldn't determine compiler version") return $+ maybe (die' verbosity "haskell-suite: couldn't determine compiler version") return $ simpleParse versionStr return (name, version) @@ -116,17 +120,17 @@ -- Other compilers do some kind of a packagedb stack check here. Not sure -- if we need something like that as well.-getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramConfiguration+getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex-getInstalledPackages verbosity packagedbs conf =- liftM (PackageIndex.fromList . concat) $ forM packagedbs $ \packagedb ->+getInstalledPackages verbosity packagedbs progdb =+ liftM (PackageIndex.fromList . concat) $ for packagedbs $ \packagedb -> do str <-- getDbProgramOutput verbosity haskellSuitePkgProgram conf+ getDbProgramOutput verbosity haskellSuitePkgProgram progdb ["dump", packageDbOpt packagedb]- `catchExit` \_ -> die $ "pkg dump failed"+ `catchExit` \_ -> die' verbosity $ "pkg dump failed" case parsePackages str of Right ok -> return ok- _ -> die "failed to parse output of 'pkg dump'"+ _ -> die' verbosity "failed to parse output of 'pkg dump'" where parsePackages str =@@ -159,13 +163,15 @@ srcDirs = hsSourceDirs bi ++ [odir] dbStack = withPackageDB lbi language = fromMaybe Haskell98 (defaultLanguage bi)- conf = withPrograms lbi+ progdb = withPrograms lbi pkgid = packageId pkg_descr - runDbProgram verbosity haskellSuiteProgram conf $+ runDbProgram verbosity haskellSuiteProgram progdb $ [ "compile", "--build-dir", odir ] ++ concat [ ["-i", d] | d <- srcDirs ] ++- concat [ ["-I", d] | d <- [autogenModulesDir lbi, odir] ++ includeDirs bi ] +++ concat [ ["-I", d] | d <- [autogenComponentModulesDir lbi clbi+ ,autogenPackageModulesDir lbi+ ,odir] ++ includeDirs bi ] ++ [ packageDbOpt pkgDb | pkgDb <- dbStack ] ++ [ "--package-name", display pkgid ] ++ concat [ ["--package-id", display ipkgid ]@@ -173,7 +179,7 @@ ["-G", display language] ++ concat [ ["-X", display ex] | ex <- usedExtensions bi ] ++ cppOptions (libBuildInfo lib) ++- [ display modu | modu <- libModules lib ]+ [ display modu | modu <- allLibModules lib clbi ] @@ -187,19 +193,19 @@ -> Library -> ComponentLocalBuildInfo -> IO ()-installLib verbosity lbi targetDir dynlibTargetDir builtDir pkg lib _clbi = do- let conf = withPrograms lbi- runDbProgram verbosity haskellSuitePkgProgram conf $+installLib verbosity lbi targetDir dynlibTargetDir builtDir pkg lib clbi = do+ let progdb = withPrograms lbi+ runDbProgram verbosity haskellSuitePkgProgram progdb $ [ "install-library" , "--build-dir", builtDir , "--target-dir", targetDir , "--dynlib-target-dir", dynlibTargetDir , "--package-id", display $ packageId pkg- ] ++ map display (libModules lib)+ ] ++ map display (allLibModules lib clbi) registerPackage :: Verbosity- -> ProgramConfiguration+ -> ProgramDb -> PackageDBStack -> InstalledPackageInfo -> IO ()@@ -211,9 +217,9 @@ ["update", packageDbOpt $ last packageDbs]) { progInvokeInput = Just $ showInstalledPackageInfo installedPkgInfo } -initPackageDB :: Verbosity -> ProgramConfiguration -> FilePath -> IO ()-initPackageDB verbosity conf dbPath =- runDbProgram verbosity haskellSuitePkgProgram conf+initPackageDB :: Verbosity -> ProgramDb -> FilePath -> IO ()+initPackageDB verbosity progdb dbPath =+ runDbProgram verbosity haskellSuitePkgProgram progdb ["init", dbPath] packageDbOpt :: PackageDB -> String
Distribution/Simple/Hpc.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Hpc@@ -21,7 +24,10 @@ , markupTest ) where -import Control.Monad ( when )+import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.UnqualComponentName import Distribution.ModuleName ( main ) import Distribution.PackageDescription ( TestSuite(..)@@ -96,22 +102,23 @@ -> TestSuite -> IO () markupTest verbosity lbi distPref libName suite = do- tixFileExists <- doesFileExist $ tixFilePath distPref way $ testName suite+ tixFileExists <- doesFileExist $ tixFilePath distPref way $ testName' when tixFileExists $ do -- behaviour of 'markup' depends on version, so we need *a* version -- but no particular one (hpc, hpcVer, _) <- requireProgramVersion verbosity hpcProgram anyVersion (withPrograms lbi)- let htmlDir_ = htmlDir distPref way $ testName suite+ let htmlDir_ = htmlDir distPref way testName' markup hpc hpcVer verbosity- (tixFilePath distPref way $ testName suite) mixDirs+ (tixFilePath distPref way testName') mixDirs htmlDir_ (testModules suite ++ [ main ]) notice verbosity $ "Test coverage report written to " ++ htmlDir_ </> "hpc_index" <.> "html" where way = guessWay lbi- mixDirs = map (mixDir distPref way) [ testName suite, libName ]+ testName' = unUnqualComponentName $ testName suite+ mixDirs = map (mixDir distPref way) [ testName', libName ] -- | Generate the HTML markup for all of a package's test suites. markupPackage :: Verbosity@@ -121,8 +128,8 @@ -> [TestSuite] -> IO () markupPackage verbosity lbi distPref libName suites = do- let tixFiles = map (tixFilePath distPref way . testName) suites- tixFilesExist <- mapM doesFileExist tixFiles+ let tixFiles = map (tixFilePath distPref way) testNames+ tixFilesExist <- traverse doesFileExist tixFiles when (and tixFilesExist) $ do -- behaviour of 'markup' depends on version, so we need *a* version -- but no particular one@@ -138,4 +145,5 @@ ++ htmlDir' </> "hpc_index.html" where way = guessWay lbi- mixDirs = map (mixDir distPref way) $ libName : map testName suites+ testNames = fmap (unUnqualComponentName . testName) suites+ mixDirs = map (mixDir distPref way) $ libName : testNames
Distribution/Simple/Install.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Install@@ -16,18 +19,29 @@ install, ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.TargetInfo+import Distribution.Types.LocalBuildInfo+import Distribution.Types.ForeignLib+import Distribution.Types.PackageDescription+import Distribution.Types.UnqualComponentName+import Distribution.Types.ExecutableScope++import Distribution.Package import Distribution.PackageDescription-import Distribution.Package (Package(..)) import Distribution.Simple.LocalBuildInfo-import Distribution.Simple.BuildPaths (haddockName, haddockPref')+import Distribution.Simple.BuildPaths (haddockName, haddockPref) import Distribution.Simple.Utils ( createDirectoryIfMissingVerbose , installDirectoryContents, installOrdinaryFile, isInSearchPath- , die, info, notice, warn, matchDirFileGlob )+ , die', info, noticeNoWrap, warn, matchDirFileGlob ) import Distribution.Simple.Compiler ( CompilerFlavor(..), compilerFlavor )-import Distribution.Simple.Setup (CopyFlags(..), fromFlag- ,HaddockTarget(ForDevelopment))+import Distribution.Simple.Setup+ ( CopyFlags(..), fromFlag, HaddockTarget(ForDevelopment) )+import Distribution.Simple.BuildTarget import qualified Distribution.Simple.GHC as GHC import qualified Distribution.Simple.GHCJS as GHCJS@@ -35,12 +49,12 @@ import qualified Distribution.Simple.LHC as LHC import qualified Distribution.Simple.UHC as UHC import qualified Distribution.Simple.HaskellSuite as HaskellSuite+import Distribution.Compat.Graph (IsNode(..)) -import Control.Monad (when, unless) import System.Directory ( doesDirectoryExist, doesFileExist ) import System.FilePath- ( takeFileName, takeDirectory, (</>), isAbsolute )+ ( takeFileName, takeDirectory, (</>), isRelative ) import Distribution.Verbosity import Distribution.Text@@ -48,50 +62,80 @@ -- |Perform the \"@.\/setup install@\" and \"@.\/setup copy@\" -- actions. Move files into place based on the prefix argument.+--+-- This does NOT register libraries, you should call 'register'+-- to do that. install :: PackageDescription -- ^information from the .cabal file -> LocalBuildInfo -- ^information from the configure step -> CopyFlags -- ^flags sent to copy or install -> IO () install pkg_descr lbi flags = do- let distPref = fromFlag (copyDistPref flags)- verbosity = fromFlag (copyVerbosity flags)- copydest = fromFlag (copyDest flags)- installDirs@(InstallDirs {- bindir = binPref,- libdir = libPref,- dynlibdir = dynlibPref,+ checkHasLibsOrExes+ targets <- readTargetInfos verbosity pkg_descr lbi (copyArgs flags)++ copyPackage verbosity pkg_descr lbi distPref copydest++ -- It's not necessary to do these in build-order, but it's harmless+ withNeededTargetsInBuildOrder' pkg_descr lbi (map nodeKey targets) $ \target ->+ let comp = targetComponent target+ clbi = targetCLBI target+ in copyComponent verbosity pkg_descr lbi comp clbi copydest+ where+ distPref = fromFlag (copyDistPref flags)+ verbosity = fromFlag (copyVerbosity flags)+ copydest = fromFlag (copyDest flags)++ checkHasLibsOrExes =+ unless (hasLibs pkg_descr || hasForeignLibs pkg_descr || hasExes pkg_descr) $+ die' verbosity "No executables and no library found. Nothing to do."++-- | Copy package global files.+copyPackage :: Verbosity -> PackageDescription+ -> LocalBuildInfo -> FilePath -> CopyDest -> IO ()+copyPackage verbosity pkg_descr lbi distPref copydest = do+ let -- This is a bit of a hack, to handle files which are not+ -- per-component (data files and Haddock files.)+ InstallDirs { datadir = dataPref,+ -- NB: The situation with Haddock is a bit delicate. On the+ -- one hand, the easiest to understand Haddock documentation+ -- path is pkgname-0.1, which means it's per-package (not+ -- per-component). But this means that it's impossible to+ -- install Haddock documentation for internal libraries. We'll+ -- keep this constraint for now; this means you can't use+ -- Cabal to Haddock internal libraries. This does not seem+ -- like a big problem. docdir = docPref, htmldir = htmlPref,- haddockdir = interfacePref,- includedir = incPref})- -- Using the library clbi for binPref is a hack;- -- binPref should be computed per executable+ haddockdir = interfacePref}+ -- Notice use of 'absoluteInstallDirs' (not the+ -- per-component variant). This means for non-library+ -- packages we'll just pick a nondescriptive foo-0.1 = absoluteInstallDirs pkg_descr lbi copydest - progPrefixPref = substPathTemplate (packageId pkg_descr) lbi (progPrefix lbi)- progSuffixPref = substPathTemplate (packageId pkg_descr) lbi (progSuffix lbi)+ -- Install (package-global) data files+ installDataFiles verbosity pkg_descr dataPref - unless (hasLibs pkg_descr || hasExes pkg_descr) $- die "No executables and no library found. Nothing to do."- docExists <- doesDirectoryExist $ haddockPref' ForDevelopment distPref pkg_descr- info verbosity ("directory " ++ haddockPref' ForDevelopment distPref pkg_descr +++ -- Install (package-global) Haddock files+ -- TODO: these should be done per-library+ docExists <- doesDirectoryExist $ haddockPref ForDevelopment distPref pkg_descr+ info verbosity ("directory " ++ haddockPref ForDevelopment distPref pkg_descr ++ " does exist: " ++ show docExists) - installDataFiles verbosity pkg_descr dataPref-+ -- TODO: this is a bit questionable, Haddock files really should+ -- be per library (when there are convenience libraries.) when docExists $ do createDirectoryIfMissingVerbose verbosity True htmlPref installDirectoryContents verbosity- (haddockPref' ForDevelopment distPref pkg_descr) htmlPref+ (haddockPref ForDevelopment distPref pkg_descr) htmlPref -- setPermissionsRecursive [Read] htmlPref -- The haddock interface file actually already got installed -- in the recursive copy, but now we install it where we actually -- want it to be (normally the same place). We could remove the -- copy in htmlPref first.- let haddockInterfaceFileSrc = haddockPref' ForDevelopment distPref pkg_descr- </> haddockName pkg_descr+ let haddockInterfaceFileSrc = haddockPref ForDevelopment distPref pkg_descr+ </> haddockName pkg_descr haddockInterfaceFileDest = interfacePref </> haddockName pkg_descr -- We only generate the haddock interface file for libs, So if the -- package consists only of executables there will not be one:@@ -108,52 +152,91 @@ [ installOrdinaryFile verbosity lfile (docPref </> takeFileName lfile) | lfile <- lfiles ] - let buildPref = buildDir lbi- when (hasLibs pkg_descr) $- notice verbosity ("Installing library in " ++ libPref)- when (hasExes pkg_descr) $ do- notice verbosity ("Installing executable(s) in " ++ binPref)- inPath <- isInSearchPath binPref- when (not inPath) $- warn verbosity ("The directory " ++ binPref- ++ " is not in the system search path.")+-- | Copy files associated with a component.+copyComponent :: Verbosity -> PackageDescription+ -> LocalBuildInfo -> Component -> ComponentLocalBuildInfo+ -> CopyDest+ -> IO ()+copyComponent verbosity pkg_descr lbi (CLib lib) clbi copydest = do+ let InstallDirs{+ libdir = libPref,+ dynlibdir = dynlibPref,+ includedir = incPref+ } = absoluteComponentInstallDirs pkg_descr lbi (componentUnitId clbi) copydest+ buildPref = componentBuildDir lbi clbi - -- install include files for all compilers - they may be needed to compile- -- haskell files (using the CPP extension)- --- when (hasLibs pkg_descr) $ installIncludeFiles verbosity pkg_descr incPref+ case libName lib of+ Nothing -> noticeNoWrap verbosity ("Installing library in " ++ libPref)+ Just n -> noticeNoWrap verbosity ("Installing internal library " ++ display n ++ " in " ++ libPref) - withLibLBI pkg_descr lbi $+ -- install include files for all compilers - they may be needed to compile+ -- haskell files (using the CPP extension)+ installIncludeFiles verbosity lib incPref+ case compilerFlavor (compiler lbi) of- GHC -> GHC.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr- GHCJS -> GHCJS.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr- LHC -> LHC.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr- JHC -> JHC.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr- UHC -> UHC.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr+ GHC -> GHC.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr lib clbi+ GHCJS -> GHCJS.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr lib clbi+ LHC -> LHC.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr lib clbi+ JHC -> JHC.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr lib clbi+ UHC -> UHC.installLib verbosity lbi libPref dynlibPref buildPref pkg_descr lib clbi HaskellSuite _ -> HaskellSuite.installLib- verbosity lbi libPref dynlibPref buildPref pkg_descr- _ -> \_ _ -> die $ "installing with "- ++ display (compilerFlavor (compiler lbi))- ++ " is not implemented"+ verbosity lbi libPref dynlibPref buildPref pkg_descr lib clbi+ _ -> die' verbosity $ "installing with "+ ++ display (compilerFlavor (compiler lbi))+ ++ " is not implemented" - withExe pkg_descr $+copyComponent verbosity pkg_descr lbi (CFLib flib) clbi copydest = do+ let InstallDirs{+ flibdir = flibPref+ } = absoluteComponentInstallDirs pkg_descr lbi (componentUnitId clbi) copydest+ buildPref = componentBuildDir lbi clbi++ noticeNoWrap verbosity ("Installing foreign library " ++ unUnqualComponentName (foreignLibName flib) ++ " in " ++ flibPref)+ case compilerFlavor (compiler lbi) of- GHC -> GHC.installExe verbosity lbi installDirs buildPref (progPrefixPref, progSuffixPref) pkg_descr- GHCJS -> GHCJS.installExe verbosity lbi installDirs buildPref (progPrefixPref, progSuffixPref) pkg_descr- LHC -> LHC.installExe verbosity lbi installDirs buildPref (progPrefixPref, progSuffixPref) pkg_descr- JHC -> JHC.installExe verbosity binPref buildPref (progPrefixPref, progSuffixPref) pkg_descr- UHC -> \_ -> return ()- HaskellSuite {} -> \_ -> return ()- _ -> \_ -> die $ "installing with "- ++ display (compilerFlavor (compiler lbi))- ++ " is not implemented"- -- register step should be performed by caller.+ GHC -> GHC.installFLib verbosity lbi flibPref buildPref pkg_descr flib+ _ -> die' verbosity $ "installing foreign lib with "+ ++ display (compilerFlavor (compiler lbi))+ ++ " is not implemented" +copyComponent verbosity pkg_descr lbi (CExe exe) clbi copydest = do+ let installDirs = absoluteComponentInstallDirs pkg_descr lbi (componentUnitId clbi) copydest+ -- the installers know how to find the actual location of the+ -- binaries+ buildPref = buildDir lbi+ uid = componentUnitId clbi+ pkgid = packageId pkg_descr+ binPref | ExecutablePrivate <- exeScope exe = libexecdir installDirs+ | otherwise = bindir installDirs+ progPrefixPref = substPathTemplate pkgid lbi uid (progPrefix lbi)+ progSuffixPref = substPathTemplate pkgid lbi uid (progSuffix lbi)+ progFix = (progPrefixPref, progSuffixPref)+ noticeNoWrap verbosity ("Installing executable " ++ display (exeName exe)+ ++ " in " ++ binPref)+ inPath <- isInSearchPath binPref+ when (not inPath) $+ warn verbosity ("The directory " ++ binPref+ ++ " is not in the system search path.")+ case compilerFlavor (compiler lbi) of+ GHC -> GHC.installExe verbosity lbi binPref buildPref progFix pkg_descr exe+ GHCJS -> GHCJS.installExe verbosity lbi binPref buildPref progFix pkg_descr exe+ LHC -> LHC.installExe verbosity lbi binPref buildPref progFix pkg_descr exe+ JHC -> JHC.installExe verbosity binPref buildPref progFix pkg_descr exe+ UHC -> return ()+ HaskellSuite {} -> return ()+ _ -> die' verbosity $ "installing with "+ ++ display (compilerFlavor (compiler lbi))+ ++ " is not implemented"++-- Nothing to do for benchmark/testsuite+copyComponent _ _ _ (CBench _) _ _ = return ()+copyComponent _ _ _ (CTest _) _ _ = return ()+ -- | Install the files listed in data-files -- installDataFiles :: Verbosity -> PackageDescription -> FilePath -> IO () installDataFiles verbosity pkg_descr destDataDir =- flip mapM_ (dataFiles pkg_descr) $ \ file -> do+ flip traverse_ (dataFiles pkg_descr) $ \ file -> do let srcDataDir = dataDir pkg_descr files <- matchDirFileGlob srcDataDir file let dir = takeDirectory file@@ -162,26 +245,23 @@ (destDataDir </> file') | file' <- files ] --- | Install the files listed in install-includes+-- | Install the files listed in install-includes for a library ---installIncludeFiles :: Verbosity -> PackageDescription -> FilePath -> IO ()-installIncludeFiles verbosity- PackageDescription { library = Just lib } destIncludeDir = do-- incs <- mapM (findInc relincdirs) (installIncludes lbi)- sequence_- [ do createDirectoryIfMissingVerbose verbosity True destDir- installOrdinaryFile verbosity srcFile destFile- | (relFile, srcFile) <- incs- , let destFile = destIncludeDir </> relFile- destDir = takeDirectory destFile ]+installIncludeFiles :: Verbosity -> Library -> FilePath -> IO ()+installIncludeFiles verbosity lib destIncludeDir = do+ let relincdirs = "." : filter isRelative (includeDirs lbi)+ lbi = libBuildInfo lib+ incs <- traverse (findInc relincdirs) (installIncludes lbi)+ sequence_+ [ do createDirectoryIfMissingVerbose verbosity True destDir+ installOrdinaryFile verbosity srcFile destFile+ | (relFile, srcFile) <- incs+ , let destFile = destIncludeDir </> relFile+ destDir = takeDirectory destFile ] where- relincdirs = "." : filter (not.isAbsolute) (includeDirs lbi)- lbi = libBuildInfo lib - findInc [] file = die ("can't find include file " ++ file)+ findInc [] file = die' verbosity ("can't find include file " ++ file) findInc (dir:dirs) file = do let path = dir </> file exists <- doesFileExist path if exists then return (file, path) else findInc dirs file-installIncludeFiles _ _ _ = die "installIncludeFiles: Can't happen?"
Distribution/Simple/InstallDirs.hs view
@@ -1,7 +1,8 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE ForeignFunctionInterface #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-} ----------------------------------------------------------------------------- -- |@@ -25,6 +26,7 @@ InstallDirs(..), InstallDirTemplates, defaultInstallDirs,+ defaultInstallDirs', combineInstallDirs, absoluteInstallDirs, CopyDest(..),@@ -36,6 +38,7 @@ PathTemplateEnv, toPathTemplate, fromPathTemplate,+ combinePathTemplate, substPathTemplate, initialPathTemplateEnv, platformTemplateEnv,@@ -45,22 +48,20 @@ installDirsTemplateEnv, ) where +import Prelude ()+import Distribution.Compat.Prelude -import Distribution.Compat.Binary (Binary)-import Distribution.Compat.Semigroup as Semi import Distribution.Package import Distribution.System import Distribution.Compiler import Distribution.Text -import Data.List (isPrefixOf)-import Data.Maybe (fromMaybe)-import GHC.Generics (Generic) import System.Directory (getAppUserDataDirectory) import System.FilePath ((</>), isPathSeparator, pathSeparator) import System.FilePath (dropDrive) -#if mingw32_HOST_OS+#ifdef mingw32_HOST_OS+import qualified Prelude import Foreign import Foreign.C #endif@@ -82,7 +83,9 @@ libdir :: dir, libsubdir :: dir, dynlibdir :: dir,+ flibdir :: dir, -- ^ foreign libraries libexecdir :: dir,+ libexecsubdir:: dir, includedir :: dir, datadir :: dir, datasubdir :: dir,@@ -97,7 +100,7 @@ instance (Semigroup dir, Monoid dir) => Monoid (InstallDirs dir) where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup dir => Semigroup (InstallDirs dir) where (<>) = gmappend@@ -112,7 +115,9 @@ libdir = libdir a `combine` libdir b, libsubdir = libsubdir a `combine` libsubdir b, dynlibdir = dynlibdir a `combine` dynlibdir b,+ flibdir = flibdir a `combine` flibdir b, libexecdir = libexecdir a `combine` libexecdir b,+ libexecsubdir= libexecsubdir a `combine` libexecsubdir b, includedir = includedir a `combine` includedir b, datadir = datadir a `combine` datadir b, datasubdir = datasubdir a `combine` datasubdir b,@@ -126,8 +131,10 @@ appendSubdirs :: (a -> a -> a) -> InstallDirs a -> InstallDirs a appendSubdirs append dirs = dirs { libdir = libdir dirs `append` libsubdir dirs,+ libexecdir = libexecdir dirs `append` libexecsubdir dirs, datadir = datadir dirs `append` datasubdir dirs, libsubdir = error "internal error InstallDirs.libsubdir",+ libexecsubdir = error "internal error InstallDirs.libexecsubdir", datasubdir = error "internal error InstallDirs.datasubdir" } @@ -159,7 +166,17 @@ -- Default installation directories defaultInstallDirs :: CompilerFlavor -> Bool -> Bool -> IO InstallDirTemplates-defaultInstallDirs comp userInstall _hasLibs = do+defaultInstallDirs = defaultInstallDirs' False++defaultInstallDirs' :: Bool {- use external internal deps -}+ -> CompilerFlavor -> Bool -> Bool -> IO InstallDirTemplates+defaultInstallDirs' True comp userInstall hasLibs = do+ dflt <- defaultInstallDirs' False comp userInstall hasLibs+ -- Be a bit more hermetic about per-component installs+ return dflt { datasubdir = toPathTemplate $ "$abi" </> "$libname",+ docdir = toPathTemplate $ "$datadir" </> "doc" </> "$abi" </> "$libname"+ }+defaultInstallDirs' False comp userInstall _hasLibs = do installPrefix <- if userInstall then getAppUserDataDirectory "cabal"@@ -187,6 +204,8 @@ LHC -> "$compiler" UHC -> "$pkgid" _other -> "$abi",+ libexecsubdir= "$abi" </> "$pkgid",+ flibdir = "$libdir", libexecdir = case buildOS of Windows -> "$prefix" </> "$libname" _other -> "$prefix" </> "libexec",@@ -228,7 +247,9 @@ libdir = subst libdir [prefixVar, bindirVar], libsubdir = subst libsubdir [], dynlibdir = subst dynlibdir [prefixVar, bindirVar, libdirVar],+ flibdir = subst flibdir [prefixVar, bindirVar, libdirVar], libexecdir = subst libexecdir prefixBinLibVars,+ libexecsubdir = subst libexecsubdir [], includedir = subst includedir prefixBinLibVars, datadir = subst datadir prefixBinLibVars, datasubdir = subst datasubdir [],@@ -363,7 +384,7 @@ -- | Convert a 'FilePath' to a 'PathTemplate' including any template vars. -- toPathTemplate :: FilePath -> PathTemplate-toPathTemplate = PathTemplate . read+toPathTemplate = PathTemplate . read -- TODO: eradicateNoParse -- | Convert back to a path, any remaining vars are included --@@ -397,10 +418,12 @@ ++ abiTemplateEnv compiler platform packageTemplateEnv :: PackageIdentifier -> UnitId -> PathTemplateEnv-packageTemplateEnv pkgId libname =+packageTemplateEnv pkgId uid = [(PkgNameVar, PathTemplate [Ordinary $ display (packageName pkgId)]) ,(PkgVerVar, PathTemplate [Ordinary $ display (packageVersion pkgId)])- ,(LibNameVar, PathTemplate [Ordinary $ display libname])+ -- Invariant: uid is actually a HashedUnitId. Hard to enforce because+ -- it's an API change.+ ,(LibNameVar, PathTemplate [Ordinary $ display uid]) ,(PkgIdVar, PathTemplate [Ordinary $ display pkgId]) ] @@ -539,17 +562,17 @@ -- --------------------------------------------------------------------------- -- Internal utilities -getWindowsProgramFilesDir :: IO FilePath+getWindowsProgramFilesDir :: NoCallStackIO FilePath getWindowsProgramFilesDir = do-#if mingw32_HOST_OS+#ifdef mingw32_HOST_OS m <- shGetFolderPath csidl_PROGRAM_FILES #else let m = Nothing #endif return (fromMaybe "C:\\Program Files" m) -#if mingw32_HOST_OS-shGetFolderPath :: CInt -> IO (Maybe FilePath)+#ifdef mingw32_HOST_OS+shGetFolderPath :: CInt -> NoCallStackIO (Maybe FilePath) shGetFolderPath n = allocaArray long_path_size $ \pPath -> do r <- c_SHGetFolderPath nullPtr n nullPtr 0 pPath@@ -576,5 +599,5 @@ -> Ptr () -> CInt -> CWString- -> IO CInt+ -> Prelude.IO CInt #endif
Distribution/Simple/JHC.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.JHC@@ -16,6 +19,9 @@ installLib, installExe ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.PackageDescription as PD hiding (Flag) import Distribution.InstalledPackageInfo import qualified Distribution.InstalledPackageInfo as InstalledPackageInfo@@ -26,6 +32,9 @@ import Distribution.Simple.Compiler import Language.Haskell.Extension import Distribution.Simple.Program+import Distribution.Types.MungedPackageId (mungedName)+import Distribution.Types.PackageId+import Distribution.Types.UnitId import Distribution.Version import Distribution.Package import Distribution.Simple.Utils@@ -37,10 +46,7 @@ ( readP_to_S, string, skipSpaces ) import Distribution.System ( Platform ) -import Data.List ( nub )-import Data.Char ( isSpace )-import qualified Data.Map as M ( empty )-import Data.Maybe ( fromMaybe )+import qualified Data.Map as Map ( empty ) import qualified Data.ByteString.Lazy.Char8 as BS.Char8 @@ -49,12 +55,12 @@ -- Configuring configure :: Verbosity -> Maybe FilePath -> Maybe FilePath- -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)-configure verbosity hcPath _hcPkgPath conf = do+ -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)+configure verbosity hcPath _hcPkgPath progdb = do - (jhcProg, _, conf') <- requireProgramVersion verbosity- jhcProgram (orLaterVersion (Version [0,7,2] []))- (userMaybeSpecifyPath "jhc" hcPath conf)+ (jhcProg, _, progdb') <- requireProgramVersion verbosity+ jhcProgram (orLaterVersion (mkVersion [0,7,2]))+ (userMaybeSpecifyPath "jhc" hcPath progdb) let Just version = programVersion jhcProg comp = Compiler {@@ -63,10 +69,10 @@ compilerCompat = [], compilerLanguages = jhcLanguages, compilerExtensions = jhcLanguageExtensions,- compilerProperties = M.empty+ compilerProperties = Map.empty } compPlatform = Nothing- return (comp, compPlatform, conf')+ return (comp, compPlatform, progdb') jhcLanguages :: [(Language, Flag)] jhcLanguages = [(Haskell98, "")]@@ -84,13 +90,13 @@ ,(DisableExtension CPP , "-fno-cpp") ] -getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramConfiguration+getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex-getInstalledPackages verbosity _packageDBs conf = do+getInstalledPackages verbosity _packageDBs progdb = do -- jhc --list-libraries lists all available libraries. -- How shall I find out, whether they are global or local -- without checking all files and locations?- str <- rawSystemProgramStdoutConf verbosity jhcProgram conf ["--list-libraries"]+ str <- getDbProgramOutput verbosity jhcProgram progdb ["--list-libraries"] let pCheck :: [(a, String)] -> [a] pCheck rs = [ r | (r,s) <- rs, all isSpace s ] let parseLine ln =@@ -120,9 +126,9 @@ pfile = buildDir lbi </> "jhc-pkg.conf" hlfile= buildDir lbi </> (pkgid ++ ".hl") writeFileAtomic pfile . BS.Char8.pack $ jhcPkgConf pkg_descr- rawSystemProgram verbosity jhcProg $+ runProgram verbosity jhcProg $ ["--build-hl="++pfile, "-o", hlfile] ++- args ++ map display (libModules lib)+ args ++ map display (allLibModules lib clbi) -- | Building an executable for JHC. -- Currently C source files are not supported.@@ -131,9 +137,9 @@ buildExe verbosity _pkg_descr lbi exe clbi = do let Just jhcProg = lookupProgram jhcProgram (withPrograms lbi) let exeBi = buildInfo exe- let out = buildDir lbi </> exeName exe+ let out = buildDir lbi </> display (exeName exe) let args = constructJHCCmdLine lbi exeBi clbi (buildDir lbi) verbosity- rawSystemProgram verbosity jhcProg (["-o",out] ++ args ++ [modulePath exe])+ runProgram verbosity jhcProg (["-o",out] ++ args ++ [modulePath exe]) constructJHCCmdLine :: LocalBuildInfo -> BuildInfo -> ComponentLocalBuildInfo -> FilePath -> Verbosity -> [String]@@ -144,18 +150,21 @@ ++ extensionsToFlags (compiler lbi) (usedExtensions bi) ++ ["--noauto","-i-"] ++ concat [["-i", l] | l <- nub (hsSourceDirs bi)]- ++ ["-i", autogenModulesDir lbi]+ ++ ["-i", autogenComponentModulesDir lbi clbi]+ ++ ["-i", autogenPackageModulesDir lbi] ++ ["-optc" ++ opt | opt <- PD.ccOptions bi] -- It would be better if JHC would accept package names with versions, -- but JHC-0.7.2 doesn't accept this. -- Thus, we have to strip the version with 'pkgName'.- ++ (concat [ ["-p", display (pkgName pkgid)]+ ++ (concat [ ["-p", display (mungedName pkgid)] | (_, pkgid) <- componentPackageDeps clbi ]) jhcPkgConf :: PackageDescription -> String jhcPkgConf pd = let sline name sel = name ++ ": "++sel pd- lib = fromMaybe (error "no library available") . library+ lib pd' = case library pd' of+ Just lib' -> lib'+ Nothing -> error "no library available" comma = intercalate "," . map display in unlines [sline "name" (display . pkgName . packageId) ,sline "version" (display . pkgVersion . packageId)@@ -179,7 +188,7 @@ installExe :: Verbosity -> FilePath -> FilePath -> (FilePath,FilePath) -> PackageDescription -> Executable -> IO () installExe verb dest build_dir (progprefix,progsuffix) _ exe = do- let exe_name = exeName exe+ let exe_name = display $ exeName exe src = exe_name </> exeExtension out = (progprefix ++ exe_name ++ progsuffix) </> exeExtension createDirectoryIfMissingVerbose verb True dest
Distribution/Simple/LHC.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.LHC@@ -40,6 +43,10 @@ ghcVerbosityOptions ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.UnqualComponentName import Distribution.PackageDescription as PD hiding (Flag) import Distribution.InstalledPackageInfo import qualified Distribution.InstalledPackageInfo as InstalledPackageInfo@@ -60,11 +67,7 @@ import Distribution.System import Language.Haskell.Extension -import Control.Monad ( unless, when )-import Data.Monoid as Mon-import Data.List-import qualified Data.Map as M ( empty )-import Data.Maybe ( catMaybes )+import qualified Data.Map as Map ( empty ) import System.Directory ( removeFile, renameFile, getDirectoryContents, doesFileExist, getTemporaryDirectory )@@ -76,20 +79,20 @@ -- Configuring configure :: Verbosity -> Maybe FilePath -> Maybe FilePath- -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)-configure verbosity hcPath hcPkgPath conf = do+ -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)+configure verbosity hcPath hcPkgPath progdb = do - (lhcProg, lhcVersion, conf') <-+ (lhcProg, lhcVersion, progdb') <- requireProgramVersion verbosity lhcProgram- (orLaterVersion (Version [0,7] []))- (userMaybeSpecifyPath "lhc" hcPath conf)+ (orLaterVersion (mkVersion [0,7]))+ (userMaybeSpecifyPath "lhc" hcPath progdb) - (lhcPkgProg, lhcPkgVersion, conf'') <-+ (lhcPkgProg, lhcPkgVersion, progdb'') <- requireProgramVersion verbosity lhcPkgProgram- (orLaterVersion (Version [0,7] []))- (userMaybeSpecifyPath "lhc-pkg" hcPkgPath conf')+ (orLaterVersion (mkVersion [0,7]))+ (userMaybeSpecifyPath "lhc-pkg" hcPkgPath progdb') - when (lhcVersion /= lhcPkgVersion) $ die $+ when (lhcVersion /= lhcPkgVersion) $ die' verbosity $ "Version mismatch between lhc and lhc-pkg: " ++ programPath lhcProg ++ " is version " ++ display lhcVersion ++ " " ++ programPath lhcPkgProg ++ " is version " ++ display lhcPkgVersion@@ -103,29 +106,29 @@ compilerCompat = [], compilerLanguages = languages, compilerExtensions = extensions,- compilerProperties = M.empty+ compilerProperties = Map.empty }- conf''' = configureToolchain lhcProg conf'' -- configure gcc and ld+ progdb''' = configureToolchain lhcProg progdb'' -- configure gcc and ld compPlatform = Nothing- return (comp, compPlatform, conf''')+ return (comp, compPlatform, progdb''') -- | Adjust the way we find and configure gcc and ld ---configureToolchain :: ConfiguredProgram -> ProgramConfiguration- -> ProgramConfiguration+configureToolchain :: ConfiguredProgram -> ProgramDb+ -> ProgramDb configureToolchain lhcProg = addKnownProgram gccProgram { programFindLocation = findProg gccProgram (baseDir </> "gcc.exe"), programPostConf = configureGcc } . addKnownProgram ldProgram {- programFindLocation = findProg ldProgram (libDir </> "ld.exe"),+ programFindLocation = findProg ldProgram (gccLibDir </> "ld.exe"), programPostConf = configureLd } where compilerDir = takeDirectory (programPath lhcProg) baseDir = takeDirectory compilerDir- libDir = baseDir </> "gcc-lib"+ gccLibDir = baseDir </> "gcc-lib" includeDir = baseDir </> "include" </> "mingw" isWindows = case buildOS of Windows -> True; _ -> False @@ -140,7 +143,7 @@ programFindLocation prog verbosity searchpath | otherwise = programFindLocation prog - configureGcc :: Verbosity -> ConfiguredProgram -> IO ConfiguredProgram+ configureGcc :: Verbosity -> ConfiguredProgram -> NoCallStackIO ConfiguredProgram configureGcc | isWindows = \_ gccProg -> case programLocation gccProg of -- if it's found on system then it means we're using the result@@ -148,7 +151,7 @@ -- that means we should add this extra flag to tell ghc's gcc -- where it lives and thus where gcc can find its various files: FoundOnSystem {} -> return gccProg {- programDefaultArgs = ["-B" ++ libDir,+ programDefaultArgs = ["-B" ++ gccLibDir, "-I" ++ includeDir] } UserSpecified {} -> return gccProg@@ -162,12 +165,12 @@ withTempFile tempDir ".o" $ \testofile testohnd -> do hPutStrLn testchnd "int foo() { return 0; }" hClose testchnd; hClose testohnd- rawSystemProgram verbosity lhcProg ["-c", testcfile,+ runProgram verbosity lhcProg ["-c", testcfile, "-o", testofile] withTempFile tempDir ".o" $ \testofile' testohnd' -> do hClose testohnd'- _ <- rawSystemProgramStdout verbosity ldProg+ _ <- getProgramOutput verbosity ldProg ["-x", "-r", testofile, "-o", testofile'] return True `catchIO` (\_ -> return False)@@ -176,7 +179,7 @@ then return ldProg { programDefaultArgs = ["-x"] } else return ldProg -getLanguages :: Verbosity -> ConfiguredProgram -> IO [(Language, Flag)]+getLanguages :: Verbosity -> ConfiguredProgram -> NoCallStackIO [(Language, Flag)] getLanguages _ _ = return [(Haskell98, "")] --FIXME: does lhc support -XHaskell98 flag? from what version? @@ -194,45 +197,46 @@ return $ [ (ext, "-X" ++ display ext) | Just ext <- map readExtension (lines exts) ] -getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramConfiguration+getInstalledPackages :: Verbosity -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex-getInstalledPackages verbosity packagedbs conf = do- checkPackageDbStack packagedbs- pkgss <- getInstalledPackages' lhcPkg verbosity packagedbs conf+getInstalledPackages verbosity packagedbs progdb = do+ checkPackageDbStack verbosity packagedbs+ pkgss <- getInstalledPackages' lhcPkg verbosity packagedbs progdb let indexes = [ PackageIndex.fromList (map (substTopDir topDir) pkgs) | (_, pkgs) <- pkgss ]- return $! (Mon.mconcat indexes)+ return $! (mconcat indexes) where -- On Windows, various fields have $topdir/foo rather than full -- paths. We need to substitute the right value in so that when -- we, for example, call gcc, we have proper paths to give it- Just ghcProg = lookupProgram lhcProgram conf- Just lhcPkg = lookupProgram lhcPkgProgram conf+ Just ghcProg = lookupProgram lhcProgram progdb+ Just lhcPkg = lookupProgram lhcPkgProgram progdb compilerDir = takeDirectory (programPath ghcProg) topDir = takeDirectory compilerDir -checkPackageDbStack :: PackageDBStack -> IO ()-checkPackageDbStack (GlobalPackageDB:rest)+checkPackageDbStack :: Verbosity -> PackageDBStack -> IO ()+checkPackageDbStack _ (GlobalPackageDB:rest) | GlobalPackageDB `notElem` rest = return ()-checkPackageDbStack _ =- die $ "GHC.getInstalledPackages: the global package db must be "+checkPackageDbStack verbosity _ =+ die' verbosity $+ "GHC.getInstalledPackages: the global package db must be " ++ "specified first and cannot be specified multiple times" -- | Get the packages from specific PackageDBs, not cumulative. -- getInstalledPackages' :: ConfiguredProgram -> Verbosity- -> [PackageDB] -> ProgramConfiguration+ -> [PackageDB] -> ProgramDb -> IO [(PackageDB, [InstalledPackageInfo])]-getInstalledPackages' lhcPkg verbosity packagedbs conf+getInstalledPackages' lhcPkg verbosity packagedbs progdb =- sequence- [ do str <- rawSystemProgramStdoutConf verbosity lhcPkgProgram conf+ sequenceA+ [ do str <- getDbProgramOutput verbosity lhcPkgProgram progdb ["dump", packageDbGhcPkgFlag packagedb]- `catchExit` \_ -> die $ "ghc-pkg dump failed"+ `catchExit` \_ -> die' verbosity $ "ghc-pkg dump failed" case parsePackages str of Left ok -> return (packagedb, ok)- _ -> die "failed to parse output of 'ghc-pkg dump'"+ _ -> die' verbosity "failed to parse output of 'ghc-pkg dump'" | packagedb <- packagedbs ] where@@ -256,7 +260,7 @@ packageDbGhcPkgFlag (SpecificPackageDB path) = "--" ++ packageDbFlag ++ "=" ++ path packageDbFlag- | programVersion lhcPkg < Just (Version [7,5] [])+ | programVersion lhcPkg < Just (mkVersion [7,5]) = "package-conf" | otherwise = "package-db"@@ -289,10 +293,10 @@ buildLib :: Verbosity -> PackageDescription -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO () buildLib verbosity pkg_descr lbi lib clbi = do- let libName = componentUnitId clbi- pref = buildDir lbi+ let lib_name = componentUnitId clbi+ pref = componentBuildDir lbi clbi pkgid = packageId pkg_descr- runGhcProg = rawSystemProgramConf verbosity lhcProgram (withPrograms lbi)+ runGhcProg = runDbProgram verbosity lhcProgram (withPrograms lbi) ifVanillaLib forceVanilla = when (forceVanilla || withVanillaLib lbi) ifProfLib = when (withProfLib lbi) ifSharedLib = when (withSharedLib lbi)@@ -310,7 +314,7 @@ let ghcArgs = ["-package-name", display pkgid ] ++ constructGHCCmdLine lbi libBi clbi libTargetDir verbosity- ++ map display (libModules lib)+ ++ map display (allLibModules lib clbi) lhcWrap x = ["--build-library", "--ghc-opts=" ++ unwords x] ghcArgsProf = ghcArgs ++ ["-prof",@@ -324,7 +328,7 @@ "-osuf", "dyn_o", "-fPIC" ] ++ hcSharedOptions GHC libBi- unless (null (libModules lib)) $+ unless (null (allLibModules lib clbi)) $ do ifVanillaLib forceVanillaLib (runGhcProg $ lhcWrap ghcArgs) ifProfLib (runGhcProg $ lhcWrap ghcArgsProf) ifSharedLib (runGhcProg $ lhcWrap ghcArgsShared)@@ -344,34 +348,34 @@ let cObjs = map (`replaceExtension` objExtension) (cSources libBi) cSharedObjs = map (`replaceExtension` ("dyn_" ++ objExtension)) (cSources libBi) cid = compilerId (compiler lbi)- vanillaLibFilePath = libTargetDir </> mkLibName libName- profileLibFilePath = libTargetDir </> mkProfLibName libName- sharedLibFilePath = libTargetDir </> mkSharedLibName cid libName- ghciLibFilePath = libTargetDir </> mkGHCiLibName libName+ vanillaLibFilePath = libTargetDir </> mkLibName lib_name+ profileLibFilePath = libTargetDir </> mkProfLibName lib_name+ sharedLibFilePath = libTargetDir </> mkSharedLibName cid lib_name+ ghciLibFilePath = libTargetDir </> mkGHCiLibName lib_name - stubObjs <- fmap catMaybes $ sequence+ stubObjs <- fmap catMaybes $ sequenceA [ findFileWithExtension [objExtension] [libTargetDir] (ModuleName.toFilePath x ++"_stub")- | x <- libModules lib ]- stubProfObjs <- fmap catMaybes $ sequence+ | x <- allLibModules lib clbi ]+ stubProfObjs <- fmap catMaybes $ sequenceA [ findFileWithExtension ["p_" ++ objExtension] [libTargetDir] (ModuleName.toFilePath x ++"_stub")- | x <- libModules lib ]- stubSharedObjs <- fmap catMaybes $ sequence+ | x <- allLibModules lib clbi ]+ stubSharedObjs <- fmap catMaybes $ sequenceA [ findFileWithExtension ["dyn_" ++ objExtension] [libTargetDir] (ModuleName.toFilePath x ++"_stub")- | x <- libModules lib ]+ | x <- allLibModules lib clbi ] - hObjs <- getHaskellObjects lib lbi+ hObjs <- getHaskellObjects lib lbi clbi pref objExtension True hProfObjs <- if (withProfLib lbi)- then getHaskellObjects lib lbi+ then getHaskellObjects lib lbi clbi pref ("p_" ++ objExtension) True else return [] hSharedObjs <- if (withSharedLib lbi)- then getHaskellObjects lib lbi+ then getHaskellObjects lib lbi clbi pref ("dyn_" ++ objExtension) False else return [] @@ -426,12 +430,12 @@ -- This method is called iteratively by xargs. The -- output goes to <ldLibName>.tmp, and any existing file -- named <ldLibName> is included when linking. The- -- output is renamed to <libName>.- rawSystemProgramConf verbosity ldProgram (withPrograms lbi)+ -- output is renamed to <lib_name>.+ runDbProgram verbosity ldProgram (withPrograms lbi) (args ++ if exists then [ldLibName] else []) renameFile (ldLibName <.> "tmp") ldLibName - runAr = rawSystemProgramConf verbosity arProgram (withPrograms lbi)+ runAr = runDbProgram verbosity arProgram (withPrograms lbi) --TODO: discover this at configure time or runtime on Unix -- The value is 32k on Windows and POSIX specifies a minimum of 4k@@ -457,18 +461,19 @@ -> Executable -> ComponentLocalBuildInfo -> IO () buildExe verbosity _pkg_descr lbi exe@Executable { exeName = exeName', modulePath = modPath } clbi = do+ let exeName'' = unUnqualComponentName exeName' let pref = buildDir lbi- runGhcProg = rawSystemProgramConf verbosity lhcProgram (withPrograms lbi)+ runGhcProg = runDbProgram verbosity lhcProgram (withPrograms lbi) exeBi <- hackThreadedFlag verbosity (compiler lbi) (withProfExe lbi) (buildInfo exe) -- exeNameReal, the name that GHC really uses (with .exe on Windows)- let exeNameReal = exeName' <.>- (if null $ takeExtension exeName' then exeExtension else "")+ let exeNameReal = exeName'' <.>+ (if null $ takeExtension exeName'' then exeExtension else "") - let targetDir = pref </> exeName'- let exeDir = targetDir </> (exeName' ++ "-tmp")+ let targetDir = pref </> exeName''+ let exeDir = targetDir </> (exeName'' ++ "-tmp") createDirectoryIfMissingVerbose verbosity True targetDir createDirectoryIfMissingVerbose verbosity True exeDir -- TODO: do we need to put hs-boot files into place for mutually recursive modules?@@ -496,7 +501,7 @@ ++ [srcMainFile] ++ ["-optl" ++ opt | opt <- PD.ldOptions exeBi] ++ ["-l"++lib | lib <- extraLibs exeBi]- ++ ["-L"++libDir | libDir <- extraLibDirs exeBi]+ ++ ["-L"++extraLibDir | extraLibDir <- extraLibDirs exeBi] ++ concat [["-framework", f] | f <- PD.frameworks exeBi] ++ if profExe then ["-prof",@@ -525,7 +530,7 @@ ++ "profiling in ghc-6.8 and older. It will be disabled." return bi { options = filterHcOptions (/= "-threaded") (options bi) } where- mustFilterThreaded = prof && compilerVersion comp < Version [6, 10] []+ mustFilterThreaded = prof && compilerVersion comp < mkVersion [6, 10] && "-threaded" `elem` hcOptions GHC bi filterHcOptions p hcoptss = [ (hc, if hc == GHC then filter p opts else opts)@@ -533,13 +538,13 @@ -- when using -split-objs, we need to search for object files in the -- Module_split directory for each module.-getHaskellObjects :: Library -> LocalBuildInfo- -> FilePath -> String -> Bool -> IO [FilePath]-getHaskellObjects lib lbi pref wanted_obj_ext allow_split_objs+getHaskellObjects :: Library -> LocalBuildInfo -> ComponentLocalBuildInfo+ -> FilePath -> String -> Bool -> NoCallStackIO [FilePath]+getHaskellObjects lib lbi clbi pref wanted_obj_ext allow_split_objs | splitObjs lbi && allow_split_objs = do let dirs = [ pref </> (ModuleName.toFilePath x ++ "_split")- | x <- libModules lib ]- objss <- mapM getDirectoryContents dirs+ | x <- allLibModules lib clbi ]+ objss <- traverse getDirectoryContents dirs let objs = [ dir </> obj | (objs',dir) <- zip objss dirs, obj <- objs', let obj_ext = takeExtension obj,@@ -547,7 +552,7 @@ return objs | otherwise = return [ pref </> ModuleName.toFilePath x <.> wanted_obj_ext- | x <- libModules lib ]+ | x <- allLibModules lib clbi ] constructGHCCmdLine@@ -578,15 +583,17 @@ ++ ["-i"] ++ ["-i" ++ odir] ++ ["-i" ++ l | l <- nub (hsSourceDirs bi)]- ++ ["-i" ++ autogenModulesDir lbi]- ++ ["-I" ++ autogenModulesDir lbi]+ ++ ["-i" ++ autogenComponentModulesDir lbi clbi]+ ++ ["-i" ++ autogenPackageModulesDir lbi]+ ++ ["-I" ++ autogenComponentModulesDir lbi clbi]+ ++ ["-I" ++ autogenPackageModulesDir lbi] ++ ["-I" ++ odir] ++ ["-I" ++ dir | dir <- PD.includeDirs bi] ++ ["-optP" ++ opt | opt <- cppOptions bi]- ++ [ "-optP-include", "-optP"++ (autogenModulesDir lbi </> cppHeaderName) ]+ ++ [ "-optP-include", "-optP"++ (autogenComponentModulesDir lbi clbi </> cppHeaderName) ] ++ [ "-#include \"" ++ inc ++ "\"" | inc <- PD.includes bi ] ++ [ "-odir", odir, "-hidir", odir ]- ++ (if compilerVersion c >= Version [6,8] []+ ++ (if compilerVersion c >= mkVersion [6,8] then ["-stubdir", odir] else []) ++ ghcPackageFlags lbi clbi ++ (case withOptimization lbi of@@ -600,7 +607,7 @@ ghcPackageFlags :: LocalBuildInfo -> ComponentLocalBuildInfo -> [String] ghcPackageFlags lbi clbi- | ghcVer >= Version [6,11] []+ | ghcVer >= mkVersion [6,11] = concat [ ["-package-id", display ipkgid] | (ipkgid, _) <- componentPackageDeps clbi ] @@ -622,7 +629,7 @@ dbstack = withPackageDB lbi packageDbFlag- | compilerVersion (compiler lbi) < Version [7,5] []+ | compilerVersion (compiler lbi) < mkVersion [7,5] = "package-conf" | otherwise = "package-db"@@ -630,7 +637,7 @@ constructCcCmdLine :: LocalBuildInfo -> BuildInfo -> ComponentLocalBuildInfo -> FilePath -> FilePath -> Verbosity -> (FilePath,[String]) constructCcCmdLine lbi bi clbi pref filename verbosity- = let odir | compilerVersion (compiler lbi) >= Version [6,4,1] [] = pref+ = let odir | compilerVersion (compiler lbi) >= mkVersion [6,4,1] = pref | otherwise = pref </> takeDirectory filename -- ghc 6.4.1 fixed a bug in -odir handling -- for C compilations.@@ -662,20 +669,19 @@ -- |Install executables for GHC. installExe :: Verbosity -> LocalBuildInfo- -> InstallDirs FilePath -- ^Where to copy the files to+ -> FilePath -- ^Where to copy the files to -> FilePath -- ^Build location -> (FilePath, FilePath) -- ^Executable (prefix,suffix) -> PackageDescription -> Executable -> IO ()-installExe verbosity lbi installDirs buildPref (progprefix, progsuffix) _pkg exe = do- let binDir = bindir installDirs+installExe verbosity lbi binDir buildPref (progprefix, progsuffix) _pkg exe = do createDirectoryIfMissingVerbose verbosity True binDir- let exeFileName = exeName exe <.> exeExtension- fixedExeBaseName = progprefix ++ exeName exe ++ progsuffix+ let exeFileName = unUnqualComponentName (exeName exe) <.> exeExtension+ fixedExeBaseName = progprefix ++ unUnqualComponentName (exeName exe) ++ progsuffix installBinary dest = do installExecutableFile verbosity- (buildPref </> exeName exe </> exeFileName)+ (buildPref </> unUnqualComponentName (exeName exe) </> exeFileName) (dest <.> exeExtension) stripExe verbosity lbi exeFileName (dest <.> exeExtension) installBinary (binDir </> fixedExeBaseName)@@ -683,7 +689,7 @@ stripExe :: Verbosity -> LocalBuildInfo -> FilePath -> FilePath -> IO () stripExe verbosity lbi name path = when (stripExes lbi) $ case lookupProgram stripProgram (withPrograms lbi) of- Just strip -> rawSystemProgram verbosity strip args+ Just strip -> runProgram verbosity strip args Nothing -> unless (buildOS == Windows) $ -- Don't bother warning on windows, we don't expect them to -- have the strip program anyway.@@ -713,12 +719,12 @@ createDirectoryIfMissingVerbose verbosity True dst installOrdinaryFile verbosity (src </> n) (dst </> n) copyModuleFiles ext =- findModuleFiles [builtDir] [ext] (libModules lib)+ findModuleFiles [builtDir] [ext] (allLibModules lib clbi) >>= installOrdinaryFiles verbosity targetDir ifVanilla $ copyModuleFiles "hi" ifProf $ copyModuleFiles "p_hi"- hcrFiles <- findModuleFiles (builtDir : hsSourceDirs (libBuildInfo lib)) ["hcr"] (libModules lib)- flip mapM_ hcrFiles $ \(srcBase, srcFile) -> runLhc ["--install-library", srcBase </> srcFile]+ hcrFiles <- findModuleFiles (builtDir : hsSourceDirs (libBuildInfo lib)) ["hcr"] (allLibModules lib clbi)+ flip traverse_ hcrFiles $ \(srcBase, srcFile) -> runLhc ["--install-library", srcBase </> srcFile] -- copy the built library files over: ifVanilla $ copy builtDir targetDir vanillaLibName@@ -728,43 +734,45 @@ where cid = compilerId (compiler lbi)- libName = componentUnitId clbi- vanillaLibName = mkLibName libName- profileLibName = mkProfLibName libName- ghciLibName = mkGHCiLibName libName- sharedLibName = mkSharedLibName cid libName+ lib_name = componentUnitId clbi+ vanillaLibName = mkLibName lib_name+ profileLibName = mkProfLibName lib_name+ ghciLibName = mkGHCiLibName lib_name+ sharedLibName = mkSharedLibName cid lib_name - hasLib = not $ null (libModules lib)+ hasLib = not $ null (allLibModules lib clbi) && null (cSources (libBuildInfo lib)) ifVanilla = when (hasLib && withVanillaLib lbi) ifProf = when (hasLib && withProfLib lbi) ifGHCi = when (hasLib && withGHCiLib lbi) ifShared = when (hasLib && withSharedLib lbi) - runLhc = rawSystemProgramConf verbosity lhcProgram (withPrograms lbi)+ runLhc = runDbProgram verbosity lhcProgram (withPrograms lbi) -- ----------------------------------------------------------------------------- -- Registering registerPackage :: Verbosity- -> ProgramConfiguration+ -> ProgramDb -> PackageDBStack -> InstalledPackageInfo+ -> HcPkg.RegisterOptions -> IO ()-registerPackage verbosity progdb packageDbs installedPkgInfo =- HcPkg.reregister (hcPkgInfo progdb) verbosity packageDbs- (Right installedPkgInfo)+registerPackage verbosity progdb packageDbs installedPkgInfo registerOptions =+ HcPkg.register (hcPkgInfo progdb) verbosity packageDbs+ installedPkgInfo registerOptions -hcPkgInfo :: ProgramConfiguration -> HcPkg.HcPkgInfo-hcPkgInfo conf = HcPkg.HcPkgInfo { HcPkg.hcPkgProgram = lhcPkgProg- , HcPkg.noPkgDbStack = False- , HcPkg.noVerboseFlag = False- , HcPkg.flagPackageConf = False- , HcPkg.supportsDirDbs = True- , HcPkg.requiresDirDbs = True- , HcPkg.nativeMultiInstance = False -- ?- , HcPkg.recacheMultiInstance = False -- ?- }+hcPkgInfo :: ProgramDb -> HcPkg.HcPkgInfo+hcPkgInfo progdb = HcPkg.HcPkgInfo { HcPkg.hcPkgProgram = lhcPkgProg+ , HcPkg.noPkgDbStack = False+ , HcPkg.noVerboseFlag = False+ , HcPkg.flagPackageConf = False+ , HcPkg.supportsDirDbs = True+ , HcPkg.requiresDirDbs = True+ , HcPkg.nativeMultiInstance = False -- ?+ , HcPkg.recacheMultiInstance = False -- ?+ , HcPkg.suppressFilesCheck = True+ } where- Just lhcPkgProg = lookupProgram lhcPkgProgram conf+ Just lhcPkgProg = lookupProgram lhcPkgProgram progdb
Distribution/Simple/LocalBuildInfo.hs view
@@ -1,4 +1,6 @@ {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-} ----------------------------------------------------------------------------- -- |@@ -27,328 +29,158 @@ -- * Buildable package components Component(..), ComponentName(..),+ defaultLibName, showComponentName,+ componentNameString, ComponentLocalBuildInfo(..),+ componentBuildDir, foldComponent, componentName, componentBuildInfo,- componentEnabled,- componentDisabledReason,- ComponentDisabledReason(..),+ componentBuildable, pkgComponents,- pkgEnabledComponents,+ pkgBuildableComponents, lookupComponent, getComponent, getComponentLocalBuildInfo, allComponentsInBuildOrder, componentsInBuildOrder,- checkComponentsCyclic, depLibraryPaths,+ allLibModules, withAllComponentsInBuildOrder, withComponentsInBuildOrder, withComponentsLBI, withLibLBI, withExeLBI,+ withBenchLBI, withTestLBI,+ enabledTestLBIs,+ enabledBenchLBIs, -- * Installation directories module Distribution.Simple.InstallDirs, absoluteInstallDirs, prefixRelativeInstallDirs,- substPathTemplate+ absoluteComponentInstallDirs, prefixRelativeComponentInstallDirs,+ substPathTemplate, ) where +import Prelude ()+import Distribution.Compat.Prelude +import Distribution.Types.Component+import Distribution.Types.PackageId+import Distribution.Types.UnitId+import Distribution.Types.ComponentName+import Distribution.Types.UnqualComponentName+import Distribution.Types.PackageDescription+import Distribution.Types.ComponentLocalBuildInfo+import Distribution.Types.LocalBuildInfo+import Distribution.Types.TargetInfo+ import Distribution.Simple.InstallDirs hiding (absoluteInstallDirs, prefixRelativeInstallDirs, substPathTemplate, ) import qualified Distribution.Simple.InstallDirs as InstallDirs-import Distribution.Simple.Program import Distribution.PackageDescription import qualified Distribution.InstalledPackageInfo as Installed import Distribution.Package+import Distribution.ModuleName import Distribution.Simple.Compiler import Distribution.Simple.PackageIndex-import Distribution.Simple.Setup import Distribution.Simple.Utils import Distribution.Text-import Distribution.System+import qualified Distribution.Compat.Graph as Graph -import Data.Array ((!))-import Distribution.Compat.Binary (Binary)-import Data.Graph-import Data.List (nub, find, stripPrefix)-import Data.Maybe-import Data.Tree (flatten)-import GHC.Generics (Generic)-import Data.Map (Map)+import Data.List (stripPrefix)+import System.FilePath+import qualified Data.Map as Map import System.Directory (doesDirectoryExist, canonicalizePath) --- | Data cached after configuration step. See also--- 'Distribution.Simple.Setup.ConfigFlags'.-data LocalBuildInfo = LocalBuildInfo {- configFlags :: ConfigFlags,- -- ^ Options passed to the configuration step.- -- Needed to re-run configuration when .cabal is out of date- flagAssignment :: FlagAssignment,- -- ^ The final set of flags which were picked for this package- extraConfigArgs :: [String],- -- ^ Extra args on the command line for the configuration step.- -- Needed to re-run configuration when .cabal is out of date- installDirTemplates :: InstallDirTemplates,- -- ^ The installation directories for the various different- -- kinds of files- --TODO: inplaceDirTemplates :: InstallDirs FilePath- compiler :: Compiler,- -- ^ The compiler we're building with- hostPlatform :: Platform,- -- ^ The platform we're building for- buildDir :: FilePath,- -- ^ Where to build the package.- componentsConfigs :: [(ComponentName, ComponentLocalBuildInfo, [ComponentName])],- -- ^ All the components to build, ordered by topological sort, and with their dependencies- -- over the intrapackage dependency graph- installedPkgs :: InstalledPackageIndex,- -- ^ All the info about the installed packages that the- -- current package depends on (directly or indirectly).- pkgDescrFile :: Maybe FilePath,- -- ^ the filename containing the .cabal file, if available- localPkgDescr :: PackageDescription,- -- ^ The resolved package description, that does not contain- -- any conditionals.- withPrograms :: ProgramConfiguration, -- ^Location and args for all programs- withPackageDB :: PackageDBStack, -- ^What package database to use, global\/user- withVanillaLib:: Bool, -- ^Whether to build normal libs.- withProfLib :: Bool, -- ^Whether to build profiling versions of libs.- withSharedLib :: Bool, -- ^Whether to build shared versions of libs.- withDynExe :: Bool, -- ^Whether to link executables dynamically- withProfExe :: Bool, -- ^Whether to build executables for profiling.- withProfLibDetail :: ProfDetailLevel, -- ^Level of automatic profile detail.- withProfExeDetail :: ProfDetailLevel, -- ^Level of automatic profile detail.- withOptimization :: OptimisationLevel, -- ^Whether to build with optimization (if available).- withDebugInfo :: DebugInfoLevel, -- ^Whether to emit debug info (if available).- withGHCiLib :: Bool, -- ^Whether to build libs suitable for use with GHCi.- splitObjs :: Bool, -- ^Use -split-objs with GHC, if available- stripExes :: Bool, -- ^Whether to strip executables during install- stripLibs :: Bool, -- ^Whether to strip libraries during install- progPrefix :: PathTemplate, -- ^Prefix to be prepended to installed executables- progSuffix :: PathTemplate, -- ^Suffix to be appended to installed executables- relocatable :: Bool -- ^Whether to build a relocatable package- } deriving (Generic, Read, Show)--instance Binary LocalBuildInfo---- | Extract the 'ComponentId' from the library component of a--- 'LocalBuildInfo' if it exists, or make a fake component ID based--- on the package ID.-localComponentId :: LocalBuildInfo -> ComponentId-localComponentId lbi- = case localUnitId lbi of- SimpleUnitId cid -> cid---- | Extract the 'UnitId' from the library component of a--- 'LocalBuildInfo' if it exists, or make a fake unit ID based on--- the package ID.-localUnitId :: LocalBuildInfo -> UnitId-localUnitId lbi =- foldr go (mkLegacyUnitId (package (localPkgDescr lbi))) (componentsConfigs lbi)- where go (_, clbi, _) old_uid = case clbi of- LibComponentLocalBuildInfo { componentUnitId = uid } -> uid- _ -> old_uid---- | Extract the compatibility 'ComponentId' from the library component of a--- 'LocalBuildInfo' if it exists, or make a fake compatibility package--- key based on the package ID.-localCompatPackageKey :: LocalBuildInfo -> String-localCompatPackageKey lbi =- foldr go (display (package (localPkgDescr lbi))) (componentsConfigs lbi)- where go (_, clbi, _) old_pk = case clbi of- LibComponentLocalBuildInfo { componentCompatPackageKey = pk } -> pk- _ -> old_pk---- | External package dependencies for the package as a whole. This is the--- union of the individual 'componentPackageDeps', less any internal deps.-externalPackageDeps :: LocalBuildInfo -> [(UnitId, PackageId)]-externalPackageDeps lbi =- -- TODO: what about non-buildable components?- nub [ (ipkgid, pkgid)- | (_,clbi,_) <- componentsConfigs lbi- , (ipkgid, pkgid) <- componentPackageDeps clbi- , not (internal pkgid) ]- where- -- True if this dependency is an internal one (depends on the library- -- defined in the same package).- internal pkgid = pkgid == packageId (localPkgDescr lbi)- -- -------------------------------------------------------------------------------- Buildable components--data Component = CLib Library- | CExe Executable- | CTest TestSuite- | CBench Benchmark- deriving (Show, Eq, Read)--data ComponentName = CLibName -- currently only a single lib- | CExeName String- | CTestName String- | CBenchName String- deriving (Eq, Generic, Ord, Read, Show)--instance Binary ComponentName--showComponentName :: ComponentName -> String-showComponentName CLibName = "library"-showComponentName (CExeName name) = "executable '" ++ name ++ "'"-showComponentName (CTestName name) = "test suite '" ++ name ++ "'"-showComponentName (CBenchName name) = "benchmark '" ++ name ++ "'"--data ComponentLocalBuildInfo- = LibComponentLocalBuildInfo {- -- | Resolved internal and external package dependencies for this component.- -- The 'BuildInfo' specifies a set of build dependencies that must be- -- satisfied in terms of version ranges. This field fixes those dependencies- -- to the specific versions available on this machine for this compiler.- componentPackageDeps :: [(UnitId, PackageId)],- componentUnitId :: UnitId,- componentCompatPackageKey :: String,- componentExposedModules :: [Installed.ExposedModule],- componentPackageRenaming :: Map PackageName ModuleRenaming- }- | ExeComponentLocalBuildInfo {- componentPackageDeps :: [(UnitId, PackageId)],- componentPackageRenaming :: Map PackageName ModuleRenaming- }- | TestComponentLocalBuildInfo {- componentPackageDeps :: [(UnitId, PackageId)],- componentPackageRenaming :: Map PackageName ModuleRenaming- }- | BenchComponentLocalBuildInfo {- componentPackageDeps :: [(UnitId, PackageId)],- componentPackageRenaming :: Map PackageName ModuleRenaming- }- deriving (Generic, Read, Show)--instance Binary ComponentLocalBuildInfo--foldComponent :: (Library -> a)- -> (Executable -> a)- -> (TestSuite -> a)- -> (Benchmark -> a)- -> Component- -> a-foldComponent f _ _ _ (CLib lib) = f lib-foldComponent _ f _ _ (CExe exe) = f exe-foldComponent _ _ f _ (CTest tst) = f tst-foldComponent _ _ _ f (CBench bch) = f bch--componentBuildInfo :: Component -> BuildInfo-componentBuildInfo =- foldComponent libBuildInfo buildInfo testBuildInfo benchmarkBuildInfo--componentName :: Component -> ComponentName-componentName =- foldComponent (const CLibName)- (CExeName . exeName)- (CTestName . testName)- (CBenchName . benchmarkName)---- | All the components in the package (libs, exes, or test suites).----pkgComponents :: PackageDescription -> [Component]-pkgComponents pkg =- [ CLib lib | Just lib <- [library pkg] ]- ++ [ CExe exe | exe <- executables pkg ]- ++ [ CTest tst | tst <- testSuites pkg ]- ++ [ CBench bm | bm <- benchmarks pkg ]---- | All the components in the package that are buildable and enabled.--- Thus this excludes non-buildable components and test suites or benchmarks--- that have been disabled.----pkgEnabledComponents :: PackageDescription -> [Component]-pkgEnabledComponents = filter componentEnabled . pkgComponents--componentEnabled :: Component -> Bool-componentEnabled = isNothing . componentDisabledReason--data ComponentDisabledReason = DisabledComponent- | DisabledAllTests- | DisabledAllBenchmarks--componentDisabledReason :: Component -> Maybe ComponentDisabledReason-componentDisabledReason (CLib lib)- | not (buildable (libBuildInfo lib)) = Just DisabledComponent-componentDisabledReason (CExe exe)- | not (buildable (buildInfo exe)) = Just DisabledComponent-componentDisabledReason (CTest tst)- | not (buildable (testBuildInfo tst)) = Just DisabledComponent- | not (testEnabled tst) = Just DisabledAllTests-componentDisabledReason (CBench bm)- | not (buildable (benchmarkBuildInfo bm)) = Just DisabledComponent- | not (benchmarkEnabled bm) = Just DisabledAllBenchmarks-componentDisabledReason _ = Nothing--lookupComponent :: PackageDescription -> ComponentName -> Maybe Component-lookupComponent pkg CLibName =- fmap CLib $ library pkg-lookupComponent pkg (CExeName name) =- fmap CExe $ find ((name ==) . exeName) (executables pkg)-lookupComponent pkg (CTestName name) =- fmap CTest $ find ((name ==) . testName) (testSuites pkg)-lookupComponent pkg (CBenchName name) =- fmap CBench $ find ((name ==) . benchmarkName) (benchmarks pkg)--getComponent :: PackageDescription -> ComponentName -> Component-getComponent pkg cname =- case lookupComponent pkg cname of- Just cpnt -> cpnt- Nothing -> missingComponent- where- missingComponent =- error $ "internal error: the package description contains no "- ++ "component corresponding to " ++ show cname+-- Configuration information of buildable components +componentBuildDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> FilePath+-- For now, we assume that libraries/executables/test-suites/benchmarks+-- are only ever built once. With Backpack, we need a special case for+-- libraries so that we can handle building them multiple times.+componentBuildDir lbi clbi+ = buildDir lbi </>+ case componentLocalName clbi of+ CLibName ->+ if display (componentUnitId clbi) == display (componentComponentId clbi)+ then ""+ else display (componentUnitId clbi)+ CSubLibName s ->+ if display (componentUnitId clbi) == display (componentComponentId clbi)+ then unUnqualComponentName s+ else display (componentUnitId clbi)+ CFLibName s -> unUnqualComponentName s+ CExeName s -> unUnqualComponentName s+ CTestName s -> unUnqualComponentName s+ CBenchName s -> unUnqualComponentName s -getComponentLocalBuildInfo :: LocalBuildInfo -> ComponentName- -> ComponentLocalBuildInfo+{-# DEPRECATED getComponentLocalBuildInfo "This function is not well-defined, because a 'ComponentName' does not uniquely identify a 'ComponentLocalBuildInfo'. If you have a 'TargetInfo', you should use 'targetCLBI' to get the 'ComponentLocalBuildInfo'. Otherwise, use 'componentNameTargets' to get all possible 'ComponentLocalBuildInfo's. This will be removed in Cabal 2.2." #-}+getComponentLocalBuildInfo :: LocalBuildInfo -> ComponentName -> ComponentLocalBuildInfo getComponentLocalBuildInfo lbi cname =- case [ clbi- | (cname', clbi, _) <- componentsConfigs lbi- , cname == cname' ] of+ case componentNameCLBIs lbi cname of [clbi] -> clbi- _ -> missingComponent- where- missingComponent =- error $ "internal error: there is no configuration data "- ++ "for component " ++ show cname-+ [] ->+ error $ "internal error: there is no configuration data "+ ++ "for component " ++ show cname+ clbis ->+ error $ "internal error: the component name " ++ show cname+ ++ "is ambiguous. Refers to: "+ ++ intercalate ", " (map (display . componentUnitId) clbis) --- |If the package description has a library section, call the given--- function with the library build info as argument. Extended version of--- 'withLib' that also gives corresponding build info.+-- | Perform the action on each enabled 'library' in the package+-- description with the 'ComponentLocalBuildInfo'. withLibLBI :: PackageDescription -> LocalBuildInfo -> (Library -> ComponentLocalBuildInfo -> IO ()) -> IO ()-withLibLBI pkg_descr lbi f =- withLib pkg_descr $ \lib ->- f lib (getComponentLocalBuildInfo lbi CLibName)+withLibLBI pkg lbi f =+ withAllTargetsInBuildOrder' pkg lbi $ \target ->+ case targetComponent target of+ CLib lib -> f lib (targetCLBI target)+ _ -> return () --- | Perform the action on each buildable 'Executable' in the package+-- | Perform the action on each enabled 'Executable' in the package -- description. Extended version of 'withExe' that also gives corresponding -- build info. withExeLBI :: PackageDescription -> LocalBuildInfo -> (Executable -> ComponentLocalBuildInfo -> IO ()) -> IO ()-withExeLBI pkg_descr lbi f =- withExe pkg_descr $ \exe ->- f exe (getComponentLocalBuildInfo lbi (CExeName (exeName exe)))+withExeLBI pkg lbi f =+ withAllTargetsInBuildOrder' pkg lbi $ \target ->+ case targetComponent target of+ CExe exe -> f exe (targetCLBI target)+ _ -> return () +-- | Perform the action on each enabled 'Benchmark' in the package+-- description.+withBenchLBI :: PackageDescription -> LocalBuildInfo+ -> (Benchmark -> ComponentLocalBuildInfo -> IO ()) -> IO ()+withBenchLBI pkg lbi f =+ sequence_ [ f test clbi | (test, clbi) <- enabledBenchLBIs pkg lbi ]+ withTestLBI :: PackageDescription -> LocalBuildInfo -> (TestSuite -> ComponentLocalBuildInfo -> IO ()) -> IO ()-withTestLBI pkg_descr lbi f =- withTest pkg_descr $ \test ->- f test (getComponentLocalBuildInfo lbi (CTestName (testName test)))+withTestLBI pkg lbi f =+ sequence_ [ f test clbi | (test, clbi) <- enabledTestLBIs pkg lbi ] +enabledTestLBIs :: PackageDescription -> LocalBuildInfo+ -> [(TestSuite, ComponentLocalBuildInfo)]+enabledTestLBIs pkg lbi =+ [ (test, targetCLBI target)+ | target <- allTargetsInBuildOrder' pkg lbi+ , CTest test <- [targetComponent target] ]++enabledBenchLBIs :: PackageDescription -> LocalBuildInfo+ -> [(Benchmark, ComponentLocalBuildInfo)]+enabledBenchLBIs pkg lbi =+ [ (bench, targetCLBI target)+ | target <- allTargetsInBuildOrder' pkg lbi+ , CBench bench <- [targetComponent target] ]+ {-# DEPRECATED withComponentsLBI "Use withAllComponentsInBuildOrder" #-} withComponentsLBI :: PackageDescription -> LocalBuildInfo -> (Component -> ComponentLocalBuildInfo -> IO ())@@ -362,59 +194,42 @@ -> (Component -> ComponentLocalBuildInfo -> IO ()) -> IO () withAllComponentsInBuildOrder pkg lbi f =- sequence_- [ f (getComponent pkg cname) clbi- | (cname, clbi) <- allComponentsInBuildOrder lbi ]+ withAllTargetsInBuildOrder' pkg lbi $ \target ->+ f (targetComponent target) (targetCLBI target) +{-# DEPRECATED withComponentsInBuildOrder "You have got a 'TargetInfo' right? Use 'withNeededTargetsInBuildOrder' on the 'UnitId's you can 'nodeKey' out." #-} withComponentsInBuildOrder :: PackageDescription -> LocalBuildInfo -> [ComponentName] -> (Component -> ComponentLocalBuildInfo -> IO ()) -> IO () withComponentsInBuildOrder pkg lbi cnames f =- sequence_- [ f (getComponent pkg cname') clbi- | (cname', clbi) <- componentsInBuildOrder lbi cnames ]+ withNeededTargetsInBuildOrder' pkg lbi uids $ \target ->+ f (targetComponent target) (targetCLBI target)+ where uids = concatMap (componentNameToUnitIds lbi) cnames allComponentsInBuildOrder :: LocalBuildInfo- -> [(ComponentName, ComponentLocalBuildInfo)]+ -> [ComponentLocalBuildInfo] allComponentsInBuildOrder lbi =- componentsInBuildOrder lbi- [ cname | (cname, _, _) <- componentsConfigs lbi ]--componentsInBuildOrder :: LocalBuildInfo -> [ComponentName]- -> [(ComponentName, ComponentLocalBuildInfo)]-componentsInBuildOrder lbi cnames =- map ((\(clbi,cname,_) -> (cname,clbi)) . vertexToNode)- . postOrder graph- . map (\cname -> fromMaybe (noSuchComp cname) (keyToVertex cname))- $ cnames- where- (graph, vertexToNode, keyToVertex) =- graphFromEdges (map (\(a,b,c) -> (b,a,c)) (componentsConfigs lbi))-- noSuchComp cname = error $ "internal error: componentsInBuildOrder: "- ++ "no such component: " ++ show cname-- postOrder :: Graph -> [Vertex] -> [Vertex]- postOrder g vs = postorderF (dfs g vs) []+ Graph.topSort (componentGraph lbi) - postorderF :: Forest a -> [a] -> [a]- postorderF ts = foldr (.) id $ map postorderT ts+-- | Private helper function for some of the deprecated implementations.+componentNameToUnitIds :: LocalBuildInfo -> ComponentName -> [UnitId]+componentNameToUnitIds lbi cname =+ case Map.lookup cname (componentNameMap lbi) of+ Just clbis -> map componentUnitId clbis+ Nothing -> error $ "componentNameToUnitIds " ++ display cname - postorderT :: Tree a -> [a] -> [a]- postorderT (Node a ts) = postorderF ts . (a :)+{-# DEPRECATED componentsInBuildOrder "You've got 'TargetInfo' right? Use 'neededTargetsInBuildOrder' on the 'UnitId's you can 'nodeKey' out." #-}+componentsInBuildOrder :: LocalBuildInfo -> [ComponentName]+ -> [ComponentLocalBuildInfo]+componentsInBuildOrder lbi cnames+ -- NB: use of localPkgDescr here is safe because we throw out the+ -- result immediately afterwards+ = map targetCLBI (neededTargetsInBuildOrder' (localPkgDescr lbi) lbi uids)+ where uids = concatMap (componentNameToUnitIds lbi) cnames -checkComponentsCyclic :: Ord key => [(node, key, [key])]- -> Maybe [(node, key, [key])]-checkComponentsCyclic es =- let (graph, vertexToNode, _) = graphFromEdges es- cycles = [ flatten c | c <- scc graph, isCycle c ]- isCycle (Node v []) = selfCyclic v- isCycle _ = True- selfCyclic v = v `elem` graph ! v- in case cycles of- [] -> Nothing- (c:_) -> Just (map vertexToNode c)+-- -----------------------------------------------------------------------------+-- A random function that has no business in this module -- | Determine the directories containing the dynamic libraries of the -- transitive dependencies of the component we are building.@@ -424,37 +239,60 @@ -> Bool -- ^ Generate prefix-relative library paths -> LocalBuildInfo -> ComponentLocalBuildInfo -- ^ Component that is being built- -> IO [FilePath]+ -> NoCallStackIO [FilePath] depLibraryPaths inplace relative lbi clbi = do let pkgDescr = localPkgDescr lbi- installDirs = absoluteInstallDirs pkgDescr lbi NoCopyDest+ installDirs = absoluteComponentInstallDirs pkgDescr lbi (componentUnitId clbi) NoCopyDest executable = case clbi of ExeComponentLocalBuildInfo {} -> True _ -> False relDir | executable = bindir installDirs | otherwise = libdir installDirs - let hasInternalDeps = not $ null- $ [ pkgid- | (_,pkgid) <- componentPackageDeps clbi- , internal pkgid- ]+ let -- TODO: this is kind of inefficient+ internalDeps = [ uid+ | (uid, _) <- componentPackageDeps clbi+ -- Test that it's internal+ , sub_target <- allTargetsInBuildOrder' pkgDescr lbi+ , componentUnitId (targetCLBI (sub_target)) == uid ]+ internalLibs = [ getLibDir (targetCLBI sub_target)+ | sub_target <- neededTargetsInBuildOrder'+ pkgDescr lbi internalDeps ]+ {-+ -- This is better, but it doesn't work, because we may be passed a+ -- CLBI which doesn't actually exist, and was faked up when we+ -- were building a test suite/benchmark. See #3599 for proposal+ -- to fix this.+ let internalCLBIs = filter ((/= componentUnitId clbi) . componentUnitId)+ . map targetCLBI+ $ neededTargetsInBuildOrder lbi [componentUnitId clbi]+ internalLibs = map getLibDir internalCLBIs+ -}+ getLibDir sub_clbi+ | inplace = componentBuildDir lbi sub_clbi+ | otherwise = dynlibdir (absoluteComponentInstallDirs pkgDescr lbi (componentUnitId sub_clbi) NoCopyDest) - let ipkgs = allPackages (installedPkgs lbi)+ -- Why do we go through all the trouble of a hand-crafting+ -- internalLibs, when 'installedPkgs' actually contains the+ -- internal libraries? The trouble is that 'installedPkgs'+ -- may contain *inplace* entries, which we must NOT use for+ -- not inplace 'depLibraryPaths' (e.g., for RPATH calculation).+ -- See #4025 for more details. This is all horrible but it+ -- is a moot point if you are using a per-component build,+ -- because you never have any internal libraries in this case;+ -- they're all external.+ let external_ipkgs = filter is_external (allPackages (installedPkgs lbi))+ is_external ipkg = not (installedUnitId ipkg `elem` internalDeps) -- First look for dynamic libraries in `dynamic-library-dirs`, and use -- `library-dirs` as a fall back. getDynDir pkg = case Installed.libraryDynDirs pkg of [] -> Installed.libraryDirs pkg d -> d- allDepLibDirs = concatMap getDynDir ipkgs- internalLib- | inplace = buildDir lbi- | otherwise = dynlibdir installDirs- allDepLibDirs' = if hasInternalDeps- then internalLib : allDepLibDirs- else allDepLibDirs- allDepLibDirsC <- mapM canonicalizePathNoFail allDepLibDirs'+ allDepLibDirs = concatMap getDynDir external_ipkgs + allDepLibDirs' = internalLibs ++ allDepLibDirs+ allDepLibDirsC <- traverse canonicalizePathNoFail allDepLibDirs'+ let p = prefix installDirs prefixRelative l = isJust (stripPrefix p l) libPaths@@ -468,7 +306,6 @@ return libPaths where- internal pkgid = pkgid == packageId (localPkgDescr lbi) -- 'canonicalizePath' fails on UNIX when the directory does not exists. -- So just don't canonicalize when it doesn't exist. canonicalizePathNoFail p = do@@ -477,39 +314,73 @@ then canonicalizePath p else return p +-- | Get all module names that needed to be built by GHC; i.e., all+-- of these 'ModuleName's have interface files associated with them+-- that need to be installed.+allLibModules :: Library -> ComponentLocalBuildInfo -> [ModuleName]+allLibModules lib clbi =+ ordNub $+ explicitLibModules lib +++ case clbi of+ LibComponentLocalBuildInfo { componentInstantiatedWith = insts } -> map fst insts+ _ -> [] -- ----------------------------------------------------------------------------- -- Wrappers for a couple functions from InstallDirs --- |See 'InstallDirs.absoluteInstallDirs'-absoluteInstallDirs :: PackageDescription -> LocalBuildInfo -> CopyDest+-- | Backwards compatibility function which computes the InstallDirs+-- assuming that @$libname@ points to the public library (or some fake+-- package identifier if there is no public library.) IF AT ALL+-- POSSIBLE, please use 'absoluteComponentInstallDirs' instead.+absoluteInstallDirs :: PackageDescription -> LocalBuildInfo+ -> CopyDest -> InstallDirs FilePath absoluteInstallDirs pkg lbi copydest =+ absoluteComponentInstallDirs pkg lbi (localUnitId lbi) copydest++-- | See 'InstallDirs.absoluteInstallDirs'.+absoluteComponentInstallDirs :: PackageDescription -> LocalBuildInfo+ -> UnitId+ -> CopyDest+ -> InstallDirs FilePath+absoluteComponentInstallDirs pkg lbi uid copydest = InstallDirs.absoluteInstallDirs (packageId pkg)- (localUnitId lbi)+ uid (compilerInfo (compiler lbi)) copydest (hostPlatform lbi) (installDirTemplates lbi) --- |See 'InstallDirs.prefixRelativeInstallDirs'+-- | Backwards compatibility function which computes the InstallDirs+-- assuming that @$libname@ points to the public library (or some fake+-- package identifier if there is no public library.) IF AT ALL+-- POSSIBLE, please use 'prefixRelativeComponentInstallDirs' instead. prefixRelativeInstallDirs :: PackageId -> LocalBuildInfo -> InstallDirs (Maybe FilePath) prefixRelativeInstallDirs pkg_descr lbi =+ prefixRelativeComponentInstallDirs pkg_descr lbi (localUnitId lbi)++-- |See 'InstallDirs.prefixRelativeInstallDirs'+prefixRelativeComponentInstallDirs :: PackageId -> LocalBuildInfo+ -> UnitId+ -> InstallDirs (Maybe FilePath)+prefixRelativeComponentInstallDirs pkg_descr lbi uid = InstallDirs.prefixRelativeInstallDirs (packageId pkg_descr)- (localUnitId lbi)+ uid (compilerInfo (compiler lbi)) (hostPlatform lbi) (installDirTemplates lbi) substPathTemplate :: PackageId -> LocalBuildInfo+ -> UnitId -> PathTemplate -> FilePath-substPathTemplate pkgid lbi = fromPathTemplate- . ( InstallDirs.substPathTemplate env )+substPathTemplate pkgid lbi uid = fromPathTemplate+ . ( InstallDirs.substPathTemplate env ) where env = initialPathTemplateEnv pkgid- (localUnitId lbi)+ uid (compilerInfo (compiler lbi)) (hostPlatform lbi)+
Distribution/Simple/PackageIndex.hs view
@@ -1,4 +1,6 @@ {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-} ----------------------------------------------------------------------------- -- |@@ -10,8 +12,37 @@ -- Maintainer : cabal-devel@haskell.org -- Portability : portable ----- An index of packages.+-- An index of packages whose primary key is 'UnitId'. Public libraries+-- are additionally indexed by 'PackageName' and 'Version'.+-- Technically, these are an index of *units* (so we should eventually+-- rename it to 'UnitIndex'); but in the absence of internal libraries+-- or Backpack each unit is equivalent to a package. --+-- While 'PackageIndex' is parametric over what it actually records,+-- it is in fact only ever instantiated with a single element:+-- The 'InstalledPackageIndex' (defined here) contains a graph of+-- 'InstalledPackageInfo's representing the packages in a+-- package database stack. It is used in a variety of ways:+--+-- * The primary use to let Cabal access the same installed+-- package database which is used by GHC during compilation.+-- For example, this data structure is used by 'ghc-pkg'+-- and 'Cabal' to do consistency checks on the database+-- (are the references closed).+--+-- * Given a set of dependencies, we can compute the transitive+-- closure of dependencies. This is to check if the versions+-- of packages are consistent, and also needed by multiple+-- tools (Haddock must be explicitly told about the every+-- transitive package to do cross-package linking;+-- preprocessors must know about the include paths of all+-- transitive dependencies.)+--+-- This 'PackageIndex' is NOT to be confused with+-- 'Distribution.Client.PackageIndex', which indexes packages only by+-- 'PackageName' (this makes it suitable for indexing source packages,+-- for which we don't know 'UnitId's.)+-- module Distribution.Simple.PackageIndex ( -- * Package index data type InstalledPackageIndex,@@ -34,10 +65,12 @@ -- ** Precise lookups lookupUnitId,+ lookupComponentId, lookupSourcePackageId, lookupPackageId, lookupPackageName, lookupDependency,+ lookupInternalDependency, -- ** Case-insensitive searches searchByName,@@ -48,6 +81,7 @@ allPackages, allPackagesByName, allPackagesBySourcePackageId,+ allPackagesBySourcePackageIdAndLibName, -- ** Special queries brokenPackages,@@ -65,27 +99,26 @@ lookupInstalledPackageId, ) where -import Distribution.Compat.Binary-import Distribution.Compat.Semigroup as Semi+import Prelude ()+import Distribution.Compat.Prelude hiding (lookup)+import qualified Distribution.Compat.Map.Strict as Map+ import Distribution.Package+import Distribution.Backpack import Distribution.ModuleName import qualified Distribution.InstalledPackageInfo as IPI import Distribution.Version import Distribution.Simple.Utils+import Distribution.Types.UnqualComponentName import Control.Exception (assert) import Data.Array ((!)) import qualified Data.Array as Array import qualified Data.Graph as Graph-import Data.List as List- ( null, foldl', sort- , groupBy, sortBy, find, nubBy, deleteBy, deleteFirstsBy )-import Data.Map (Map)-import qualified Data.Map as Map-import Data.Maybe (isNothing, fromMaybe)+import Data.List as List ( groupBy, deleteBy, deleteFirstsBy ) import qualified Data.Tree as Tree-import GHC.Generics (Generic)-import Prelude hiding (lookup)+import Control.Monad+import Distribution.Compat.Stack -- | The collection of information about packages from one or more 'PackageDB's. -- These packages generally should have an instance of 'PackageInstalled'@@ -93,11 +126,11 @@ -- Packages are uniquely identified in by their 'UnitId', they can -- also be efficiently looked up by package name or by name and version. ---data PackageIndex a = PackageIndex+data PackageIndex a = PackageIndex { -- The primary index. Each InstalledPackageInfo record is uniquely identified -- by its UnitId. --- !(Map UnitId a)+ unitIdIndex :: !(Map UnitId a), -- This auxiliary index maps package names (case-sensitively) to all the -- versions and instances of that package. This allows us to find all@@ -110,9 +143,9 @@ -- -- FIXME: Clarify what "preference order" means. Check that this invariant is -- preserved. See #1463 for discussion.- !(Map PackageName (Map Version [a]))+ packageIdIndex :: !(Map (PackageName, Maybe UnqualComponentName) (Map Version [a])) - deriving (Eq, Generic, Show, Read)+ } deriving (Eq, Generic, Show, Read) instance Binary a => Binary (PackageIndex a) @@ -120,22 +153,26 @@ -- use this. type InstalledPackageIndex = PackageIndex IPI.InstalledPackageInfo -instance HasUnitId a => Monoid (PackageIndex a) where+instance Monoid (PackageIndex IPI.InstalledPackageInfo) where mempty = PackageIndex Map.empty Map.empty- mappend = (Semi.<>)+ mappend = (<>) --save one mappend with empty in the common case: mconcat [] = mempty mconcat xs = foldr1 mappend xs -instance HasUnitId a => Semigroup (PackageIndex a) where+instance Semigroup (PackageIndex IPI.InstalledPackageInfo) where (<>) = merge -invariant :: HasUnitId a => PackageIndex a -> Bool+{-# NOINLINE invariant #-}+invariant :: WithCallStack (InstalledPackageIndex -> Bool) invariant (PackageIndex pids pnames) =- map installedUnitId (Map.elems pids)- == sort+ -- trace (show pids' ++ "\n" ++ show pnames') $+ pids' == pnames'+ where+ pids' = map installedUnitId (Map.elems pids)+ pnames' = sort [ assert pinstOk (installedUnitId pinst)- | (pname, pvers) <- Map.toList pnames+ | ((pname, plib), pvers) <- Map.toList pnames , let pversOk = not (Map.null pvers) , (pver, pinsts) <- assert pversOk $ Map.toList pvers , let pinsts' = sortBy (comparing installedUnitId) pinsts@@ -144,17 +181,23 @@ , pinst <- assert pinstsOk $ pinsts' , let pinstOk = packageName pinst == pname && packageVersion pinst == pver+ && IPI.sourceLibName pinst == plib ]+ -- If you see this invariant failing (ie the assert in mkPackageIndex below)+ -- then one thing to check is if it is happening in fromList. Check if the+ -- second list above (the sort [...] bit) is ending up with duplicates. This+ -- has been observed in practice once due to a messed up ghc-pkg db. How/why+ -- it became messed up was not discovered. -- -- * Internal helpers -- -mkPackageIndex :: HasUnitId a- => Map UnitId a- -> Map PackageName (Map Version [a])- -> PackageIndex a+mkPackageIndex :: WithCallStack (Map UnitId IPI.InstalledPackageInfo+ -> Map (PackageName, Maybe UnqualComponentName)+ (Map Version [IPI.InstalledPackageInfo])+ -> InstalledPackageIndex) mkPackageIndex pids pnames = assert (invariant index) index where index = PackageIndex pids pnames @@ -168,15 +211,15 @@ -- If there are duplicates by 'UnitId' then later ones mask earlier -- ones. ---fromList :: HasUnitId a => [a] -> PackageIndex a+fromList :: [IPI.InstalledPackageInfo] -> InstalledPackageIndex fromList pkgs = mkPackageIndex pids pnames where pids = Map.fromList [ (installedUnitId pkg, pkg) | pkg <- pkgs ] pnames = Map.fromList- [ (packageName (head pkgsN), pvers)- | pkgsN <- groupBy (equating packageName)- . sortBy (comparing packageId)+ [ (liftM2 (,) packageName IPI.sourceLibName (head pkgsN), pvers)+ | pkgsN <- groupBy (equating (liftM2 (,) packageName IPI.sourceLibName))+ . sortBy (comparing (liftM3 (,,) packageName IPI.sourceLibName packageVersion)) $ pkgs , let pvers = Map.fromList@@ -200,8 +243,8 @@ -- result when we do a lookup by source 'PackageId'. This is the mechanism we -- use to prefer user packages over global packages. ---merge :: HasUnitId a => PackageIndex a -> PackageIndex a- -> PackageIndex a+merge :: InstalledPackageIndex -> InstalledPackageIndex+ -> InstalledPackageIndex merge (PackageIndex pids1 pnames1) (PackageIndex pids2 pnames2) = mkPackageIndex (Map.unionWith (\_ y -> y) pids1 pids2) (Map.unionWith (Map.unionWith mergeBuckets) pnames1 pnames2)@@ -217,7 +260,7 @@ -- This is equivalent to (but slightly quicker than) using 'mappend' or -- 'merge' with a singleton index. ---insert :: HasUnitId a => a -> PackageIndex a -> PackageIndex a+insert :: IPI.InstalledPackageInfo -> InstalledPackageIndex -> InstalledPackageIndex insert pkg (PackageIndex pids pnames) = mkPackageIndex pids' pnames' @@ -225,12 +268,12 @@ pids' = Map.insert (installedUnitId pkg) pkg pids pnames' = insertPackageName pnames insertPackageName =- Map.insertWith' (\_ -> insertPackageVersion)- (packageName pkg)+ Map.insertWith (\_ -> insertPackageVersion)+ (packageName pkg, IPI.sourceLibName pkg) (Map.singleton (packageVersion pkg) [pkg]) insertPackageVersion =- Map.insertWith' (\_ -> insertPackageInstance)+ Map.insertWith (\_ -> insertPackageInstance) (packageVersion pkg) [pkg] insertPackageInstance pkgs =@@ -239,9 +282,8 @@ -- | Removes a single installed package from the index. ---deleteUnitId :: HasUnitId a- => UnitId -> PackageIndex a- -> PackageIndex a+deleteUnitId :: UnitId -> InstalledPackageIndex+ -> InstalledPackageIndex deleteUnitId ipkgid original@(PackageIndex pids pnames) = case Map.updateLookupWithKey (\_ _ -> Nothing) ipkgid pids of (Nothing, _) -> original@@ -250,29 +292,29 @@ where deletePkgName spkgid =- Map.update (deletePkgVersion spkgid) (packageName spkgid)+ Map.update (deletePkgVersion spkgid) (packageName spkgid, IPI.sourceLibName spkgid) deletePkgVersion spkgid = (\m -> if Map.null m then Nothing else Just m) . Map.update deletePkgInstance (packageVersion spkgid) deletePkgInstance =- (\xs -> if List.null xs then Nothing else Just xs)+ (\xs -> if null xs then Nothing else Just xs) . List.deleteBy (\_ pkg -> installedUnitId pkg == ipkgid) undefined -- | Backwards compatibility wrapper for Cabal pre-1.24. {-# DEPRECATED deleteInstalledPackageId "Use deleteUnitId instead" #-}-deleteInstalledPackageId :: HasUnitId a- => UnitId -> PackageIndex a- -> PackageIndex a+deleteInstalledPackageId :: UnitId -> InstalledPackageIndex+ -> InstalledPackageIndex deleteInstalledPackageId = deleteUnitId -- | Removes all packages with this source 'PackageId' from the index. ---deleteSourcePackageId :: HasUnitId a => PackageId -> PackageIndex a- -> PackageIndex a+deleteSourcePackageId :: PackageId -> InstalledPackageIndex+ -> InstalledPackageIndex deleteSourcePackageId pkgid original@(PackageIndex pids pnames) =- case Map.lookup (packageName pkgid) pnames of+ -- NB: Doesn't delete internal packages+ case Map.lookup (packageName pkgid, Nothing) pnames of Nothing -> original Just pvers -> case Map.lookup (packageVersion pkgid) pvers of Nothing -> original@@ -281,7 +323,7 @@ (deletePkgName pnames) where deletePkgName =- Map.update deletePkgVersion (packageName pkgid)+ Map.update deletePkgVersion (packageName pkgid, Nothing) deletePkgVersion = (\m -> if Map.null m then Nothing else Just m)@@ -290,15 +332,17 @@ -- | Removes all packages with this (case-sensitive) name from the index. ---deletePackageName :: HasUnitId a => PackageName -> PackageIndex a- -> PackageIndex a+-- NB: Does NOT delete internal libraries from this package.+--+deletePackageName :: PackageName -> InstalledPackageIndex+ -> InstalledPackageIndex deletePackageName name original@(PackageIndex pids pnames) =- case Map.lookup name pnames of+ case Map.lookup (name, Nothing) pnames of Nothing -> original Just pvers -> mkPackageIndex (foldl' (flip (Map.delete . installedUnitId)) pids (concat (Map.elems pvers)))- (Map.delete name pnames)+ (Map.delete (name, Nothing) pnames) {- -- | Removes all packages satisfying this dependency from the index.@@ -315,41 +359,65 @@ -- | Get all the packages from the index. -- allPackages :: PackageIndex a -> [a]-allPackages (PackageIndex pids _) = Map.elems pids+allPackages = Map.elems . unitIdIndex -- | Get all the packages from the index. -- -- They are grouped by package name (case-sensitively). --+-- (Doesn't include private libraries.)+-- allPackagesByName :: PackageIndex a -> [(PackageName, [a])]-allPackagesByName (PackageIndex _ pnames) =+allPackagesByName index = [ (pkgname, concat (Map.elems pvers))- | (pkgname, pvers) <- Map.toList pnames ]+ | ((pkgname, Nothing), pvers) <- Map.toList (packageIdIndex index) ] -- | Get all the packages from the index. -- -- They are grouped by source package id (package name and version). --+-- (Doesn't include private libraries)+-- allPackagesBySourcePackageId :: HasUnitId a => PackageIndex a -> [(PackageId, [a])]-allPackagesBySourcePackageId (PackageIndex _ pnames) =+allPackagesBySourcePackageId index = [ (packageId ipkg, ipkgs)- | pvers <- Map.elems pnames+ | ((_, Nothing), pvers) <- Map.toList (packageIdIndex index) , ipkgs@(ipkg:_) <- Map.elems pvers ] +-- | Get all the packages from the index. --+-- They are grouped by source package id and library name.+--+-- This DOES include internal libraries.+allPackagesBySourcePackageIdAndLibName :: HasUnitId a => PackageIndex a+ -> [((PackageId, Maybe UnqualComponentName), [a])]+allPackagesBySourcePackageIdAndLibName index =+ [ ((packageId ipkg, ln), ipkgs)+ | ((_, ln), pvers) <- Map.toList (packageIdIndex index)+ , ipkgs@(ipkg:_) <- Map.elems pvers ]++-- -- * Lookups -- --- | Does a lookup by source package id (name & version).+-- | Does a lookup by unit identifier. -- -- Since multiple package DBs mask each other by 'UnitId', -- then we get back at most one package. -- lookupUnitId :: PackageIndex a -> UnitId -> Maybe a-lookupUnitId (PackageIndex pids _) pid = Map.lookup pid pids+lookupUnitId index uid = Map.lookup uid (unitIdIndex index) +-- | Does a lookup by component identifier. In the absence+-- of Backpack, this is just a 'lookupUnitId'.+--+lookupComponentId :: PackageIndex a -> ComponentId+ -> Maybe a+lookupComponentId index cid =+ Map.lookup (newSimpleUnitId cid) (unitIdIndex index)+ -- | Backwards compatibility for Cabal pre-1.24. {-# DEPRECATED lookupInstalledPackageId "Use lookupUnitId instead" #-} lookupInstalledPackageId :: PackageIndex a -> UnitId@@ -364,8 +432,9 @@ -- preference, with the most preferred first. -- lookupSourcePackageId :: PackageIndex a -> PackageId -> [a]-lookupSourcePackageId (PackageIndex _ pnames) pkgid =- case Map.lookup (packageName pkgid) pnames of+lookupSourcePackageId index pkgid =+ -- Do not lookup internal libraries+ case Map.lookup (packageName pkgid, Nothing) (packageIdIndex index) of Nothing -> [] Just pvers -> case Map.lookup (packageVersion pkgid) pvers of Nothing -> []@@ -383,8 +452,9 @@ -- lookupPackageName :: PackageIndex a -> PackageName -> [(Version, [a])]-lookupPackageName (PackageIndex _ pnames) name =- case Map.lookup name pnames of+lookupPackageName index name =+ -- Do not match internal libraries+ case Map.lookup (name, Nothing) (packageIdIndex index) of Nothing -> [] Just pvers -> Map.toList pvers @@ -394,15 +464,45 @@ -- We get back any number of versions of the specified package name, all -- satisfying the version range constraint. ---lookupDependency :: PackageIndex a -> Dependency- -> [(Version, [a])]-lookupDependency (PackageIndex _ pnames) (Dependency name versionRange) =- case Map.lookup name pnames of+-- This does NOT work for internal dependencies, DO NOT use this+-- function on those; use 'lookupInternalDependency' instead.+--+-- INVARIANT: List of eligible 'IPI.InstalledPackageInfo' is non-empty.+--+lookupDependency :: InstalledPackageIndex -> Dependency+ -> [(Version, [IPI.InstalledPackageInfo])]+lookupDependency index dep =+ -- Yes, a little bit of a misnomer here!+ lookupInternalDependency index dep Nothing++-- | Does a lookup by source package name and a range of versions.+--+-- We get back any number of versions of the specified package name, all+-- satisfying the version range constraint.+--+-- INVARIANT: List of eligible 'IPI.InstalledPackageInfo' is non-empty.+--+lookupInternalDependency :: InstalledPackageIndex -> Dependency+ -> Maybe UnqualComponentName+ -> [(Version, [IPI.InstalledPackageInfo])]+lookupInternalDependency index (Dependency name versionRange) libn =+ case Map.lookup (name, libn) (packageIdIndex index) of Nothing -> []- Just pvers -> [ entry- | entry@(ver, _) <- Map.toList pvers- , ver `withinRange` versionRange ]+ Just pvers -> [ (ver, pkgs')+ | (ver, pkgs) <- Map.toList pvers+ , ver `withinRange` versionRange+ , let pkgs' = filter eligible pkgs+ -- Enforce the invariant+ , not (null pkgs')+ ]+ where+ -- When we select for dependencies, we ONLY want to pick up indefinite+ -- packages, or packages with no instantiations. We'll do mix-in+ -- linking to improve any such package into an instantiated one+ -- later.+ eligible pkg = IPI.indefinite pkg || null (IPI.instantiatedWith pkg) + -- -- * Case insensitive name lookups --@@ -420,12 +520,13 @@ -- it is a non-empty list of non-empty lists. -- searchByName :: PackageIndex a -> String -> SearchResult [a]-searchByName (PackageIndex _ pnames) name =- case [ pkgs | pkgs@(PackageName name',_) <- Map.toList pnames- , lowercase name' == lname ] of+searchByName index name =+ -- Don't match internal packages+ case [ pkgs | pkgs@((pname, Nothing),_) <- Map.toList (packageIdIndex index)+ , lowercase (unPackageName pname) == lname ] of [] -> None [(_,pvers)] -> Unambiguous (concat (Map.elems pvers))- pkgss -> case find ((PackageName name==) . fst) pkgss of+ pkgss -> case find ((mkPackageName name ==) . fst . fst) pkgss of Just (_,pvers) -> Unambiguous (concat (Map.elems pvers)) Nothing -> Ambiguous (map (concat . Map.elems . snd) pkgss) where lname = lowercase name@@ -437,10 +538,11 @@ -- That is, all packages that contain the given string in their name. -- searchByNameSubstring :: PackageIndex a -> String -> [a]-searchByNameSubstring (PackageIndex _ pnames) searchterm =+searchByNameSubstring index searchterm = [ pkg- | (PackageName name, pvers) <- Map.toList pnames- , lsearchterm `isInfixOf` lowercase name+ -- Don't match internal packages+ | ((pname, Nothing), pvers) <- Map.toList (packageIdIndex index)+ , lsearchterm `isInfixOf` lowercase (unPackageName pname) , pkgs <- Map.elems pvers , pkg <- pkgs ] where lsearchterm = lowercase searchterm@@ -489,10 +591,10 @@ -- * Note that if the result is @Right []@ it is because at least one of -- the original given 'PackageId's do not occur in the index. ---dependencyClosure :: PackageInstalled a => PackageIndex a+dependencyClosure :: InstalledPackageIndex -> [UnitId]- -> Either (PackageIndex a)- [(a, [UnitId])]+ -> Either (InstalledPackageIndex)+ [(IPI.InstalledPackageInfo, [UnitId])] dependencyClosure index pkgids0 = case closure mempty [] pkgids0 of (completed, []) -> Left completed (completed, _) -> Right (brokenPackages completed)@@ -563,6 +665,10 @@ topBound = length pkgs - 1 bounds = (0, topBound) +-- | We maintain the invariant that, for any 'DepUniqueKey', there+-- is only one instance of the package in our database.+type DepUniqueKey = (PackageName, Maybe UnqualComponentName, Map ModuleName OpenModule)+ -- | Given a package index where we assume we want to use all the packages -- (use 'dependencyClosure' if you need to get such a index subset) find out -- if the dependencies within it use consistent versions of each package.@@ -573,35 +679,28 @@ -- depend on it and the versions they require. These are guaranteed to be -- distinct. ---dependencyInconsistencies :: PackageInstalled a => PackageIndex a- -> [(PackageName, [(PackageId, Version)])]-dependencyInconsistencies index =- [ (name, [ (pid,packageVersion dep) | (dep,pids) <- uses, pid <- pids])- | (name, ipid_map) <- Map.toList inverseIndex- , let uses = Map.elems ipid_map- , reallyIsInconsistent (map fst uses) ]-- where -- for each PackageName,- -- for each package with that name,- -- the InstalledPackageInfo and the package Ids of packages- -- that depend on it.- inverseIndex = Map.fromListWith (Map.unionWith (\(a,b) (_,b') -> (a,b++b')))- [ (packageName dep,- Map.fromList [(ipid,(dep,[packageId pkg]))])- | pkg <- allPackages index- , ipid <- installedDepends pkg- , Just dep <- [lookupUnitId index ipid]- ]-- reallyIsInconsistent :: PackageInstalled a => [a] -> Bool- reallyIsInconsistent [] = False- reallyIsInconsistent [_p] = False- reallyIsInconsistent [p1, p2] =- let pid1 = installedUnitId p1- pid2 = installedUnitId p2- in pid1 `notElem` installedDepends p2- && pid2 `notElem` installedDepends p1- reallyIsInconsistent _ = True+dependencyInconsistencies :: InstalledPackageIndex+ -- At DepUniqueKey...+ -> [(DepUniqueKey,+ -- There were multiple packages (BAD!)+ [(UnitId,+ -- And here are the packages which+ -- immediately depended on it+ [IPI.InstalledPackageInfo])])]+dependencyInconsistencies index = do+ (dep_key, insts_map) <- Map.toList inverseIndex+ let insts = Map.toList insts_map+ guard (length insts >= 2)+ return (dep_key, insts)+ where+ inverseIndex :: Map DepUniqueKey (Map UnitId [IPI.InstalledPackageInfo])+ inverseIndex = Map.fromListWith (Map.unionWith (++)) $ do+ pkg <- allPackages index+ dep_ipid <- installedDepends pkg+ Just dep <- [lookupUnitId index dep_ipid]+ let dep_key = (packageName dep, IPI.sourceLibName dep,+ Map.fromList (IPI.instantiatedWith dep))+ return (dep_key, Map.singleton dep_ipid [pkg]) -- | A rough approximation of GHC's module finder, takes a -- 'InstalledPackageIndex' and turns it into a map from module names to their@@ -614,8 +713,9 @@ IPI.ExposedModule m reexport <- IPI.exposedModules pkg case reexport of Nothing -> return (m, [pkg])- Just (IPI.OriginalModule _ m') | m == m' -> []- | otherwise -> return (m', [pkg])+ Just (OpenModuleVar _) -> []+ Just (OpenModule _ m') | m == m' -> []+ | otherwise -> return (m', [pkg]) -- The heuristic is this: we want to prefer the original package -- which originally exported a module. However, if a reexport -- also *renamed* the module (m /= m'), then we have to use the
Distribution/Simple/PreProcess.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.PreProcess@@ -26,10 +29,15 @@ ) where +import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Compat.Stack import Distribution.Simple.PreProcess.Unlit+import Distribution.Backpack.DescribeUnitId import Distribution.Package import qualified Distribution.ModuleName as ModuleName+import Distribution.ModuleName (ModuleName) import Distribution.PackageDescription as PD import qualified Distribution.InstalledPackageInfo as Installed import qualified Distribution.Simple.PackageIndex as PackageIndex@@ -44,10 +52,9 @@ import Distribution.Text import Distribution.Version import Distribution.Verbosity+import Distribution.Types.ForeignLib+import Distribution.Types.UnqualComponentName -import Control.Monad-import Data.Maybe (fromMaybe)-import Data.List (nub, isSuffixOf) import System.Directory (doesFileExist) import System.Info (os, arch) import System.FilePath (splitExtension, dropExtensions, (</>), (<.>),@@ -132,57 +139,71 @@ -- |A preprocessor for turning non-Haskell files with the given extension -- into plain Haskell source files. type PPSuffixHandler- = (String, BuildInfo -> LocalBuildInfo -> PreProcessor)+ = (String, BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor) -- | Apply preprocessors to the sources from 'hsSourceDirs' for a given -- component (lib, exe, or test suite). preprocessComponent :: PackageDescription -> Component -> LocalBuildInfo+ -> ComponentLocalBuildInfo -> Bool -> Verbosity -> [PPSuffixHandler] -> IO ()-preprocessComponent pd comp lbi isSrcDist verbosity handlers = case comp of+preprocessComponent pd comp lbi clbi isSrcDist verbosity handlers = do+ -- NB: never report instantiation here; we'll report it properly when+ -- building.+ setupMessage' verbosity "Preprocessing" (packageId pd)+ (componentLocalName clbi) (Nothing :: Maybe [(ModuleName, Module)])+ case comp of (CLib lib@Library{ libBuildInfo = bi }) -> do- let dirs = hsSourceDirs bi ++ [autogenModulesDir lbi]- setupMessage verbosity "Preprocessing library" (packageId pd)- forM_ (map ModuleName.toFilePath $ libModules lib) $- pre dirs (buildDir lbi) (localHandlers bi)+ let dirs = hsSourceDirs bi ++ [autogenComponentModulesDir lbi clbi+ ,autogenPackageModulesDir lbi]+ for_ (map ModuleName.toFilePath $ allLibModules lib clbi) $+ pre dirs (componentBuildDir lbi clbi) (localHandlers bi)+ (CFLib flib@ForeignLib { foreignLibBuildInfo = bi, foreignLibName = nm }) -> do+ let nm' = unUnqualComponentName nm+ let flibDir = buildDir lbi </> nm' </> nm' ++ "-tmp"+ dirs = hsSourceDirs bi ++ [autogenComponentModulesDir lbi clbi+ ,autogenPackageModulesDir lbi]+ for_ (map ModuleName.toFilePath $ foreignLibModules flib) $+ pre dirs flibDir (localHandlers bi) (CExe exe@Executable { buildInfo = bi, exeName = nm }) -> do- let exeDir = buildDir lbi </> nm </> nm ++ "-tmp"- dirs = hsSourceDirs bi ++ [autogenModulesDir lbi]- setupMessage verbosity ("Preprocessing executable '" ++ nm ++ "' for") (packageId pd)- forM_ (map ModuleName.toFilePath $ otherModules bi) $+ let nm' = unUnqualComponentName nm+ let exeDir = buildDir lbi </> nm' </> nm' ++ "-tmp"+ dirs = hsSourceDirs bi ++ [autogenComponentModulesDir lbi clbi+ ,autogenPackageModulesDir lbi]+ for_ (map ModuleName.toFilePath $ otherModules bi) $ pre dirs exeDir (localHandlers bi) pre (hsSourceDirs bi) exeDir (localHandlers bi) $ dropExtensions (modulePath exe) CTest test@TestSuite{ testName = nm } -> do- setupMessage verbosity ("Preprocessing test suite '" ++ nm ++ "' for") (packageId pd)+ let nm' = unUnqualComponentName nm case testInterface test of TestSuiteExeV10 _ f ->- preProcessTest test f $ buildDir lbi </> testName test- </> testName test ++ "-tmp"+ preProcessTest test f $ buildDir lbi </> nm' </> nm' ++ "-tmp" TestSuiteLibV09 _ _ -> do let testDir = buildDir lbi </> stubName test </> stubName test ++ "-tmp" writeSimpleTestStub test testDir preProcessTest test (stubFilePath test) testDir- TestSuiteUnsupported tt -> die $ "No support for preprocessing test "- ++ "suite type " ++ display tt+ TestSuiteUnsupported tt ->+ die' verbosity $ "No support for preprocessing test "+ ++ "suite type " ++ display tt CBench bm@Benchmark{ benchmarkName = nm } -> do- setupMessage verbosity ("Preprocessing benchmark '" ++ nm ++ "' for") (packageId pd)+ let nm' = unUnqualComponentName nm case benchmarkInterface bm of BenchmarkExeV10 _ f ->- preProcessBench bm f $ buildDir lbi </> benchmarkName bm- </> benchmarkName bm ++ "-tmp"- BenchmarkUnsupported tt -> die $ "No support for preprocessing benchmark "- ++ "type " ++ display tt+ preProcessBench bm f $ buildDir lbi </> nm' </> nm' ++ "-tmp"+ BenchmarkUnsupported tt ->+ die' verbosity $ "No support for preprocessing benchmark "+ ++ "type " ++ display tt where builtinHaskellSuffixes = ["hs", "lhs", "hsig", "lhsig"] builtinCSuffixes = cSourceExtensions builtinSuffixes = builtinHaskellSuffixes ++ builtinCSuffixes- localHandlers bi = [(ext, h bi lbi) | (ext, h) <- handlers]+ localHandlers bi = [(ext, h bi lbi clbi) | (ext, h) <- handlers] pre dirs dir lhndlrs fp = preprocessFile dirs dir isSrcDist fp verbosity builtinSuffixes lhndlrs preProcessTest test = preProcessComponent (testBuildInfo test)@@ -191,7 +212,8 @@ (benchmarkModules bm) preProcessComponent bi modules exePath dir = do let biHandlers = localHandlers bi- sourceDirs = hsSourceDirs bi ++ [ autogenModulesDir lbi ]+ sourceDirs = hsSourceDirs bi ++ [ autogenComponentModulesDir lbi clbi+ , autogenPackageModulesDir lbi ] sequence_ [ preprocessFile sourceDirs dir isSrcDist (ModuleName.toFilePath modu) verbosity builtinSuffixes biHandlers@@ -230,8 +252,9 @@ Nothing -> do bsrcFiles <- findFileWithExtension builtinSuffixes (buildLoc : searchLoc) baseFile case bsrcFiles of- Nothing -> die $ "can't find source for " ++ baseFile- ++ " in " ++ intercalate ", " searchLoc+ Nothing ->+ die' verbosity $ "can't find source for " ++ baseFile+ ++ " in " ++ intercalate ", " searchLoc _ -> return () -- found a pre-processable file in one of the source dirs Just (psrcLoc, psrcRelFile) -> do@@ -294,12 +317,12 @@ -- * known preprocessors -- ------------------------------------------------------------ -ppGreenCard :: BuildInfo -> LocalBuildInfo -> PreProcessor-ppGreenCard _ lbi+ppGreenCard :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor+ppGreenCard _ lbi _ = PreProcessor { platformIndependent = False, runPreProcessor = mkSimplePreProcessor $ \inFile outFile verbosity ->- rawSystemProgramConf verbosity greencardProgram (withPrograms lbi)+ runDbProgram verbosity greencardProgram (withPrograms lbi) (["-tffi", "-o" ++ outFile, inFile]) } @@ -309,32 +332,32 @@ ppUnlit = PreProcessor { platformIndependent = True,- runPreProcessor = mkSimplePreProcessor $ \inFile outFile _verbosity ->+ runPreProcessor = mkSimplePreProcessor $ \inFile outFile verbosity -> withUTF8FileContents inFile $ \contents ->- either (writeUTF8File outFile) die (unlit inFile contents)+ either (writeUTF8File outFile) (die' verbosity) (unlit inFile contents) } -ppCpp :: BuildInfo -> LocalBuildInfo -> PreProcessor+ppCpp :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor ppCpp = ppCpp' [] -ppCpp' :: [String] -> BuildInfo -> LocalBuildInfo -> PreProcessor-ppCpp' extraArgs bi lbi =+ppCpp' :: [String] -> BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor+ppCpp' extraArgs bi lbi clbi = case compilerFlavor (compiler lbi) of- GHC -> ppGhcCpp ghcProgram (>= Version [6,6] []) args bi lbi- GHCJS -> ppGhcCpp ghcjsProgram (const True) args bi lbi- _ -> ppCpphs args bi lbi+ GHC -> ppGhcCpp ghcProgram (>= mkVersion [6,6]) args bi lbi clbi+ GHCJS -> ppGhcCpp ghcjsProgram (const True) args bi lbi clbi+ _ -> ppCpphs args bi lbi clbi where cppArgs = getCppOptions bi lbi args = cppArgs ++ extraArgs ppGhcCpp :: Program -> (Version -> Bool)- -> [String] -> BuildInfo -> LocalBuildInfo -> PreProcessor-ppGhcCpp program xHs extraArgs _bi lbi =+ -> [String] -> BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor+ppGhcCpp program xHs extraArgs _bi lbi clbi = PreProcessor { platformIndependent = False, runPreProcessor = mkSimplePreProcessor $ \inFile outFile verbosity -> do (prog, version, _) <- requireProgramVersion verbosity program anyVersion (withPrograms lbi)- rawSystemProgram verbosity prog $+ runProgram verbosity prog $ ["-E", "-cpp"] -- This is a bit of an ugly hack. We're going to -- unlit the file ourselves later on if appropriate,@@ -342,34 +365,34 @@ -- double-unlitted. In the future we might switch to -- using cpphs --unlit instead. ++ (if xHs version then ["-x", "hs"] else [])- ++ [ "-optP-include", "-optP"++ (autogenModulesDir lbi </> cppHeaderName) ]+ ++ [ "-optP-include", "-optP"++ (autogenComponentModulesDir lbi clbi </> cppHeaderName) ] ++ ["-o", outFile, inFile] ++ extraArgs } -ppCpphs :: [String] -> BuildInfo -> LocalBuildInfo -> PreProcessor-ppCpphs extraArgs _bi lbi =+ppCpphs :: [String] -> BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor+ppCpphs extraArgs _bi lbi clbi = PreProcessor { platformIndependent = False, runPreProcessor = mkSimplePreProcessor $ \inFile outFile verbosity -> do (cpphsProg, cpphsVersion, _) <- requireProgramVersion verbosity cpphsProgram anyVersion (withPrograms lbi)- rawSystemProgram verbosity cpphsProg $+ runProgram verbosity cpphsProg $ ("-O" ++ outFile) : inFile : "--noline" : "--strip"- : (if cpphsVersion >= Version [1,6] []- then ["--include="++ (autogenModulesDir lbi </> cppHeaderName)]+ : (if cpphsVersion >= mkVersion [1,6]+ then ["--include="++ (autogenComponentModulesDir lbi clbi </> cppHeaderName)] else []) ++ extraArgs } -ppHsc2hs :: BuildInfo -> LocalBuildInfo -> PreProcessor-ppHsc2hs bi lbi =+ppHsc2hs :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor+ppHsc2hs bi lbi clbi = PreProcessor { platformIndependent = False, runPreProcessor = mkSimplePreProcessor $ \inFile outFile verbosity -> do (gccProg, _) <- requireProgram verbosity gccProgram (withPrograms lbi)- rawSystemProgramConf verbosity hsc2hsProgram (withPrograms lbi) $+ runDbProgram verbosity hsc2hsProgram (withPrograms lbi) $ [ "--cc=" ++ programPath gccProg , "--ld=" ++ programPath gccProg ] @@ -401,8 +424,9 @@ ++ [ "--cflag=" ++ opt | opt <- PD.ccOptions bi ++ PD.cppOptions bi ] ++ [ "--cflag=" ++ opt | opt <-- [ "-I" ++ autogenModulesDir lbi,- "-include", autogenModulesDir lbi </> cppHeaderName ] ]+ [ "-I" ++ autogenComponentModulesDir lbi clbi,+ "-I" ++ autogenPackageModulesDir lbi,+ "-include", autogenComponentModulesDir lbi clbi </> cppHeaderName ] ] ++ [ "--lflag=-L" ++ opt | opt <- PD.extraLibDirs bi ] ++ [ "--lflag=-Wl,-R," ++ opt | isELF , opt <- PD.extraLibDirs bi ]@@ -424,13 +448,16 @@ ++ ["-o", outFile, inFile] } where- -- TODO: installedPkgs contains ALL dependencies associated with- -- the package, but we really only want to look at packages for the- -- *current* dependency. We should use PackageIndex.dependencyClosure- -- on the direct depends of the component. Can't easily do that,- -- because the signature of this function is wrong. Tracked with- -- #2971 (which has a test case.)- pkgs = PackageIndex.topologicalOrder (packageHacks (installedPkgs lbi))+ hacked_index = packageHacks (installedPkgs lbi)+ -- Look only at the dependencies of the current component+ -- being built! This relies on 'installedPkgs' maintaining+ -- 'InstalledPackageInfo' for internal deps too; see #2971.+ pkgs = PackageIndex.topologicalOrder $+ case PackageIndex.dependencyClosure hacked_index+ (map fst (componentPackageDeps clbi)) of+ Left index' -> index'+ Right inf ->+ error ("ppHsc2hs: broken closure: " ++ show inf) isOSX = case buildOS of OSX -> True; _ -> False isELF = case buildOS of OSX -> False; Windows -> False; AIX -> False; _ -> True; packageHacks = case compilerFlavor (compiler lbi) of@@ -442,7 +469,7 @@ -- OS X (it's ld is a tad stricter than gnu ld). Thus we remove the -- ldOptions for GHC's rts package: hackRtsPackage index =- case PackageIndex.lookupPackageName index (PackageName "rts") of+ case PackageIndex.lookupPackageName index (mkPackageName "rts") of [(_, [rts])] -> PackageIndex.insert rts { Installed.ldOptions = [] } index _ -> error "No (or multiple) ghc rts package is registered!!"@@ -451,22 +478,22 @@ ppHsc2hsExtras buildBaseDir = filter ("_hsc.c" `isSuffixOf`) `fmap` getDirectoryContentsRecursive buildBaseDir -ppC2hs :: BuildInfo -> LocalBuildInfo -> PreProcessor-ppC2hs bi lbi =+ppC2hs :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor+ppC2hs bi lbi clbi = PreProcessor { platformIndependent = False, runPreProcessor = \(inBaseDir, inRelativeFile) (outBaseDir, outRelativeFile) verbosity -> do (c2hsProg, _, _) <- requireProgramVersion verbosity- c2hsProgram (orLaterVersion (Version [0,15] []))+ c2hsProgram (orLaterVersion (mkVersion [0,15])) (withPrograms lbi) (gccProg, _) <- requireProgram verbosity gccProgram (withPrograms lbi)- rawSystemProgram verbosity c2hsProg $+ runProgram verbosity c2hsProg $ -- Options from the current package: [ "--cpp=" ++ programPath gccProg, "--cppopts=-E" ] ++ [ "--cppopts=" ++ opt | opt <- getCppOptions bi lbi ]- ++ [ "--cppopts=-include" ++ (autogenModulesDir lbi </> cppHeaderName) ]+ ++ [ "--cppopts=-include" ++ (autogenComponentModulesDir lbi clbi </> cppHeaderName) ] ++ [ "--include=" ++ outBaseDir ] -- Options from dependent packages@@ -532,10 +559,11 @@ -- FIXME: this forces GHC's crazy 4.8.2 -> 408 convention on all -- the other compilers. Check if that's really what they want. versionInt :: Version -> String- versionInt (Version { versionBranch = [] }) = "1"- versionInt (Version { versionBranch = [n] }) = show n- versionInt (Version { versionBranch = n1:n2:_ })- = -- 6.8.x -> 608+ versionInt v = case versionNumbers v of+ [] -> "1"+ [n] -> show n+ n1:n2:_ ->+ -- 6.8.x -> 608 -- 6.10.x -> 610 let s1 = show n1 s2 = show n2@@ -543,6 +571,7 @@ _ : _ : _ -> "" _ -> "0" in s1 ++ middle ++ s2+ osStr = case hostOS of Linux -> ["linux"] Windows -> ["mingw32"]@@ -580,16 +609,16 @@ JavaScript -> ["javascript"] OtherArch _ -> [] -ppHappy :: BuildInfo -> LocalBuildInfo -> PreProcessor-ppHappy _ lbi = pp { platformIndependent = True }+ppHappy :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor+ppHappy _ lbi _ = pp { platformIndependent = True } where pp = standardPP lbi happyProgram (hcFlags hc) hc = compilerFlavor (compiler lbi) hcFlags GHC = ["-agc"] hcFlags GHCJS = ["-agc"] hcFlags _ = [] -ppAlex :: BuildInfo -> LocalBuildInfo -> PreProcessor-ppAlex _ lbi = pp { platformIndependent = True }+ppAlex :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor+ppAlex _ lbi _ = pp { platformIndependent = True } where pp = standardPP lbi alexProgram (hcFlags hc) hc = compilerFlavor (compiler lbi) hcFlags GHC = ["-g"]@@ -601,7 +630,7 @@ PreProcessor { platformIndependent = False, runPreProcessor = mkSimplePreProcessor $ \inFile outFile verbosity ->- rawSystemProgramConf verbosity prog (withPrograms lbi)+ runDbProgram verbosity prog (withPrograms lbi) (args ++ ["-o", outFile, inFile]) } @@ -627,26 +656,54 @@ -- | Find any extra C sources generated by preprocessing that need to -- be added to the component (addresses issue #238).-preprocessExtras :: Component+preprocessExtras :: Verbosity+ -> Component -> LocalBuildInfo -> IO [FilePath]-preprocessExtras comp lbi = case comp of+preprocessExtras verbosity comp lbi = case comp of CLib _ -> pp $ buildDir lbi- (CExe Executable { exeName = nm }) ->- pp $ buildDir lbi </> nm </> nm ++ "-tmp"+ (CExe Executable { exeName = nm }) -> do+ let nm' = unUnqualComponentName nm+ pp $ buildDir lbi </> nm' </> nm' ++ "-tmp"+ (CFLib ForeignLib { foreignLibName = nm }) -> do+ let nm' = unUnqualComponentName nm+ pp $ buildDir lbi </> nm' </> nm' ++ "-tmp" CTest test -> do+ let nm' = unUnqualComponentName $ testName test case testInterface test of TestSuiteExeV10 _ _ ->- pp $ buildDir lbi </> testName test </> testName test ++ "-tmp"+ pp $ buildDir lbi </> nm' </> nm' ++ "-tmp" TestSuiteLibV09 _ _ -> pp $ buildDir lbi </> stubName test </> stubName test ++ "-tmp"- TestSuiteUnsupported tt -> die $ "No support for preprocessing test "+ TestSuiteUnsupported tt -> die' verbosity $ "No support for preprocessing test " ++ "suite type " ++ display tt CBench bm -> do+ let nm' = unUnqualComponentName $ benchmarkName bm case benchmarkInterface bm of BenchmarkExeV10 _ _ ->- pp $ buildDir lbi </> benchmarkName bm </> benchmarkName bm ++ "-tmp"- BenchmarkUnsupported tt -> die $ "No support for preprocessing benchmark "- ++ "type " ++ display tt+ pp $ buildDir lbi </> nm' </> nm' ++ "-tmp"+ BenchmarkUnsupported tt ->+ die' verbosity $ "No support for preprocessing benchmark "+ ++ "type " ++ display tt where- pp dir = (map (dir </>) . concat) `fmap` forM knownExtrasHandlers ($ dir)+ pp :: FilePath -> IO [FilePath]+ pp dir = (map (dir </>) . filter not_sub . concat)+ <$> for knownExtrasHandlers+ (withLexicalCallStack (\f -> f dir))+ -- TODO: This is a terrible hack to work around #3545 while we don't+ -- reorganize the directory layout. Basically, for the main+ -- library, we might accidentally pick up autogenerated sources for+ -- our subcomponents, because they are all stored as subdirectories+ -- in dist/build. This is a cheap and cheerful check to prevent+ -- this from happening. It is not particularly correct; for example+ -- if a user has a test suite named foobar and puts their C file in+ -- foobar/foo.c, this test will incorrectly exclude it. But I+ -- didn't want to break BC...+ not_sub p = and [ not (pre `isPrefixOf` p) | pre <- component_dirs ]+ component_dirs = component_names (localPkgDescr lbi)+ -- TODO: libify me+ component_names pkg_descr = fmap unUnqualComponentName $+ mapMaybe libName (subLibraries pkg_descr) +++ map exeName (executables pkg_descr) +++ map testName (testSuites pkg_descr) +++ map benchmarkName (benchmarks pkg_descr)
Distribution/Simple/PreProcess/Unlit.hs view
@@ -15,9 +15,11 @@ module Distribution.Simple.PreProcess.Unlit (unlit,plain) where -import Data.Char-import Data.List+import Prelude ()+import Distribution.Compat.Prelude +import Data.List (mapAccumL)+ data Classified = BirdTrack String | Blank String | Ordinary String | Line !Int String | CPP String | BeginCode | EndCode@@ -35,7 +37,7 @@ && length file >= 2 && head file == '"' && last file == '"'- -> Line (read line) (tail (init file))+ -> Line (read line) (tail (init file)) -- TODO:eradicateNoParse _ -> CPP s where tokens = unfoldr $ \str -> case lex str of (t@(_:_), str'):_ -> Just (t, str')
Distribution/Simple/Program.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Program@@ -11,14 +14,14 @@ -- 'ConfiguredProgram' is a 'Program' that has been found on the current -- machine and is ready to be run (possibly with some user-supplied default -- args). Configuring a program involves finding its location and if necessary--- finding its version. There is also a 'ProgramConfiguration' type which holds+-- finding its version. There is also a 'ProgramDb' type which holds -- configured and not-yet configured programs. It is the parameter to lots of -- actions elsewhere in Cabal that need to look up and run programs. If we had--- a Cabal monad, the 'ProgramConfiguration' would probably be a reader or--- state component of it. +-- a Cabal monad, the 'ProgramDb' would probably be a reader or+-- state component of it. -- -- The module also defines all the known built-in 'Program's and the--- 'defaultProgramConfiguration' which contains them all.+-- 'defaultProgramDb' which contains them all. -- -- One nice thing about using it is that any program that is -- registered with Cabal will get some \"configure\" and \".cabal\"@@ -63,10 +66,10 @@ , builtinPrograms -- * The collection of configured programs we can run- , ProgramConfiguration- , emptyProgramConfiguration- , defaultProgramConfiguration- , restoreProgramConfiguration+ , ProgramDb+ , defaultProgramDb+ , emptyProgramDb+ , restoreProgramDb , addKnownProgram , addKnownPrograms , lookupKnownProgram@@ -109,6 +112,7 @@ , c2hsProgram , cpphsProgram , hscolourProgram+ , doctestProgram , haddockProgram , greencardProgram , ldProgram@@ -118,6 +122,10 @@ , hpcProgram -- * deprecated+ , ProgramConfiguration+ , emptyProgramConfiguration+ , defaultProgramConfiguration+ , restoreProgramConfiguration , rawSystemProgram , rawSystemProgramStdout , rawSystemProgramConf@@ -127,6 +135,9 @@ ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.Program.Types import Distribution.Simple.Program.Run import Distribution.Simple.Program.Db@@ -135,9 +146,7 @@ import Distribution.Simple.Utils import Distribution.Verbosity - -- | Runs the given configured program.--- runProgram :: Verbosity -- ^Verbosity -> ConfiguredProgram -- ^The program to run -> [ProgArg] -- ^Any /extra/ arguments to add@@ -165,7 +174,7 @@ -> IO () runDbProgram verbosity prog programDb args = case lookupProgram prog programDb of- Nothing -> die notFound+ Nothing -> die' verbosity notFound Just configuredProg -> runProgram verbosity configuredProg args where notFound = "The program '" ++ programName prog@@ -180,7 +189,7 @@ -> IO String getDbProgramOutput verbosity prog programDb args = case lookupProgram prog programDb of- Nothing -> die notFound+ Nothing -> die' verbosity notFound Just configuredProg -> getProgramOutput verbosity configuredProg args where notFound = "The program '" ++ programName prog@@ -191,28 +200,37 @@ -- Deprecated aliases -- +{-# DEPRECATED rawSystemProgram "use runProgram instead" #-} rawSystemProgram :: Verbosity -> ConfiguredProgram -> [ProgArg] -> IO () rawSystemProgram = runProgram +{-# DEPRECATED rawSystemProgramStdout "use getProgramOutput instead" #-} rawSystemProgramStdout :: Verbosity -> ConfiguredProgram -> [ProgArg] -> IO String rawSystemProgramStdout = getProgramOutput +{-# DEPRECATED rawSystemProgramConf "use runDbProgram instead" #-} rawSystemProgramConf :: Verbosity -> Program -> ProgramConfiguration -> [ProgArg] -> IO () rawSystemProgramConf = runDbProgram +{-# DEPRECATED rawSystemProgramStdoutConf "use getDbProgramOutput instead" #-} rawSystemProgramStdoutConf :: Verbosity -> Program -> ProgramConfiguration -> [ProgArg] -> IO String rawSystemProgramStdoutConf = getDbProgramOutput +{-# DEPRECATED ProgramConfiguration "use ProgramDb instead" #-} type ProgramConfiguration = ProgramDb +{-# DEPRECATED emptyProgramConfiguration "use emptyProgramDb instead" #-}+{-# DEPRECATED defaultProgramConfiguration "use defaultProgramDb instead" #-} emptyProgramConfiguration, defaultProgramConfiguration :: ProgramConfiguration emptyProgramConfiguration = emptyProgramDb defaultProgramConfiguration = defaultProgramDb +{-# DEPRECATED restoreProgramConfiguration+ "use restoreProgramDb instead" #-} restoreProgramConfiguration :: [Program] -> ProgramConfiguration -> ProgramConfiguration restoreProgramConfiguration = restoreProgramDb
Distribution/Simple/Program/Ar.hs view
@@ -1,4 +1,7 @@+{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE NondecreasingIndentation #-} ----------------------------------------------------------------------------- -- |@@ -15,10 +18,11 @@ multiStageProgramInvocation ) where -import Control.Monad (unless)+import Prelude ()+import Distribution.Compat.Prelude+ import qualified Data.ByteString as BS import qualified Data.ByteString.Char8 as BS8-import Data.Char (isSpace) import Distribution.Compat.CopyFile (filesEqual) import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(..)) import Distribution.Simple.Program@@ -27,7 +31,7 @@ ( programInvocation, multiStageProgramInvocation , runProgramInvocation ) import Distribution.Simple.Utils- ( dieWithLocation, withTempDirectory )+ ( dieWithLocation', withTempDirectory ) import Distribution.System ( Arch(..), OS(..), Platform(..) ) import Distribution.Verbosity@@ -43,7 +47,7 @@ createArLibArchive :: Verbosity -> LocalBuildInfo -> FilePath -> [FilePath] -> IO () createArLibArchive verbosity lbi targetPath files = do- (ar, _) <- requireProgram verbosity arProgram progConf+ (ar, _) <- requireProgram verbosity arProgram progDb let (targetDir, targetName) = splitFileName targetPath withTempDirectory verbosity targetDir "objs" $ \ tmpDir -> do@@ -86,12 +90,12 @@ unless (hostArch == Arm -- See #1537 || hostOS == AIX) $ -- AIX uses its own "ar" format variant- wipeMetadata tmpPath+ wipeMetadata verbosity tmpPath equal <- filesEqual tmpPath targetPath unless equal $ renameFile tmpPath targetPath where- progConf = withPrograms lbi+ progDb = withPrograms lbi Platform hostArch hostOS = hostPlatform lbi verbosityOpts v | v >= deafening = ["-v"] | v >= verbose = []@@ -103,15 +107,15 @@ -- (@-D@) flag that always writes zero for the mtime, UID and GID, and 0644 -- for the file mode. However detecting whether @-D@ is supported seems -- rather harder than just re-implementing this feature.-wipeMetadata :: FilePath -> IO ()-wipeMetadata path = do+wipeMetadata :: Verbosity -> FilePath -> IO ()+wipeMetadata verbosity path = do -- Check for existence first (ReadWriteMode would create one otherwise) exists <- doesFileExist path unless exists $ wipeError "Temporary file disappeared" withBinaryFile path ReadWriteMode $ \ h -> hFileSize h >>= wipeArchive h where- wipeError msg = dieWithLocation path Nothing $+ wipeError msg = dieWithLocation' verbosity path Nothing $ "Distribution.Simple.Program.Ar.wipeMetadata: " ++ msg archLF = "!<arch>\x0a" -- global magic, 8 bytes x60LF = "\x60\x0a" -- header magic, 2 bytes
Distribution/Simple/Program/Builtin.hs view
@@ -18,6 +18,7 @@ -- * Programs that Cabal knows about ghcProgram, ghcPkgProgram,+ runghcProgram, ghcjsProgram, ghcjsPkgProgram, lhcProgram,@@ -36,6 +37,7 @@ c2hsProgram, cpphsProgram, hscolourProgram,+ doctestProgram, haddockProgram, greencardProgram, ldProgram,@@ -45,6 +47,9 @@ hpcProgram, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.Program.Find import Distribution.Simple.Program.Internal import Distribution.Simple.Program.Run@@ -54,8 +59,6 @@ import Distribution.Verbosity import Distribution.Version -import Data.Char- ( isDigit ) import qualified Data.Map as Map -- ------------------------------------------------------------@@ -69,6 +72,7 @@ [ -- compilers and related progs ghcProgram+ , runghcProgram , ghcPkgProgram , ghcjsProgram , ghcjsPkgProgram@@ -82,6 +86,7 @@ , hpcProgram -- preprocessors , hscolourProgram+ , doctestProgram , haddockProgram , happyProgram , alexProgram@@ -112,14 +117,23 @@ } -- Only the 7.8 branch seems to be affected. Fixed in 7.8.4. affectedVersionRange = intersectVersionRanges- (laterVersion $ Version [7,8,0] [])- (earlierVersion $ Version [7,8,4] [])+ (laterVersion $ mkVersion [7,8,0])+ (earlierVersion $ mkVersion [7,8,4]) return $ maybe ghcProg (\v -> if withinRange v affectedVersionRange then ghcProg' else ghcProg) (programVersion ghcProg) } +runghcProgram :: Program+runghcProgram = (simpleProgram "runghc") {+ programFindVersion = findProgramVersion "--version" $ \str ->+ case words str of+ -- "runghc 7.10.3"+ (_:ver:_) -> ver+ _ -> ""+ }+ ghcPkgProgram :: Program ghcPkgProgram = (simpleProgram "ghc-pkg") { programFindVersion = findProgramVersion "--version" $ \str ->@@ -295,6 +309,18 @@ case words str of (_:ver:_) -> ver _ -> ""+ }++-- TODO: Ensure that doctest is built against the same GHC as the one+-- that's being used. Same for haddock. @phadej pointed this out.+doctestProgram :: Program+doctestProgram = (simpleProgram "doctest") {+ programFindLocation = \v p -> findProgramOnSearchPath v p "doctest"+ , programFindVersion = findProgramVersion "--version" $ \str ->+ -- "doctest version 0.11.2"+ case words str of+ (_:_:ver:_) -> ver+ _ -> "" } haddockProgram :: Program
Distribution/Simple/Program/Db.hs view
@@ -1,3 +1,7 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE DeriveDataTypeable #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Program.Db@@ -48,6 +52,7 @@ -- ** Query and manipulate the program db configureProgram, configureAllKnownPrograms,+ unconfigureProgram, lookupProgramVersion, reconfigurePrograms, requireProgram,@@ -55,6 +60,9 @@ ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.Program.Types import Distribution.Simple.Program.Find import Distribution.Simple.Program.Builtin@@ -62,16 +70,10 @@ import Distribution.Version import Distribution.Text import Distribution.Verbosity-import Distribution.Compat.Binary -import Data.List- ( foldl' )-import Data.Maybe- ( catMaybes )+import Control.Monad (join) import Data.Tuple (swap) import qualified Data.Map as Map-import Control.Monad- ( join, foldM ) -- ------------------------------------------------------------ -- * Programs database@@ -90,6 +92,7 @@ progSearchPath :: ProgramSearchPath, configuredProgs :: ConfiguredProgs }+ deriving (Typeable) type UnconfiguredProgram = (Program, Maybe FilePath, [ProgArg]) type UnconfiguredProgs = Map.Map String UnconfiguredProgram@@ -106,13 +109,13 @@ -- internal helpers: updateUnconfiguredProgs :: (UnconfiguredProgs -> UnconfiguredProgs) -> ProgramDb -> ProgramDb-updateUnconfiguredProgs update conf =- conf { unconfiguredProgs = update (unconfiguredProgs conf) }+updateUnconfiguredProgs update progdb =+ progdb { unconfiguredProgs = update (unconfiguredProgs progdb) } updateConfiguredProgs :: (ConfiguredProgs -> ConfiguredProgs) -> ProgramDb -> ProgramDb-updateConfiguredProgs update conf =- conf { configuredProgs = update (configuredProgs conf) }+updateConfiguredProgs update progdb =+ progdb { configuredProgs = update (configuredProgs progdb) } -- Read & Show instances are based on listToFM@@ -172,7 +175,7 @@ addKnownPrograms :: [Program] -> ProgramDb -> ProgramDb-addKnownPrograms progs conf = foldl' (flip addKnownProgram) conf progs+addKnownPrograms progs progdb = foldl' (flip addKnownProgram) progdb progs lookupKnownProgram :: String -> ProgramDb -> Maybe Program@@ -181,9 +184,9 @@ knownPrograms :: ProgramDb -> [(Program, Maybe ConfiguredProgram)]-knownPrograms conf =- [ (p,p') | (p,_,_) <- Map.elems (unconfiguredProgs conf)- , let p' = Map.lookup (programName p) (configuredProgs conf) ]+knownPrograms progdb =+ [ (p,p') | (p,_,_) <- Map.elems (unconfiguredProgs progdb)+ , let p' = Map.lookup (programName p) (configuredProgs progdb) ] -- | Get the current 'ProgramSearchPath' used by the 'ProgramDb'. -- This is the default list of locations where programs are looked for when@@ -224,8 +227,8 @@ userMaybeSpecifyPath :: String -> Maybe FilePath -> ProgramDb -> ProgramDb-userMaybeSpecifyPath _ Nothing conf = conf-userMaybeSpecifyPath name (Just path) conf = userSpecifyPath name path conf+userMaybeSpecifyPath _ Nothing progdb = progdb+userMaybeSpecifyPath name (Just path) progdb = userSpecifyPath name path progdb -- |User-specify the arguments for this program. Basically override@@ -250,8 +253,8 @@ userSpecifyPaths :: [(String, FilePath)] -> ProgramDb -> ProgramDb-userSpecifyPaths paths conf =- foldl' (\conf' (prog, path) -> userSpecifyPath prog path conf') conf paths+userSpecifyPaths paths progdb =+ foldl' (\progdb' (prog, path) -> userSpecifyPath prog path progdb') progdb paths -- | Like 'userSpecifyPath' but for a list of progs and their args.@@ -259,8 +262,8 @@ userSpecifyArgss :: [(String, [ProgArg])] -> ProgramDb -> ProgramDb-userSpecifyArgss argss conf =- foldl' (\conf' (prog, args) -> userSpecifyArgs prog args conf') conf argss+userSpecifyArgss argss progdb =+ foldl' (\progdb' (prog, args) -> userSpecifyArgs prog args progdb') progdb argss -- | Get the path that has been previously specified for a program, if any.@@ -317,40 +320,40 @@ -> Program -> ProgramDb -> IO ProgramDb-configureProgram verbosity prog conf = do+configureProgram verbosity prog progdb = do let name = programName prog- maybeLocation <- case userSpecifiedPath prog conf of+ maybeLocation <- case userSpecifiedPath prog progdb of Nothing ->- programFindLocation prog verbosity (progSearchPath conf)+ programFindLocation prog verbosity (progSearchPath progdb) >>= return . fmap (swap . fmap FoundOnSystem . swap) Just path -> do absolute <- doesExecutableExist path if absolute then return (Just (UserSpecified path, []))- else findProgramOnSearchPath verbosity (progSearchPath conf) path- >>= maybe (die notFound)+ else findProgramOnSearchPath verbosity (progSearchPath progdb) path+ >>= maybe (die' verbosity notFound) (return . Just . swap . fmap UserSpecified . swap) where notFound = "Cannot find the program '" ++ name ++ "'. User-specified path '" ++ path ++ "' does not refer to an executable and " ++ "the program is not on the system path." case maybeLocation of- Nothing -> return conf+ Nothing -> return progdb Just (location, triedLocations) -> do version <- programFindVersion prog verbosity (locationPath location)- newPath <- programSearchPathAsPATHVar (progSearchPath conf)+ newPath <- programSearchPathAsPATHVar (progSearchPath progdb) let configuredProg = ConfiguredProgram { programId = name, programVersion = version, programDefaultArgs = [],- programOverrideArgs = userSpecifiedArgs prog conf,+ programOverrideArgs = userSpecifiedArgs prog progdb, programOverrideEnv = [("PATH", Just newPath)], programProperties = Map.empty, programLocation = location, programMonitorFiles = triedLocations } configuredProg' <- programPostConf prog verbosity configuredProg- return (updateConfiguredProgs (Map.insert name configuredProg') conf)+ return (updateConfiguredProgs (Map.insert name configuredProg') progdb) -- | Configure a bunch of programs using 'configureProgram'. Just a 'foldM'.@@ -359,21 +362,28 @@ -> [Program] -> ProgramDb -> IO ProgramDb-configurePrograms verbosity progs conf =- foldM (flip (configureProgram verbosity)) conf progs+configurePrograms verbosity progs progdb =+ foldM (flip (configureProgram verbosity)) progdb progs +-- | Unconfigure a program. This is basically a hack and you shouldn't+-- use it, but it can be handy for making sure a 'requireProgram'+-- actually reconfigures.+unconfigureProgram :: String -> ProgramDb -> ProgramDb+unconfigureProgram progname =+ updateConfiguredProgs $ Map.delete progname+ -- | Try to configure all the known programs that have not yet been configured. -- configureAllKnownPrograms :: Verbosity -> ProgramDb -> IO ProgramDb-configureAllKnownPrograms verbosity conf =+configureAllKnownPrograms verbosity progdb = configurePrograms verbosity- [ prog | (prog,_,_) <- Map.elems notYetConfigured ] conf+ [ prog | (prog,_,_) <- Map.elems notYetConfigured ] progdb where- notYetConfigured = unconfiguredProgs conf- `Map.difference` configuredProgs conf+ notYetConfigured = unconfiguredProgs progdb+ `Map.difference` configuredProgs progdb -- | reconfigure a bunch of programs given new user-specified args. It takes@@ -385,14 +395,14 @@ -> [(String, [ProgArg])] -> ProgramDb -> IO ProgramDb-reconfigurePrograms verbosity paths argss conf = do+reconfigurePrograms verbosity paths argss progdb = do configurePrograms verbosity progs . userSpecifyPaths paths . userSpecifyArgss argss- $ conf+ $ progdb where- progs = catMaybes [ lookupKnownProgram name conf | (name,_) <- paths ]+ progs = catMaybes [ lookupKnownProgram name progdb | (name,_) <- paths ] -- | Check that a program is configured and available to be run.@@ -402,16 +412,16 @@ -- requireProgram :: Verbosity -> Program -> ProgramDb -> IO (ConfiguredProgram, ProgramDb)-requireProgram verbosity prog conf = do+requireProgram verbosity prog progdb = do -- If it's not already been configured, try to configure it now- conf' <- case lookupProgram prog conf of- Nothing -> configureProgram verbosity prog conf- Just _ -> return conf+ progdb' <- case lookupProgram prog progdb of+ Nothing -> configureProgram verbosity prog progdb+ Just _ -> return progdb - case lookupProgram prog conf' of- Nothing -> die notFound- Just configuredProg -> return (configuredProg, conf')+ case lookupProgram prog progdb' of+ Nothing -> die' verbosity notFound+ Just configuredProg -> return (configuredProg, progdb') where notFound = "The program '" ++ programName prog ++ "' is required but it could not be found."@@ -471,5 +481,5 @@ -> ProgramDb -> IO (ConfiguredProgram, Version, ProgramDb) requireProgramVersion verbosity prog range programDb =- join $ either die return `fmap`+ join $ either (die' verbosity) return `fmap` lookupProgramVersion verbosity prog range programDb
Distribution/Simple/Program/Find.hs view
@@ -1,4 +1,7 @@-{-# LANGUAGE CPP, DeriveGeneric #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-} ----------------------------------------------------------------------------- -- |@@ -31,20 +34,19 @@ getSystemSearchPath, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Verbosity import Distribution.Simple.Utils import Distribution.System import Distribution.Compat.Environment-import Distribution.Compat.Binary import qualified System.Directory as Directory ( findExecutable ) import System.FilePath as FilePath ( (</>), (<.>), splitSearchPath, searchPathSeparator, getSearchPath , takeDirectory )-import Data.List- ( nub )-import GHC.Generics #if defined(mingw32_HOST_OS) import qualified System.Win32 as Win32 #endif@@ -93,7 +95,7 @@ where alltried = concat (reverse (notfoundat : tried)) - tryPathElem :: ProgramSearchPathEntry -> IO (Maybe FilePath, [FilePath])+ tryPathElem :: ProgramSearchPathEntry -> NoCallStackIO (Maybe FilePath, [FilePath]) tryPathElem (ProgramSearchPathDir dir) = findFirstExe [ dir </> prog <.> ext | ext <- exeExtensions ] @@ -118,7 +120,7 @@ dirs <- getSystemSearchPath findFirstExe [ dir </> prog <.> ext | dir <- dirs, ext <- exeExtensions ] - findFirstExe :: [FilePath] -> IO (Maybe FilePath, [FilePath])+ findFirstExe :: [FilePath] -> NoCallStackIO (Maybe FilePath, [FilePath]) findFirstExe = go [] where go fs' [] = return (Nothing, reverse fs')@@ -131,9 +133,9 @@ -- | Interpret a 'ProgramSearchPath' to construct a new @$PATH@ env var. -- Note that this is close but not perfect because on Windows the search -- algorithm looks at more than just the @%PATH%@.-programSearchPathAsPATHVar :: ProgramSearchPath -> IO String+programSearchPathAsPATHVar :: ProgramSearchPath -> NoCallStackIO String programSearchPathAsPATHVar searchpath = do- ess <- mapM getEntries searchpath+ ess <- traverse getEntries searchpath return (intercalate [searchPathSeparator] (concat ess)) where getEntries (ProgramSearchPathDir dir) = return [dir]@@ -144,7 +146,7 @@ -- | Get the system search path. On Unix systems this is just the @$PATH@ env -- var, but on windows it's a bit more complicated. ---getSystemSearchPath :: IO [FilePath]+getSystemSearchPath :: NoCallStackIO [FilePath] getSystemSearchPath = fmap nub $ do #if defined(mingw32_HOST_OS) processdir <- takeDirectory `fmap` Win32.getModuleFileName Win32.nullHANDLE@@ -166,7 +168,7 @@ #endif #endif -findExecutable :: FilePath -> IO (Maybe FilePath)+findExecutable :: FilePath -> NoCallStackIO (Maybe FilePath) #ifdef HAVE_directory_121 findExecutable = Directory.findExecutable #else
Distribution/Simple/Program/GHC.hs view
@@ -1,4 +1,6 @@ {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-} module Distribution.Simple.Program.GHC ( GhcOptions(..),@@ -14,9 +16,11 @@ ) where -import Distribution.Compat.Semigroup as Semi+import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Backpack import Distribution.Simple.GHC.ImplInfo-import Distribution.Package import Distribution.PackageDescription hiding (Flag) import Distribution.ModuleName import Distribution.Simple.Compiler hiding (Flag)@@ -25,12 +29,12 @@ import Distribution.Simple.Program.Run import Distribution.System import Distribution.Text+import Distribution.Types.ComponentId import Distribution.Verbosity import Distribution.Utils.NubList import Language.Haskell.Extension -import GHC.Generics (Generic)-import qualified Data.Map as M+import qualified Data.Map as Map -- | A structured set of GHC options/flags --@@ -80,18 +84,35 @@ -- (we need to handle backwards compatibility.) ghcOptThisUnitId :: Flag String, + -- | GHC doesn't make any assumptions about the format of+ -- definite unit ids, so when we are instantiating a package it+ -- needs to be told explicitly what the component being instantiated+ -- is. This only gets set when 'ghcOptInstantiatedWith' is non-empty+ ghcOptThisComponentId :: Flag ComponentId,++ -- | How the requirements of the package being compiled are to+ -- be filled. When typechecking an indefinite package, the 'OpenModule'+ -- is always a 'OpenModuleVar'; otherwise, it specifies the installed module+ -- that instantiates a package.+ ghcOptInstantiatedWith :: [(ModuleName, OpenModule)],++ -- | No code? (But we turn on interface writing+ ghcOptNoCode :: Flag Bool,+ -- | GHC package databases to use, the @ghc -package-conf@ flag. ghcOptPackageDBs :: PackageDBStack, - -- | The GHC packages to use. For compatability with old and new ghc, this- -- requires both the short and long form of the package id;- -- the @ghc -package@ or @ghc -package-id@ flags.+ -- | The GHC packages to bring into scope when compiling,+ -- the @ghc -package-id@ flags. ghcOptPackages ::- NubListR (UnitId, PackageId, ModuleRenaming),+ NubListR (OpenUnitId, ModuleRenaming), -- | Start with a clean package set; the @ghc -hide-all-packages@ flag ghcOptHideAllPackages :: Flag Bool, + -- | Warn about modules, not listed in command line+ ghcOptWarnMissingHomeModules :: Flag Bool,+ -- | Don't automatically link in Haskell98 etc; the @ghc -- -no-auto-link-packages@ flag. ghcOptNoAutoLinkPackages :: Flag Bool,@@ -122,6 +143,9 @@ -- flag. ghcOptLinkNoHsMain :: Flag Bool, + -- | Module definition files (Windows specific)+ ghcOptLinkModDefFiles :: NubListR FilePath,+ -------------------- -- C and CPP stuff @@ -151,7 +175,7 @@ -- | A GHC version-dependent mapping of extensions to flags. This must be -- set to be able to make use of the 'ghcOptExtensions'.- ghcOptExtensionMap :: M.Map Extension String,+ ghcOptExtensionMap :: Map Extension String, ---------------- -- Compilation@@ -196,9 +220,10 @@ ghcOptStubDir :: Flag FilePath, --------------------- -- Dynamic linking+ -- Creating libraries ghcOptDynLinkMode :: Flag GhcDynLinkMode,+ ghcOptStaticLib :: Flag Bool, ghcOptShared :: Flag Bool, ghcOptFPic :: Flag Bool, ghcOptDylibName :: Flag String,@@ -210,6 +235,10 @@ -- | Get GHC to be quiet or verbose with what it's doing; the @ghc -v@ flag. ghcOptVerbosity :: Flag Verbosity, + -- | Put the extra folders in the PATH environment variable we invoke+ -- GHC with+ ghcOptExtraPath :: NubListR FilePath,+ -- | Let GHC know that it is Cabal that's calling it. -- Modifies some of the GHC error messages. ghcOptCabal :: Flag Bool@@ -251,7 +280,9 @@ ghcInvocation :: ConfiguredProgram -> Compiler -> Platform -> GhcOptions -> ProgramInvocation ghcInvocation prog comp platform opts =- programInvocation prog (renderGhcOptions comp platform opts)+ (programInvocation prog (renderGhcOptions comp platform opts)) {+ progInvokePathEnv = fromNubListR (ghcOptExtraPath opts)+ } renderGhcOptions :: Compiler -> Platform -> GhcOptions -> [String] renderGhcOptions comp _platform@(Platform _arch os) opts@@ -279,8 +310,7 @@ , maybe [] verbosityOpts (flagToMaybe (ghcOptVerbosity opts)) - , [ "-fbuilding-cabal-package" | flagBool ghcOptCabal- , flagBuildingCabalPkg implInfo ]+ , [ "-fbuilding-cabal-package" | flagBool ghcOptCabal ] ---------------- -- Compilation@@ -323,9 +353,10 @@ else [] --------------------- -- Dynamic linking+ -- Creating libraries - , [ "-shared" | flagBool ghcOptShared ]+ , [ "-staticlib" | flagBool ghcOptStaticLib ]+ , [ "-shared" | flagBool ghcOptShared ] , case flagToMaybe (ghcOptDynLinkMode opts) of Nothing -> [] Just GhcStaticOnly -> ["-static"]@@ -342,12 +373,10 @@ , concat [ ["-hisuf", suf] | suf <- flag ghcOptHiSuffix ] , concat [ ["-dynosuf", suf] | suf <- flag ghcOptDynObjSuffix ] , concat [ ["-dynhisuf",suf] | suf <- flag ghcOptDynHiSuffix ]- , concat [ ["-outputdir", dir] | dir <- flag ghcOptOutputDir- , flagOutputDir implInfo ]+ , concat [ ["-outputdir", dir] | dir <- flag ghcOptOutputDir ] , concat [ ["-odir", dir] | dir <- flag ghcOptObjDir ] , concat [ ["-hidir", dir] | dir <- flag ghcOptHiDir ]- , concat [ ["-stubdir", dir] | dir <- flag ghcOptStubDir- , flagStubdir implInfo ]+ , concat [ ["-stubdir", dir] | dir <- flag ghcOptStubDir ] ----------------------- -- Source search path@@ -362,8 +391,6 @@ , [ "-optP" ++ opt | opt <- flags ghcOptCppOptions ] , concat [ [ "-optP-include", "-optP" ++ inc] | inc <- flags ghcOptCppIncludes ]- , [ "-#include \"" ++ inc ++ "\""- | inc <- flags ghcOptFfiIncludes, flagFfiIncludes implInfo ] , [ "-optc" ++ opt | opt <- flags ghcOptCcOptions ] -----------------@@ -384,6 +411,7 @@ , [ "-dynload deploy" | not (null (flags ghcOptRPaths)) ] , concat [ [ "-optl-Wl,-rpath," ++ dir] | dir <- flags ghcOptRPaths ]+ , [ modDefFile | modDefFile <- flags ghcOptLinkModDefFiles ] ------------- -- Packages@@ -395,18 +423,29 @@ , this_arg ] | this_arg <- flag ghcOptThisUnitId ] + , concat [ ["-this-component-id", display this_cid ]+ | this_cid <- flag ghcOptThisComponentId ]++ , if null (ghcOptInstantiatedWith opts)+ then []+ else "-instantiated-with"+ : intercalate "," (map (\(n,m) -> display n ++ "="+ ++ display m)+ (ghcOptInstantiatedWith opts))+ : []++ , concat [ ["-fno-code", "-fwrite-interface"] | flagBool ghcOptNoCode ]+ , [ "-hide-all-packages" | flagBool ghcOptHideAllPackages ]+ , [ "-Wmissing-home-modules" | flagBool ghcOptWarnMissingHomeModules ] , [ "-no-auto-link-packages" | flagBool ghcOptNoAutoLinkPackages ] , packageDbArgs implInfo (ghcOptPackageDBs opts) - , concat $ if flagPackageId implInfo- then let space "" = ""- space xs = ' ' : xs- in [ ["-package-id", display ipkgid ++ space (display rns)]- | (ipkgid,_,rns) <- flags ghcOptPackages ]- else [ ["-package", display pkgid]- | (_,pkgid,_) <- flags ghcOptPackages ]+ , concat $ let space "" = ""+ space xs = ' ' : xs+ in [ ["-package-id", display ipkgid ++ space (display rns)]+ | (ipkgid,rns) <- flags ghcOptPackages ] ---------------------------- -- Language and extensions@@ -415,7 +454,7 @@ then [ "-X" ++ display lang | lang <- flag ghcOptLanguage ] else [] - , [ case M.lookup ext (ghcOptExtensionMap opts) of+ , [ case Map.lookup ext (ghcOptExtensionMap opts) of Just arg -> arg Nothing -> error $ "Distribution.Simple.Program.GHC.renderGhcOptions: " ++ display ext ++ " not present in ghcOptExtensionMap."@@ -500,7 +539,7 @@ instance Monoid GhcOptions where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup GhcOptions where (<>) = gmappend
Distribution/Simple/Program/HcPkg.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Program.HcPkg@@ -10,13 +13,15 @@ -- Currently only GHC, GHCJS and LHC have hc-pkg programs. module Distribution.Simple.Program.HcPkg (+ -- * Types HcPkgInfo(..),+ RegisterOptions(..),+ defaultRegisterOptions, + -- * Actions init, invoke, register,- reregister,- registerMultiInstance, unregister, recache, expose,@@ -28,8 +33,6 @@ -- * Program invocations initInvocation, registerInvocation,- reregisterInvocation,- registerMultiInstanceInvocation, unregisterInvocation, recacheInvocation, exposeInvocation,@@ -39,20 +42,22 @@ listInvocation, ) where -import Distribution.Package hiding (installedUnitId)+import Prelude ()+import Distribution.Compat.Prelude hiding (init)+ import Distribution.InstalledPackageInfo import Distribution.ParseUtils import Distribution.Simple.Compiler import Distribution.Simple.Program.Types import Distribution.Simple.Program.Run-import Distribution.Text import Distribution.Simple.Utils+import Distribution.Text+import Distribution.Types.ComponentId+import Distribution.Types.PackageId+import Distribution.Types.UnitId import Distribution.Verbosity import Distribution.Compat.Exception -import Prelude hiding (init)-import Data.Char- ( isSpace ) import Data.List ( stripPrefix ) import System.FilePath as FilePath@@ -72,8 +77,10 @@ , requiresDirDbs :: Bool -- ^ requires directory style package databases , nativeMultiInstance :: Bool -- ^ supports --enable-multi-instance flag , recacheMultiInstance :: Bool -- ^ supports multi-instance via recache+ , suppressFilesCheck :: Bool -- ^ supports --force-files or equivalent } + -- | Call @hc-pkg@ to initialise a package database at the location {path}. -- -- > hc-pkg init {path}@@ -96,39 +103,50 @@ args = packageDbStackOpts hpi dbStack ++ extraArgs invocation = programInvocation (hcPkgProgram hpi) args +-- | Additional variations in the behaviour for 'register'.+data RegisterOptions = RegisterOptions {+ -- | Allows re-registering \/ overwriting an existing package+ registerAllowOverwrite :: Bool,++ -- | Insist on the ability to register multiple instances of a+ -- single version of a single package. This will fail if the @hc-pkg@+ -- does not support it, see 'nativeMultiInstance' and+ -- 'recacheMultiInstance'.+ registerMultiInstance :: Bool,++ -- | Require that no checks are performed on the existence of package+ -- files mentioned in the registration info. This must be used if+ -- registering prior to putting the files in their final place. This will+ -- fail if the @hc-pkg@ does not support it, see 'suppressFilesCheck'.+ registerSuppressFilesCheck :: Bool+ }++-- | Defaults are @True@, @False@ and @False@+defaultRegisterOptions :: RegisterOptions+defaultRegisterOptions = RegisterOptions {+ registerAllowOverwrite = True,+ registerMultiInstance = False,+ registerSuppressFilesCheck = False+ }+ -- | Call @hc-pkg@ to register a package. -- -- > hc-pkg register {filename | -} [--user | --global | --package-db] -- register :: HcPkgInfo -> Verbosity -> PackageDBStack- -> Either FilePath- InstalledPackageInfo+ -> InstalledPackageInfo+ -> RegisterOptions -> IO ()-register hpi verbosity packagedb pkgFile =- runProgramInvocation verbosity- (registerInvocation hpi verbosity packagedb pkgFile)----- | Call @hc-pkg@ to re-register a package.------ > hc-pkg register {filename | -} [--user | --global | --package-db]----reregister :: HcPkgInfo -> Verbosity -> PackageDBStack- -> Either FilePath- InstalledPackageInfo- -> IO ()-reregister hpi verbosity packagedb pkgFile =- runProgramInvocation verbosity- (reregisterInvocation hpi verbosity packagedb pkgFile)+register hpi verbosity packagedbs pkgInfo registerOptions+ | registerMultiInstance registerOptions+ , not (nativeMultiInstance hpi || recacheMultiInstance hpi)+ = die' verbosity $ "HcPkg.register: the compiler does not support "+ ++ "registering multiple instances of packages." -registerMultiInstance :: HcPkgInfo -> Verbosity- -> PackageDBStack- -> InstalledPackageInfo- -> IO ()-registerMultiInstance hpi verbosity packagedbs pkgInfo- | nativeMultiInstance hpi- = runProgramInvocation verbosity- (registerMultiInstanceInvocation hpi verbosity packagedbs (Right pkgInfo))+ | registerSuppressFilesCheck registerOptions+ , not (suppressFilesCheck hpi)+ = die' verbosity $ "HcPkg.register: the compiler does not support "+ ++ "suppressing checks on files." -- This is a trick. Older versions of GHC do not support the -- --enable-multi-instance flag for ghc-pkg register but it turns out that@@ -139,31 +157,33 @@ -- to write the package registration file directly into the package db and -- then call hc-pkg recache. --- | recacheMultiInstance hpi+ | registerMultiInstance registerOptions+ , recacheMultiInstance hpi = do let pkgdb = last packagedbs- writeRegistrationFileDirectly hpi pkgdb pkgInfo+ writeRegistrationFileDirectly verbosity hpi pkgdb pkgInfo recache hpi verbosity pkgdb | otherwise- = die $ "HcPkg.registerMultiInstance: the compiler does not support "- ++ "registering multiple instances of packages."+ = runProgramInvocation verbosity+ (registerInvocation hpi verbosity packagedbs pkgInfo registerOptions) -writeRegistrationFileDirectly :: HcPkgInfo+writeRegistrationFileDirectly :: Verbosity+ -> HcPkgInfo -> PackageDB -> InstalledPackageInfo -> IO ()-writeRegistrationFileDirectly hpi (SpecificPackageDB dir) pkgInfo+writeRegistrationFileDirectly verbosity hpi (SpecificPackageDB dir) pkgInfo | supportsDirDbs hpi = do let pkgfile = dir </> display (installedUnitId pkgInfo) <.> "conf" writeUTF8File pkgfile (showInstalledPackageInfo pkgInfo) | otherwise- = die $ "HcPkg.writeRegistrationFileDirectly: compiler does not support dir style package dbs"+ = die' verbosity $ "HcPkg.writeRegistrationFileDirectly: compiler does not support dir style package dbs" -writeRegistrationFileDirectly _ _ _ =+writeRegistrationFileDirectly verbosity _ _ _ = -- We don't know here what the dir for the global or user dbs are, -- if that's needed it'll require a bit more plumbing to support.- die $ "HcPkg.writeRegistrationFileDirectly: only supports SpecificPackageDB for now"+ die' verbosity $ "HcPkg.writeRegistrationFileDirectly: only supports SpecificPackageDB for now" -- | Call @hc-pkg@ to unregister a package@@ -208,7 +228,7 @@ case parsePackages output of Left ok -> return ok- _ -> die $ "failed to parse output of '"+ _ -> die' verbosity $ "failed to parse output of '" ++ programId (hcPkgProgram hpi) ++ " describe " ++ display pid ++ "'" -- | Call @hc-pkg@ to hide a package.@@ -229,11 +249,12 @@ output <- getProgramInvocationOutput verbosity (dumpInvocation hpi verbosity packagedb)- `catchIO` \_ -> die $ programId (hcPkgProgram hpi) ++ " dump failed"+ `catchIO` \e -> die' verbosity $ programId (hcPkgProgram hpi) ++ " dump failed: "+ ++ displayException e case parsePackages output of Left ok -> return ok- _ -> die $ "failed to parse output of '"+ _ -> die' verbosity $ "failed to parse output of '" ++ programId (hcPkgProgram hpi) ++ " dump'" parsePackages :: String -> Either [InstalledPackageInfo] [PError]@@ -304,13 +325,15 @@ -- Older installed package info files did not have the installedUnitId -- field, so if it is missing then we fill it as the source package ID.+-- NB: Internal libraries not supported. setUnitId :: InstalledPackageInfo -> InstalledPackageInfo setUnitId pkginfo@InstalledPackageInfo {- installedUnitId = SimpleUnitId (ComponentId ""),- sourcePackageId = pkgid- }+ installedUnitId = uid,+ sourcePackageId = pid+ } | unUnitId uid == "" = pkginfo {- installedUnitId = mkLegacyUnitId pkgid+ installedUnitId = mkLegacyUnitId pid,+ installedComponentId_ = mkComponentId (display pid) } setUnitId pkginfo = pkginfo @@ -328,15 +351,15 @@ output <- getProgramInvocationOutput verbosity (listInvocation hpi verbosity packagedb)- `catchIO` \_ -> die $ programId (hcPkgProgram hpi) ++ " list failed"+ `catchIO` \_ -> die' verbosity $ programId (hcPkgProgram hpi) ++ " list failed" case parsePackageIds output of Just ok -> return ok- _ -> die $ "failed to parse output of '"+ _ -> die' verbosity $ "failed to parse output of '" ++ programId (hcPkgProgram hpi) ++ " list'" where- parsePackageIds = sequence . map simpleParse . words+ parsePackageIds = traverse simpleParse . words -------------------------- -- The program invocations@@ -349,35 +372,30 @@ args = ["init", path] ++ verbosityOpts hpi verbosity -registerInvocation, reregisterInvocation, registerMultiInstanceInvocation+registerInvocation :: HcPkgInfo -> Verbosity -> PackageDBStack- -> Either FilePath InstalledPackageInfo+ -> InstalledPackageInfo+ -> RegisterOptions -> ProgramInvocation-registerInvocation = registerInvocation' "register" False-reregisterInvocation = registerInvocation' "update" False-registerMultiInstanceInvocation = registerInvocation' "update" True--registerInvocation' :: String -> Bool- -> HcPkgInfo -> Verbosity -> PackageDBStack- -> Either FilePath InstalledPackageInfo- -> ProgramInvocation-registerInvocation' cmdname multiInstance hpi- verbosity packagedbs pkgFileOrInfo =- case pkgFileOrInfo of- Left pkgFile ->- programInvocation (hcPkgProgram hpi) (args pkgFile)-- Right pkgInfo ->- (programInvocation (hcPkgProgram hpi) (args "-")) {- progInvokeInput = Just (showInstalledPackageInfo pkgInfo),- progInvokeInputEncoding = IOEncodingUTF8- }+registerInvocation hpi verbosity packagedbs pkgInfo registerOptions =+ (programInvocation (hcPkgProgram hpi) (args "-")) {+ progInvokeInput = Just (showInstalledPackageInfo pkgInfo),+ progInvokeInputEncoding = IOEncodingUTF8+ } where+ cmdname+ | registerAllowOverwrite registerOptions = "update"+ | registerMultiInstance registerOptions = "update"+ | otherwise = "register"+ args file = [cmdname, file] ++ (if noPkgDbStack hpi then [packageDbOpts hpi (last packagedbs)] else packageDbStackOpts hpi packagedbs)- ++ [ "--enable-multi-instance" | multiInstance ]+ ++ [ "--enable-multi-instance"+ | registerMultiInstance registerOptions ]+ ++ [ "--force-files"+ | registerSuppressFilesCheck registerOptions ] ++ verbosityOpts hpi verbosity unregisterInvocation :: HcPkgInfo -> Verbosity -> PackageDB -> PackageId
Distribution/Simple/Program/Hpc.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Program.Hpc@@ -13,6 +16,9 @@ , union ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.ModuleName import Distribution.Simple.Program.Run import Distribution.Simple.Program.Types@@ -54,7 +60,7 @@ runProgramInvocation verbosity (markupInvocation hpc tixFile hpcDirs' destDir excluded) where- version07 = Version [0, 7] []+ version07 = mkVersion [0, 7] (passedDirs, droppedDirs) = splitAt 1 hpcDirs markupInvocation :: ConfiguredProgram
Distribution/Simple/Program/Internal.hs view
@@ -11,8 +11,8 @@ stripExtractVersion, ) where -import Data.Char (isDigit)-import Data.List (isPrefixOf, isSuffixOf)+import Prelude ()+import Distribution.Compat.Prelude -- | Extract the version number from the output of 'strip --version'. --
Distribution/Simple/Program/Ld.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Program.Ld@@ -11,6 +14,9 @@ module Distribution.Simple.Program.Ld ( combineObjectFiles, ) where++import Prelude ()+import Distribution.Compat.Prelude import Distribution.Simple.Program.Types ( ConfiguredProgram(..) )
Distribution/Simple/Program/Run.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Program.Run@@ -23,16 +26,16 @@ getEffectiveEnvironment, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.Program.Types import Distribution.Simple.Utils import Distribution.Verbosity import Distribution.Compat.Environment -import Data.List- ( foldl', unfoldr ) import qualified Data.Map as Map-import Control.Monad- ( when )+import System.FilePath import System.Exit ( ExitCode(..), exitWith ) @@ -47,6 +50,8 @@ progInvokePath :: FilePath, progInvokeArgs :: [String], progInvokeEnv :: [(String, Maybe String)],+ -- Extra paths to add to PATH+ progInvokePathEnv :: [FilePath], progInvokeCwd :: Maybe FilePath, progInvokeInput :: Maybe String, progInvokeInputEncoding :: IOEncoding,@@ -62,6 +67,7 @@ progInvokePath = "", progInvokeArgs = [], progInvokeEnv = [],+ progInvokePathEnv = [], progInvokeCwd = Nothing, progInvokeInput = Nothing, progInvokeInputEncoding = IOEncodingText,@@ -92,6 +98,7 @@ progInvokePath = path, progInvokeArgs = args, progInvokeEnv = [],+ progInvokePathEnv = [], progInvokeCwd = Nothing, progInvokeInput = Nothing } =@@ -102,10 +109,12 @@ progInvokePath = path, progInvokeArgs = args, progInvokeEnv = envOverrides,+ progInvokePathEnv = extraPath, progInvokeCwd = mcwd, progInvokeInput = Nothing } = do- menv <- getEffectiveEnvironment envOverrides+ pathOverride <- getExtraPathEnv envOverrides extraPath+ menv <- getEffectiveEnvironment (envOverrides ++ pathOverride) exitCode <- rawSystemIOWithEnv verbosity path args mcwd menv@@ -118,17 +127,19 @@ progInvokePath = path, progInvokeArgs = args, progInvokeEnv = envOverrides,+ progInvokePathEnv = extraPath, progInvokeCwd = mcwd, progInvokeInput = Just inputStr, progInvokeInputEncoding = encoding } = do- menv <- getEffectiveEnvironment envOverrides+ pathOverride <- getExtraPathEnv envOverrides extraPath+ menv <- getEffectiveEnvironment (envOverrides ++ pathOverride) (_, errors, exitCode) <- rawSystemStdInOut verbosity path args mcwd menv (Just input) True when (exitCode /= ExitSuccess) $- die $ "'" ++ path ++ "' exited with an error:\n" ++ errors+ die' verbosity $ "'" ++ path ++ "' exited with an error:\n" ++ errors where input = case encoding of IOEncodingText -> (inputStr, False)@@ -142,6 +153,7 @@ progInvokePath = path, progInvokeArgs = args, progInvokeEnv = envOverrides,+ progInvokePathEnv = extraPath, progInvokeCwd = mcwd, progInvokeInput = minputStr, progInvokeOutputEncoding = encoding@@ -149,13 +161,14 @@ let utf8 = case encoding of IOEncodingUTF8 -> True; _ -> False decode | utf8 = fromUTF8 . normaliseLineEndings | otherwise = id- menv <- getEffectiveEnvironment envOverrides+ pathOverride <- getExtraPathEnv envOverrides extraPath+ menv <- getEffectiveEnvironment (envOverrides ++ pathOverride) (output, errors, exitCode) <- rawSystemStdInOut verbosity path args mcwd menv input utf8 when (exitCode /= ExitSuccess) $- die $ "'" ++ path ++ "' exited with an error:\n" ++ errors+ die' verbosity $ "'" ++ path ++ "' exited with an error:\n" ++ errors return (decode output) where input =@@ -167,10 +180,24 @@ IOEncodingUTF8 -> (toUTF8 inputStr, True) -- use binary mode for utf8 +getExtraPathEnv :: [(String, Maybe String)] -> [FilePath] -> NoCallStackIO [(String, Maybe String)]+getExtraPathEnv _ [] = return []+getExtraPathEnv env extras = do+ mb_path <- case lookup "PATH" env of+ Just x -> return x+ Nothing -> lookupEnv "PATH"+ let extra = intercalate [searchPathSeparator] extras+ path' = case mb_path of+ Nothing -> extra+ Just path -> extra ++ searchPathSeparator : path+ return [("PATH", Just path')]+ -- | Return the current environment extended with the given overrides.+-- If an entry is specified twice in @overrides@, the second entry takes+-- precedence. -- getEffectiveEnvironment :: [(String, Maybe String)]- -> IO (Maybe [(String, String)])+ -> NoCallStackIO (Maybe [(String, String)]) getEffectiveEnvironment [] = return Nothing getEffectiveEnvironment overrides = fmap (Just . Map.toList . apply overrides . Map.fromList) getEnvironment
Distribution/Simple/Program/Script.hs view
@@ -16,11 +16,11 @@ invocationAsBatchFile, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.Program.Run import Distribution.System--import Data.Maybe- ( maybeToList ) -- | Generate a system script, either POSIX shell script or Windows batch file -- as appropriate for the given system.
Distribution/Simple/Program/Strip.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Program.Strip@@ -10,19 +13,21 @@ module Distribution.Simple.Program.Strip (stripLib, stripExe) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.Program import Distribution.Simple.Utils import Distribution.System import Distribution.Verbosity import Distribution.Version -import Control.Monad (unless) import System.FilePath (takeBaseName) -runStrip :: Verbosity -> ProgramConfiguration -> FilePath -> [String] -> IO ()-runStrip verbosity progConf path args =- case lookupProgram stripProgram progConf of- Just strip -> rawSystemProgram verbosity strip (path:args)+runStrip :: Verbosity -> ProgramDb -> FilePath -> [String] -> IO ()+runStrip verbosity progDb path args =+ case lookupProgram stripProgram progDb of+ Just strip -> runProgram verbosity strip (args ++ [path]) Nothing -> unless (buildOS == Windows) $ -- Don't bother warning on windows, we don't expect them to -- have the strip program anyway.@@ -30,9 +35,9 @@ ++ (takeBaseName path) ++ "' (missing the 'strip' program)" -stripExe :: Verbosity -> Platform -> ProgramConfiguration -> FilePath -> IO ()-stripExe verbosity (Platform _arch os) conf path =- runStrip verbosity conf path args+stripExe :: Verbosity -> Platform -> ProgramDb -> FilePath -> IO ()+stripExe verbosity (Platform _arch os) progdb path =+ runStrip verbosity progdb path args where args = case os of OSX -> ["-x"] -- By default, stripping the ghc binary on at least@@ -41,8 +46,8 @@ -- The -x flag fixes that. _ -> [] -stripLib :: Verbosity -> Platform -> ProgramConfiguration -> FilePath -> IO ()-stripLib verbosity (Platform arch os) conf path = do+stripLib :: Verbosity -> Platform -> ProgramDb -> FilePath -> IO ()+stripLib verbosity (Platform arch os) progdb path = do case os of OSX -> -- '--strip-unneeded' is not supported on OS X, iOS, AIX, or -- Solaris. See #1630.@@ -57,14 +62,14 @@ Linux | arch == I386 -> -- Versions of 'strip' on 32-bit Linux older than 2.18 are -- broken. See #2339.- let okVersion = orLaterVersion (Version [2,18] [])- in case programVersion =<< lookupProgram stripProgram conf of+ let okVersion = orLaterVersion (mkVersion [2,18])+ in case programVersion =<< lookupProgram stripProgram progdb of Just v | withinRange v okVersion ->- runStrip verbosity conf path args+ runStrip verbosity progdb path args _ -> warn verbosity $ "Unable to strip library '" ++ (takeBaseName path) ++ "' (version of 'strip' too old; " ++ "requires >= 2.18 on 32-bit Linux)"- _ -> runStrip verbosity conf path args+ _ -> runStrip verbosity progdb path args where args = ["--strip-unneeded"]
Distribution/Simple/Program/Types.hs view
@@ -1,4 +1,7 @@ {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE DeriveDataTypeable #-} ----------------------------------------------------------------------------- -- |@@ -32,13 +35,14 @@ simpleConfiguredProgram, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.Program.Find import Distribution.Version import Distribution.Verbosity-import Distribution.Compat.Binary import qualified Data.Map as Map-import GHC.Generics (Generic) -- | Represents a program which can be configured. --@@ -72,6 +76,8 @@ -- it could add args, or environment vars. programPostConf :: Verbosity -> ConfiguredProgram -> IO ConfiguredProgram }+instance Show Program where+ show (Program name _ _ _) = "Program: " ++ name type ProgArg = String @@ -119,7 +125,7 @@ -- programMonitorFiles :: [FilePath] }- deriving (Eq, Generic, Read, Show)+ deriving (Eq, Generic, Read, Show, Typeable) instance Binary ConfiguredProgram @@ -148,7 +154,7 @@ -- By default we'll just search for it in the path and not try to find the -- version name. You can override these behaviours if necessary, eg: ----- > simpleProgram "foo" { programFindLocation = ... , programFindVersion ... }+-- > (simpleProgram "foo") { programFindLocation = ... , programFindVersion ... } -- simpleProgram :: String -> Program simpleProgram name = Program {
Distribution/Simple/Register.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Register@@ -27,28 +30,43 @@ register, unregister, + internalPackageDBPath,+ initPackageDB, doesPackageDBExist, createPackageDB, deletePackageDB, + abiHash, invokeHcPkg, registerPackage,+ HcPkg.RegisterOptions(..),+ HcPkg.defaultRegisterOptions, generateRegistrationInfo, inplaceInstalledPackageInfo, absoluteInstalledPackageInfo, generalInstalledPackageInfo, ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.TargetInfo+import Distribution.Types.LocalBuildInfo+import Distribution.Types.ComponentLocalBuildInfo+ import Distribution.Simple.LocalBuildInfo import Distribution.Simple.BuildPaths+import Distribution.Simple.BuildTarget import qualified Distribution.Simple.GHC as GHC import qualified Distribution.Simple.GHCJS as GHCJS import qualified Distribution.Simple.LHC as LHC import qualified Distribution.Simple.UHC as UHC import qualified Distribution.Simple.HaskellSuite as HaskellSuite+import qualified Distribution.Simple.PackageIndex as Index +import Distribution.Backpack.DescribeUnitId import Distribution.Simple.Compiler import Distribution.Simple.Program import Distribution.Simple.Program.Script@@ -59,21 +77,18 @@ import qualified Distribution.InstalledPackageInfo as IPI import Distribution.InstalledPackageInfo (InstalledPackageInfo) import Distribution.Simple.Utils+import Distribution.Utils.MapAccum import Distribution.System import Distribution.Text+import Distribution.Types.ComponentName import Distribution.Verbosity as Verbosity+import Distribution.Version+import Distribution.Compat.Graph (IsNode(nodeKey)) import System.FilePath ((</>), (<.>), isAbsolute) import System.Directory- ( getCurrentDirectory, removeDirectoryRecursive, removeFile- , doesDirectoryExist, doesFileExist ) -import Data.Version-import Control.Monad (when)-import Data.Maybe- ( isJust, fromMaybe, maybeToList )-import Data.List- ( partition, nub )+import Data.List (partition) import qualified Data.ByteString.Lazy.Char8 as BS.Char8 -- -----------------------------------------------------------------------------@@ -82,26 +97,80 @@ register :: PackageDescription -> LocalBuildInfo -> RegisterFlags -- ^Install in the user's database?; verbose -> IO ()-register pkg@PackageDescription { library = Just lib } lbi regFlags- = do- let clbi = getComponentLocalBuildInfo lbi CLibName+register pkg_descr lbi0 flags =+ -- Duncan originally asked for us to not register/install files+ -- when there was no public library. But with per-component+ -- configure, we legitimately need to install internal libraries+ -- so that we can get them. So just unconditionally install.+ doRegister+ where+ doRegister = do+ targets <- readTargetInfos verbosity pkg_descr lbi0 (regArgs flags) + -- It's important to register in build order, because ghc-pkg+ -- will complain if a dependency is not registered.+ let componentsToRegister+ = neededTargetsInBuildOrder' pkg_descr lbi0 (map nodeKey targets)++ (_, ipi_mbs) <-+ mapAccumM `flip` installedPkgs lbi0 `flip` componentsToRegister $ \index tgt ->+ case targetComponent tgt of+ CLib lib -> do+ let clbi = targetCLBI tgt+ lbi = lbi0 { installedPkgs = index }+ ipi <- generateOne pkg_descr lib lbi clbi flags+ return (Index.insert ipi index, Just ipi)+ _ -> return (index, Nothing)++ registerAll pkg_descr lbi0 flags (catMaybes ipi_mbs)+ where+ verbosity = fromFlag (regVerbosity flags)++generateOne :: PackageDescription -> Library -> LocalBuildInfo -> ComponentLocalBuildInfo+ -> RegisterFlags+ -> IO InstalledPackageInfo+generateOne pkg lib lbi clbi regFlags+ = do absPackageDBs <- absolutePackageDBPaths packageDbs installedPkgInfo <- generateRegistrationInfo verbosity pkg lib lbi clbi inplace reloc distPref (registrationPackageDB absPackageDBs)+ info verbosity (IPI.showInstalledPackageInfo installedPkgInfo)+ return installedPkgInfo+ where+ inplace = fromFlag (regInPlace regFlags)+ reloc = relocatable lbi+ -- FIXME: there's really no guarantee this will work.+ -- registering into a totally different db stack can+ -- fail if dependencies cannot be satisfied.+ packageDbs = nub $ withPackageDB lbi+ ++ maybeToList (flagToMaybe (regPackageDB regFlags))+ distPref = fromFlag (regDistPref regFlags)+ verbosity = fromFlag (regVerbosity regFlags) +registerAll :: PackageDescription -> LocalBuildInfo -> RegisterFlags+ -> [InstalledPackageInfo]+ -> IO ()+registerAll pkg lbi regFlags ipis+ = do when (fromFlag (regPrintId regFlags)) $ do- putStrLn (display (IPI.installedUnitId installedPkgInfo))+ for_ ipis $ \installedPkgInfo ->+ -- Only print the public library's IPI+ when (packageId installedPkgInfo == packageId pkg+ && IPI.sourceLibName installedPkgInfo == Nothing) $+ putStrLn (display (IPI.installedUnitId installedPkgInfo)) -- Three different modes: case () of- _ | modeGenerateRegFile -> writeRegistrationFile installedPkgInfo- | modeGenerateRegScript -> writeRegisterScript installedPkgInfo+ _ | modeGenerateRegFile -> writeRegistrationFileOrDirectory+ | modeGenerateRegScript -> writeRegisterScript | otherwise -> do- setupMessage verbosity "Registering" (packageId pkg)- registerPackage verbosity (compiler lbi) (withPrograms lbi) False- packageDbs installedPkgInfo+ for_ ipis $ \ipi -> do+ setupMessage' verbosity "Registering" (packageId pkg)+ (libraryComponentName (IPI.sourceLibName ipi))+ (Just (IPI.instantiatedWith ipi))+ registerPackage verbosity (compiler lbi) (withPrograms lbi)+ packageDbs ipi HcPkg.defaultRegisterOptions where modeGenerateRegFile = isJust (flagToMaybe (regGenPkgConf regFlags))@@ -110,32 +179,39 @@ modeGenerateRegScript = fromFlag (regGenScript regFlags) - inplace = fromFlag (regInPlace regFlags)- reloc = relocatable lbi -- FIXME: there's really no guarantee this will work. -- registering into a totally different db stack can -- fail if dependencies cannot be satisfied. packageDbs = nub $ withPackageDB lbi ++ maybeToList (flagToMaybe (regPackageDB regFlags))- distPref = fromFlag (regDistPref regFlags) verbosity = fromFlag (regVerbosity regFlags) - writeRegistrationFile installedPkgInfo = do- notice verbosity ("Creating package registration file: " ++ regFile)- writeUTF8File regFile (IPI.showInstalledPackageInfo installedPkgInfo)+ writeRegistrationFileOrDirectory = do+ -- Handles overwriting both directory and file+ deletePackageDB regFile+ case ipis of+ [installedPkgInfo] -> do+ info verbosity ("Creating package registration file: " ++ regFile)+ writeUTF8File regFile (IPI.showInstalledPackageInfo installedPkgInfo)+ _ -> do+ info verbosity ("Creating package registration directory: " ++ regFile)+ createDirectory regFile+ let num_ipis = length ipis+ lpad m xs = replicate (m - length ys) '0' ++ ys+ where ys = take m xs+ number i = lpad (length (show num_ipis)) (show i)+ for_ (zip ([1..] :: [Int]) ipis) $ \(i, installedPkgInfo) ->+ writeUTF8File (regFile </> (number i ++ "-" ++ display (IPI.installedUnitId installedPkgInfo)))+ (IPI.showInstalledPackageInfo installedPkgInfo) - writeRegisterScript installedPkgInfo =+ writeRegisterScript = case compilerFlavor (compiler lbi) of JHC -> notice verbosity "Registration scripts not needed for jhc" UHC -> notice verbosity "Registration scripts not needed for uhc"- _ -> withHcPkg+ _ -> withHcPkg verbosity "Registration scripts are not implemented for this compiler" (compiler lbi) (withPrograms lbi)- (writeHcPkgRegisterScript verbosity installedPkgInfo packageDbs)--register _ _ regFlags = notice verbosity "No package to register"- where- verbosity = fromFlag (regVerbosity regFlags)+ (writeHcPkgRegisterScript verbosity ipis packageDbs) generateRegistrationInfo :: Verbosity@@ -152,30 +228,46 @@ --TODO: eliminate pwd! pwd <- getCurrentDirectory - --TODO: the method of setting the UnitId is compiler specific- -- this aspect should be delegated to a per-compiler helper.- let comp = compiler lbi- abi_hash <-- case compilerFlavor comp of- GHC | compilerVersion comp >= Version [6,11] [] -> do- fmap AbiHash $ GHC.libAbiHash verbosity pkg lbi lib clbi- GHCJS -> do- fmap AbiHash $ GHCJS.libAbiHash verbosity pkg lbi lib clbi- _ -> return (AbiHash "")- installedPkgInfo <- if inplace+ -- NB: With an inplace installation, the user may run './Setup+ -- build' to update the library files, without reregistering.+ -- In this case, it is critical that the ABI hash not flip. then return (inplaceInstalledPackageInfo pwd distPref- pkg abi_hash lib lbi clbi)- else if reloc- then relocRegistrationInfo verbosity- pkg lib lbi clbi abi_hash packageDb- else return (absoluteInstalledPackageInfo- pkg abi_hash lib lbi clbi)+ pkg (mkAbiHash "inplace") lib lbi clbi)+ else do+ abi_hash <- abiHash verbosity pkg distPref lbi lib clbi+ if reloc+ then relocRegistrationInfo verbosity+ pkg lib lbi clbi abi_hash packageDb+ else return (absoluteInstalledPackageInfo+ pkg abi_hash lib lbi clbi) - return installedPkgInfo{ IPI.abiHash = abi_hash }+ return installedPkgInfo +-- | Compute the 'AbiHash' of a library that we built inplace.+abiHash :: Verbosity+ -> PackageDescription+ -> FilePath+ -> LocalBuildInfo+ -> Library+ -> ComponentLocalBuildInfo+ -> IO AbiHash+abiHash verbosity pkg distPref lbi lib clbi =+ case compilerFlavor comp of+ GHC | compilerVersion comp >= mkVersion [6,11] -> do+ fmap mkAbiHash $ GHC.libAbiHash verbosity pkg lbi' lib clbi+ GHCJS -> do+ fmap mkAbiHash $ GHCJS.libAbiHash verbosity pkg lbi' lib clbi+ _ -> return (mkAbiHash "")+ where+ comp = compiler lbi+ lbi' = lbi {+ withPackageDB = withPackageDB lbi+ ++ [SpecificPackageDB (internalPackageDBPath lbi distPref)]+ }+ relocRegistrationInfo :: Verbosity -> PackageDescription -> Library@@ -189,15 +281,16 @@ GHC -> do fs <- GHC.pkgRoot verbosity lbi packageDb return (relocatableInstalledPackageInfo pkg abi_hash lib lbi clbi fs)- _ -> die "Distribution.Simple.Register.relocRegistrationInfo: \+ _ -> die' verbosity+ "Distribution.Simple.Register.relocRegistrationInfo: \ \not implemented for this compiler" -initPackageDB :: Verbosity -> Compiler -> ProgramConfiguration -> FilePath -> IO ()+initPackageDB :: Verbosity -> Compiler -> ProgramDb -> FilePath -> IO () initPackageDB verbosity comp progdb dbPath = createPackageDB verbosity comp progdb False dbPath -- | Create an empty package DB at the specified location.-createPackageDB :: Verbosity -> Compiler -> ProgramConfiguration -> Bool+createPackageDB :: Verbosity -> Compiler -> ProgramDb -> Bool -> FilePath -> IO () createPackageDB verbosity comp progdb preferCompat dbPath = case compilerFlavor comp of@@ -206,10 +299,11 @@ LHC -> HcPkg.init (LHC.hcPkgInfo progdb) verbosity False dbPath UHC -> return () HaskellSuite _ -> HaskellSuite.initPackageDB verbosity progdb dbPath- _ -> die $ "Distribution.Simple.Register.createPackageDB: "+ _ -> die' verbosity $+ "Distribution.Simple.Register.createPackageDB: " ++ "not implemented for this compiler" -doesPackageDBExist :: FilePath -> IO Bool+doesPackageDBExist :: FilePath -> NoCallStackIO Bool doesPackageDBExist dbPath = do -- currently one impl for all compiler flavours, but could change if needed dir_exists <- doesDirectoryExist dbPath@@ -217,7 +311,7 @@ then return True else doesFileExist dbPath -deletePackageDB :: FilePath -> IO ()+deletePackageDB :: FilePath -> NoCallStackIO () deletePackageDB dbPath = do -- currently one impl for all compiler flavours, but could change if needed dir_exists <- doesDirectoryExist dbPath@@ -228,53 +322,58 @@ -- | Run @hc-pkg@ using a given package DB stack, directly forwarding the -- provided command-line arguments to it.-invokeHcPkg :: Verbosity -> Compiler -> ProgramConfiguration -> PackageDBStack+invokeHcPkg :: Verbosity -> Compiler -> ProgramDb -> PackageDBStack -> [String] -> IO ()-invokeHcPkg verbosity comp conf dbStack extraArgs =- withHcPkg "invokeHcPkg" comp conf+invokeHcPkg verbosity comp progdb dbStack extraArgs =+ withHcPkg verbosity "invokeHcPkg" comp progdb (\hpi -> HcPkg.invoke hpi verbosity dbStack extraArgs) -withHcPkg :: String -> Compiler -> ProgramConfiguration+withHcPkg :: Verbosity -> String -> Compiler -> ProgramDb -> (HcPkg.HcPkgInfo -> IO a) -> IO a-withHcPkg name comp conf f =+withHcPkg verbosity name comp progdb f = case compilerFlavor comp of- GHC -> f (GHC.hcPkgInfo conf)- GHCJS -> f (GHCJS.hcPkgInfo conf)- LHC -> f (LHC.hcPkgInfo conf)- _ -> die ("Distribution.Simple.Register." ++ name ++ ":\+ GHC -> f (GHC.hcPkgInfo progdb)+ GHCJS -> f (GHCJS.hcPkgInfo progdb)+ LHC -> f (LHC.hcPkgInfo progdb)+ _ -> die' verbosity ("Distribution.Simple.Register." ++ name ++ ":\ \not implemented for this compiler") registerPackage :: Verbosity -> Compiler- -> ProgramConfiguration- -> Bool+ -> ProgramDb -> PackageDBStack -> InstalledPackageInfo+ -> HcPkg.RegisterOptions -> IO ()-registerPackage verbosity comp progdb multiInstance packageDbs installedPkgInfo =+registerPackage verbosity comp progdb packageDbs installedPkgInfo registerOptions = case compilerFlavor comp of- GHC -> GHC.registerPackage verbosity progdb multiInstance packageDbs installedPkgInfo- GHCJS -> GHCJS.registerPackage verbosity progdb multiInstance packageDbs installedPkgInfo- _ | multiInstance- -> die "Registering multiple package instances is not yet supported for this compiler"- LHC -> LHC.registerPackage verbosity progdb packageDbs installedPkgInfo+ GHC -> GHC.registerPackage verbosity progdb packageDbs installedPkgInfo registerOptions+ GHCJS -> GHCJS.registerPackage verbosity progdb packageDbs installedPkgInfo registerOptions+ _ | HcPkg.registerMultiInstance registerOptions+ -> die' verbosity "Registering multiple package instances is not yet supported for this compiler"+ LHC -> LHC.registerPackage verbosity progdb packageDbs installedPkgInfo registerOptions UHC -> UHC.registerPackage verbosity comp progdb packageDbs installedPkgInfo JHC -> notice verbosity "Registering for jhc (nothing to do)" HaskellSuite {} -> HaskellSuite.registerPackage verbosity progdb packageDbs installedPkgInfo- _ -> die "Registering is not implemented for this compiler"+ _ -> die' verbosity "Registering is not implemented for this compiler" writeHcPkgRegisterScript :: Verbosity- -> InstalledPackageInfo+ -> [InstalledPackageInfo] -> PackageDBStack -> HcPkg.HcPkgInfo -> IO ()-writeHcPkgRegisterScript verbosity installedPkgInfo packageDbs hpi = do- let invocation = HcPkg.reregisterInvocation hpi Verbosity.normal- packageDbs (Right installedPkgInfo)- regScript = invocationAsSystemScript buildOS invocation+writeHcPkgRegisterScript verbosity ipis packageDbs hpi = do+ let genScript installedPkgInfo =+ let invocation = HcPkg.registerInvocation hpi Verbosity.normal+ packageDbs installedPkgInfo+ HcPkg.defaultRegisterOptions+ in invocationAsSystemScript buildOS invocation+ scripts = map genScript ipis+ -- TODO: Do something more robust here+ regScript = unlines scripts - notice verbosity ("Creating package registration script: " ++ regScriptFileName)+ info verbosity ("Creating package registration script: " ++ regScriptFileName) writeUTF8File regScriptFileName regScript setFileExecutable regScriptFileName @@ -302,8 +401,11 @@ -> InstalledPackageInfo generalInstalledPackageInfo adjustRelIncDirs pkg abi_hash lib lbi clbi installDirs = IPI.InstalledPackageInfo {- IPI.sourcePackageId = packageId pkg,+ IPI.sourcePackageId = packageId pkg, IPI.installedUnitId = componentUnitId clbi,+ IPI.installedComponentId_ = componentComponentId clbi,+ IPI.instantiatedWith = componentInstantiatedWith clbi,+ IPI.sourceLibName = libName lib, IPI.compatPackageKey = componentCompatPackageKey clbi, IPI.license = license pkg, IPI.copyright = copyright pkg,@@ -316,13 +418,12 @@ IPI.description = description pkg, IPI.category = category pkg, IPI.abiHash = abi_hash,+ IPI.indefinite = componentIsIndefinite clbi, IPI.exposed = libExposed lib, IPI.exposedModules = componentExposedModules clbi, IPI.hiddenModules = otherModules bi, IPI.trusted = IPI.trusted IPI.emptyInstalledPackageInfo, IPI.importDirs = [ libdir installDirs | hasModules ],- -- Note. the libsubdir and datasubdir templates have already been expanded- -- into libdir and datadir. IPI.libraryDirs = libdirs, IPI.libraryDynDirs = dynlibdirs, IPI.dataDir = datadir installDirs,@@ -333,7 +434,8 @@ IPI.extraGHCiLibraries = extraGHCiLibs bi, IPI.includeDirs = absinc ++ adjustRelIncDirs relinc, IPI.includes = includes bi,- IPI.depends = map fst (componentPackageDeps clbi),+ IPI.depends = depends,+ IPI.abiDepends = abi_depends, IPI.ccOptions = [], -- Note. NOT ccOptions bi! -- We don't want cc-options to be propagated -- to C compilations in other packages.@@ -346,12 +448,23 @@ } where bi = libBuildInfo lib+ --TODO: unclear what the root cause of the+ -- duplication is, but we nub it here for now:+ depends = ordNub $ map fst (componentPackageDeps clbi)+ abi_depends = map add_abi depends+ add_abi uid = IPI.AbiDependency uid abi+ where+ abi = case Index.lookupUnitId (installedPkgs lbi) uid of+ Nothing -> error $+ "generalInstalledPackageInfo: missing IPI for " ++ display uid+ Just ipi -> IPI.abiHash ipi (absinc, relinc) = partition isAbsolute (includeDirs bi)- hasModules = not $ null (libModules lib)+ hasModules = not $ null (allLibModules lib clbi) comp = compiler lbi- hasLibrary = hasModules || not (null (cSources bi))- || (not (null (jsSources bi)) &&- compilerFlavor comp == GHCJS)+ hasLibrary = (hasModules || not (null (cSources bi))+ || (not (null (jsSources bi)) &&+ compilerFlavor comp == GHCJS))+ && not (componentIsIndefinite clbi) (libdirs, dynlibdirs) | not hasLibrary = (extraLibDirs bi, [])@@ -385,11 +498,9 @@ pkg abi_hash lib lbi clbi installDirs where adjustRelativeIncludeDirs = map (inplaceDir </>)- libTargetDir- | componentUnitId clbi == localUnitId lbi = buildDir lbi- | otherwise = buildDir lbi </> display (componentUnitId clbi)+ libTargetDir = componentBuildDir lbi clbi installDirs =- (absoluteInstallDirs pkg lbi NoCopyDest) {+ (absoluteComponentInstallDirs pkg lbi (componentUnitId clbi) NoCopyDest) { libdir = inplaceDir </> libTargetDir, dynlibdir = inplaceDir </> libTargetDir, datadir = inplaceDir </> dataDir pkg,@@ -422,7 +533,7 @@ | null (installIncludes bi) = [] | otherwise = [includedir installDirs] bi = libBuildInfo lib- installDirs = absoluteInstallDirs pkg lbi NoCopyDest+ installDirs = absoluteComponentInstallDirs pkg lbi (componentUnitId clbi) NoCopyDest relocatableInstalledPackageInfo :: PackageDescription@@ -444,7 +555,7 @@ bi = libBuildInfo lib installDirs = fmap (("${pkgroot}" </>) . shortRelativePath pkgroot)- $ absoluteInstallDirs pkg lbi NoCopyDest+ $ absoluteComponentInstallDirs pkg lbi (componentUnitId clbi) NoCopyDest -- ----------------------------------------------------------------------------- -- Unregistration@@ -464,10 +575,16 @@ (BS.Char8.pack $ invocationAsSystemScript buildOS invocation) else runProgramInvocation verbosity invocation setupMessage verbosity "Unregistering" pkgid- withHcPkg "unregistering is only implemented for GHC and GHCJS"+ withHcPkg verbosity "unregistering is only implemented for GHC and GHCJS" (compiler lbi) (withPrograms lbi) unreg unregScriptFileName :: FilePath unregScriptFileName = case buildOS of Windows -> "unregister.bat" _ -> "unregister.sh"++internalPackageDBPath :: LocalBuildInfo -> FilePath -> FilePath+internalPackageDBPath lbi distPref =+ case compilerFlavor (compiler lbi) of+ UHC -> UHC.inplacePackageDbPath lbi+ _ -> distPref </> "package.conf.inplace"
Distribution/Simple/Setup.hs view
@@ -1,5 +1,7 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-} ----------------------------------------------------------------------------- -- |@@ -35,11 +37,13 @@ GlobalFlags(..), emptyGlobalFlags, defaultGlobalFlags, globalCommand, ConfigFlags(..), emptyConfigFlags, defaultConfigFlags, configureCommand, configPrograms,- AllowNewer(..), AllowNewerDep(..), isAllowNewer,+ RelaxDeps(..), RelaxedDep(..), isRelaxDeps,+ AllowNewer(..), AllowOlder(..), configAbsolutePaths, readPackageDbList, showPackageDbList, CopyFlags(..), emptyCopyFlags, defaultCopyFlags, copyCommand, InstallFlags(..), emptyInstallFlags, defaultInstallFlags, installCommand,- HaddockTarget(..), haddockTargetFromFlag,+ DoctestFlags(..), emptyDoctestFlags, defaultDoctestFlags, doctestCommand,+ HaddockTarget(..), HaddockFlags(..), emptyHaddockFlags, defaultHaddockFlags, haddockCommand, HscolourFlags(..), emptyHscolourFlags, defaultHscolourFlags, hscolourCommand, BuildFlags(..), emptyBuildFlags, defaultBuildFlags, buildCommand,@@ -56,6 +60,7 @@ CopyDest(..), configureArgs, configureOptions, configureCCompiler, configureLinker, buildOptions, haddockOptions, installDirsOptions,+ programDbOptions, programDbPaths', programConfigurationOptions, programConfigurationPaths', splitArgs, @@ -67,15 +72,21 @@ fromFlagOrDefault, flagToMaybe, flagToList,+ maybeToFlag,+ BooleanFlag(..), boolOpt, boolOpt', trueArg, falseArg, optionVerbosity, optionNumJobs, readPToMaybe ) where +import Prelude ()+import Distribution.Compat.Prelude hiding (get)+ import Distribution.Compiler import Distribution.ReadE import Distribution.Text import qualified Distribution.Compat.ReadP as Parse+import Distribution.ParseUtils (readPToMaybe) import qualified Text.PrettyPrint as Disp-import Distribution.Package+import Distribution.ModuleName import Distribution.PackageDescription hiding (Flag) import Distribution.Simple.Command hiding (boolOpt, boolOpt') import qualified Distribution.Simple.Command as Command@@ -85,16 +96,16 @@ import Distribution.Simple.InstallDirs import Distribution.Verbosity import Distribution.Utils.NubList-import Distribution.Compat.Binary (Binary)-import Distribution.Compat.Semigroup as Semi+import Distribution.Types.Dependency+import Distribution.Types.ComponentId+import Distribution.Types.Module+import Distribution.Types.PackageName -import Control.Applicative as A ( Applicative(..), (<*) )-import Control.Monad ( liftM )-import Data.List ( sort )-import Data.Maybe ( listToMaybe )-import Data.Char ( isSpace, isAlpha )-import GHC.Generics ( Generic )+import Distribution.Compat.Stack+import Distribution.Compat.Semigroup (Last' (..)) +import Data.Function (on)+ -- FIXME Not sure where this should live defaultDistPref :: FilePath defaultDistPref = "dist"@@ -130,7 +141,7 @@ instance Monoid (Flag a) where mempty = NoFlag- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup (Flag a) where _ <> f@(Flag _) = f@@ -155,7 +166,7 @@ toFlag :: a -> Flag a toFlag = Flag -fromFlag :: Flag a -> a+fromFlag :: WithCallStack (Flag a -> a) fromFlag (Flag x) = x fromFlag NoFlag = error "fromFlag NoFlag. Use fromFlagOrDefault" @@ -176,6 +187,17 @@ then Flag True else NoFlag +maybeToFlag :: Maybe a -> Flag a+maybeToFlag Nothing = NoFlag+maybeToFlag (Just x) = Flag x++-- | Types that represent boolean flags.+class BooleanFlag a where+ asBool :: a -> Bool++instance BooleanFlag Bool where+ asBool = id+ -- ------------------------------------------------------------ -- * Global flags -- ------------------------------------------------------------@@ -242,7 +264,7 @@ instance Monoid GlobalFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup GlobalFlags where (<>) = gmappend@@ -251,79 +273,108 @@ -- * Config flags -- ------------------------------------------------------------ --- | Policy for relaxing upper bounds in dependencies. For example, given--- 'build-depends: array >= 0.3 && < 0.5', are we allowed to relax the upper--- bound and choose a version of 'array' that is greater or equal to 0.5? By--- default the upper bounds are always strictly honored.-data AllowNewer =+-- | Generic data type for policy when relaxing bounds in dependencies.+-- Don't use this directly: use 'AllowOlder' or 'AllowNewer' depending+-- on whether or not you are relaxing an lower or upper bound+-- (respectively).+data RelaxDeps = -- | Default: honor the upper bounds in all dependencies, never choose -- versions newer than allowed.- AllowNewerNone+ RelaxDepsNone -- | Ignore upper bounds in dependencies on the given packages.- | AllowNewerSome [AllowNewerDep]+ | RelaxDepsSome [RelaxedDep] -- | Ignore upper bounds in dependencies on all packages.- | AllowNewerAll+ | RelaxDepsAll deriving (Eq, Read, Show, Generic) +-- | 'RelaxDeps' in the context of upper bounds (i.e. for @--allow-newer@ flag)+newtype AllowNewer = AllowNewer { unAllowNewer :: RelaxDeps }+ deriving (Eq, Read, Show, Generic)++-- | 'RelaxDeps' in the context of lower bounds (i.e. for @--allow-older@ flag)+newtype AllowOlder = AllowOlder { unAllowOlder :: RelaxDeps }+ deriving (Eq, Read, Show, Generic)+ -- | Dependencies can be relaxed either for all packages in the install plan, or -- only for some packages.-data AllowNewerDep = AllowNewerDep PackageName- | AllowNewerDepScoped PackageName PackageName- deriving (Eq, Read, Show, Generic)+data RelaxedDep = RelaxedDep PackageName+ | RelaxedDepScoped PackageName PackageName+ deriving (Eq, Read, Show, Generic) -instance Text AllowNewerDep where- disp (AllowNewerDep p0) = disp p0- disp (AllowNewerDepScoped p0 p1) = disp p0 Disp.<> Disp.colon Disp.<> disp p1+instance Text RelaxedDep where+ disp (RelaxedDep p0) = disp p0+ disp (RelaxedDepScoped p0 p1) = disp p0 Disp.<> Disp.colon Disp.<> disp p1 parse = scopedP Parse.<++ normalP where- scopedP = AllowNewerDepScoped `fmap` parse A.<* Parse.char ':' A.<*> parse- normalP = AllowNewerDep `fmap` parse+ scopedP = RelaxedDepScoped `fmap` parse <* Parse.char ':' <*> parse+ normalP = RelaxedDep `fmap` parse +instance Binary RelaxDeps+instance Binary RelaxedDep instance Binary AllowNewer-instance Binary AllowNewerDep+instance Binary AllowOlder +instance Semigroup RelaxDeps where+ RelaxDepsNone <> r = r+ l@RelaxDepsAll <> _ = l+ l@(RelaxDepsSome _) <> RelaxDepsNone = l+ (RelaxDepsSome _) <> r@RelaxDepsAll = r+ (RelaxDepsSome a) <> (RelaxDepsSome b) = RelaxDepsSome (a ++ b)++instance Monoid RelaxDeps where+ mempty = RelaxDepsNone+ mappend = (<>)+ instance Semigroup AllowNewer where- AllowNewerNone <> r = r- l@AllowNewerAll <> _ = l- l@(AllowNewerSome _) <> AllowNewerNone = l- (AllowNewerSome _) <> r@AllowNewerAll = r- (AllowNewerSome a) <> (AllowNewerSome b) = AllowNewerSome (a ++ b)+ AllowNewer x <> AllowNewer y = AllowNewer (x <> y) +instance Semigroup AllowOlder where+ AllowOlder x <> AllowOlder y = AllowOlder (x <> y)+ instance Monoid AllowNewer where- mempty = AllowNewerNone- mappend = (Semi.<>)+ mempty = AllowNewer mempty+ mappend = (<>) --- | Convert 'AllowNewer' to a boolean.-isAllowNewer :: AllowNewer -> Bool-isAllowNewer AllowNewerNone = False-isAllowNewer (AllowNewerSome _) = True-isAllowNewer AllowNewerAll = True+instance Monoid AllowOlder where+ mempty = AllowOlder mempty+ mappend = (<>) -allowNewerParser :: Parse.ReadP r (Maybe AllowNewer)-allowNewerParser =- (Just . AllowNewerSome) `fmap` Parse.sepBy1 parse (Parse.char ',')+-- | Convert 'RelaxDeps' to a boolean.+isRelaxDeps :: RelaxDeps -> Bool+isRelaxDeps RelaxDepsNone = False+isRelaxDeps (RelaxDepsSome _) = True+isRelaxDeps RelaxDepsAll = True -allowNewerPrinter :: (Maybe AllowNewer) -> [Maybe String]-allowNewerPrinter Nothing = []-allowNewerPrinter (Just AllowNewerNone) = []-allowNewerPrinter (Just AllowNewerAll) = [Nothing]-allowNewerPrinter (Just (AllowNewerSome pkgs)) = map (Just . display) $ pkgs+relaxDepsParser :: Parse.ReadP r (Maybe RelaxDeps)+relaxDepsParser =+ (Just . RelaxDepsSome) `fmap` Parse.sepBy1 parse (Parse.char ',') +relaxDepsPrinter :: (Maybe RelaxDeps) -> [Maybe String]+relaxDepsPrinter Nothing = []+relaxDepsPrinter (Just RelaxDepsNone) = []+relaxDepsPrinter (Just RelaxDepsAll) = [Nothing]+relaxDepsPrinter (Just (RelaxDepsSome pkgs)) = map (Just . display) $ pkgs+ -- | Flags to @configure@ command. -- -- IMPORTANT: every time a new flag is added, 'D.C.Setup.filterConfigureFlags' -- should be updated.+-- IMPORTANT: every time a new flag is added, it should be added to the Eq instance data ConfigFlags = ConfigFlags {+ -- This is the same hack as in 'buildArgs' and 'copyArgs'.+ -- TODO: Stop using this eventually when 'UserHooks' gets changed+ configArgs :: [String],+ --FIXME: the configPrograms is only here to pass info through to configure -- because the type of configure is constrained by the UserHooks. -- when we change UserHooks next we should pass the initial- -- ProgramConfiguration directly and not via ConfigFlags- configPrograms_ :: Last' ProgramConfiguration, -- ^All programs that- -- @cabal@ may run+ -- ProgramDb directly and not via ConfigFlags+ configPrograms_ :: Last' ProgramDb, -- ^All programs that+ -- @cabal@ may run configProgramPaths :: [(String, FilePath)], -- ^user specified programs paths configProgramArgs :: [(String, [String])], -- ^user specified programs args@@ -358,8 +409,13 @@ -- frameworks (OS X only) configExtraIncludeDirs :: [FilePath], -- ^ path to search for header files configIPID :: Flag String, -- ^ explicit IPID to be used+ configCID :: Flag ComponentId, -- ^ explicit CID to be used+ configDeterministic :: Flag Bool, -- ^ be as deterministic as possible+ -- (e.g., invariant over GHC, database,+ -- etc). Used by the test suite configDistPref :: Flag FilePath, -- ^"dist" prefix+ configCabalFilePath :: Flag FilePath, -- ^ Cabal file to use configVerbosity :: Flag Verbosity, -- ^verbosity level configUserInstall :: Flag Bool, -- ^The --user\/--global flag configPackageDBs :: [Maybe PackageDB], -- ^Which package DBs to use@@ -369,8 +425,12 @@ configStripLibs :: Flag Bool, -- ^Enable library stripping configConstraints :: [Dependency], -- ^Additional constraints for -- dependencies.- configDependencies :: [(PackageName, UnitId)],+ configDependencies :: [(PackageName, ComponentId)], -- ^The packages depended on.+ configInstantiateWith :: [(ModuleName, Module)],+ -- ^ The requested Backpack instantiation. If empty, either this+ -- package does not use Backpack, or we just want to typecheck+ -- the indefinite package. configConfigurationsFlags :: FlagAssignment, configTests :: Flag Bool, -- ^Enable test suite compilation configBenchmarks :: Flag Bool, -- ^Enable benchmark compilation@@ -383,6 +443,7 @@ -- ^Halt and show an error message indicating an error in flag assignment configRelocatable :: Flag Bool, -- ^ Enable relocatable package built configDebugInfo :: Flag DebugInfoLevel, -- ^ Emit debug info.+ configAllowOlder :: Maybe AllowOlder, -- ^ dual to 'configAllowNewer' configAllowNewer :: Maybe AllowNewer -- ^ Ignore upper bounds on all or some dependencies. Wrapped in 'Maybe' to -- distinguish between "default" and "explicitly disabled".@@ -393,18 +454,68 @@ -- | More convenient version of 'configPrograms'. Results in an -- 'error' if internal invariant is violated.-configPrograms :: ConfigFlags -> ProgramConfiguration+configPrograms :: WithCallStack (ConfigFlags -> ProgramDb) configPrograms = maybe (error "FIXME: remove configPrograms") id . getLast' . configPrograms_ -configAbsolutePaths :: ConfigFlags -> IO ConfigFlags+instance Eq ConfigFlags where+ (==) a b =+ -- configPrograms skipped: not user specified, has no Eq instance+ equal configProgramPaths+ && equal configProgramArgs+ && equal configProgramPathExtra+ && equal configHcFlavor+ && equal configHcPath+ && equal configHcPkg+ && equal configVanillaLib+ && equal configProfLib+ && equal configSharedLib+ && equal configDynExe+ && equal configProfExe+ && equal configProf+ && equal configProfDetail+ && equal configProfLibDetail+ && equal configConfigureArgs+ && equal configOptimization+ && equal configProgPrefix+ && equal configProgSuffix+ && equal configInstallDirs+ && equal configScratchDir+ && equal configExtraLibDirs+ && equal configExtraIncludeDirs+ && equal configIPID+ && equal configDeterministic+ && equal configDistPref+ && equal configVerbosity+ && equal configUserInstall+ && equal configPackageDBs+ && equal configGHCiLib+ && equal configSplitObjs+ && equal configStripExes+ && equal configStripLibs+ && equal configConstraints+ && equal configDependencies+ && equal configConfigurationsFlags+ && equal configTests+ && equal configBenchmarks+ && equal configCoverage+ && equal configLibCoverage+ && equal configExactConfiguration+ && equal configFlagError+ && equal configRelocatable+ && equal configDebugInfo+ where+ equal f = on (==) f a b++configAbsolutePaths :: ConfigFlags -> NoCallStackIO ConfigFlags configAbsolutePaths f = (\v -> f { configPackageDBs = v })- `liftM` mapM (maybe (return Nothing) (liftM Just . absolutePackageDBPath))+ `liftM` traverse (maybe (return Nothing) (liftM Just . absolutePackageDBPath)) (configPackageDBs f) -defaultConfigFlags :: ProgramConfiguration -> ConfigFlags-defaultConfigFlags progConf = emptyConfigFlags {- configPrograms_ = pure progConf,+defaultConfigFlags :: ProgramDb -> ConfigFlags+defaultConfigFlags progDb = emptyConfigFlags {+ configArgs = [],+ configPrograms_ = pure progDb, configHcFlavor = maybe NoFlag Flag defaultCompilerFlavor, configVanillaLib = Flag True, configProfLib = NoFlag,@@ -418,6 +529,7 @@ configProgPrefix = Flag (toPathTemplate ""), configProgSuffix = Flag (toPathTemplate ""), configDistPref = NoFlag,+ configCabalFilePath = NoFlag, configVerbosity = Flag normal, configUserInstall = Flag False, --TODO: reverse this #if defined(mingw32_HOST_OS)@@ -440,8 +552,8 @@ configAllowNewer = Nothing } -configureCommand :: ProgramConfiguration -> CommandUI ConfigFlags-configureCommand progConf = CommandUI+configureCommand :: ProgramDb -> CommandUI ConfigFlags+configureCommand progDb = CommandUI { commandName = "configure" , commandSynopsis = "Prepare to build the package." , commandDescription = Just $ \_ -> wrapText $@@ -450,20 +562,32 @@ ++ "\n" ++ "The configuration affects several other commands, " ++ "including build, test, bench, run, repl.\n"- , commandNotes = Just $ \_pname -> programFlagsDescription progConf+ , commandNotes = Just $ \_pname -> programFlagsDescription progDb , commandUsage = \pname -> "Usage: " ++ pname ++ " configure [FLAGS]\n"- , commandDefaultFlags = defaultConfigFlags progConf+ , commandDefaultFlags = defaultConfigFlags progDb , commandOptions = \showOrParseArgs -> configureOptions showOrParseArgs- ++ programConfigurationPaths progConf showOrParseArgs+ ++ programDbPaths progDb showOrParseArgs configProgramPaths (\v fs -> fs { configProgramPaths = v })- ++ programConfigurationOption progConf showOrParseArgs+ ++ programDbOption progDb showOrParseArgs configProgramArgs (\v fs -> fs { configProgramArgs = v })- ++ programConfigurationOptions progConf showOrParseArgs+ ++ programDbOptions progDb showOrParseArgs configProgramArgs (\v fs -> fs { configProgramArgs = v }) } +-- | Inverse to 'dispModSubstEntry'.+parseModSubstEntry :: Parse.ReadP r (ModuleName, Module)+parseModSubstEntry =+ do k <- parse+ _ <- Parse.char '='+ v <- parse+ return (k, v)++-- | Pretty-print a single entry of a module substitution.+dispModSubstEntry :: (ModuleName, Module) -> Disp.Doc+dispModSubstEntry (k, v) = disp k <<>> Disp.char '=' <<>> disp v+ configureOptions :: ShowOrParseArgs -> [OptionField ConfigFlags] configureOptions showOrParseArgs = [optionVerbosity configVerbosity@@ -484,6 +608,11 @@ , (Flag (HaskellSuite "haskell-suite"), ([] , ["haskell-suite"]), "compile with a haskell-suite compiler")]) + ,option "" ["cabal-file"]+ "use this Cabal file"+ configCabalFilePath (\v flags -> flags { configCabalFilePath = v })+ (reqArgFlag "PATH")+ ,option "w" ["with-compiler"] "give the path to a particular compiler" configHcPath (\v flags -> flags { configHcPath = v })@@ -630,11 +759,21 @@ configExtraIncludeDirs (\v flags -> flags {configExtraIncludeDirs = v}) (reqArg' "PATH" (\x -> [x]) id) + ,option "" ["deterministic"]+ "Try to be as deterministic as possible (used by the test suite)"+ configDeterministic (\v flags -> flags {configDeterministic = v})+ (boolOpt [] [])+ ,option "" ["ipid"] "Installed package ID to compile this package as" configIPID (\v flags -> flags {configIPID = v}) (reqArgFlag "IPID") + ,option "" ["cid"]+ "Installed component ID to compile this component as"+ (fmap display . configCID) (\v flags -> flags {configCID = fmap mkComponentId v})+ (reqArgFlag "CID")+ ,option "" ["extra-lib-dirs"] "A list of directories to search for external libraries" configExtraLibDirs (\v flags -> flags {configExtraLibDirs = v})@@ -661,10 +800,17 @@ ,option "" ["dependency"] "A list of exact dependencies. E.g., --dependency=\"void=void-0.5.8-177d5cdf20962d0581fe2e4932a6c309\"" configDependencies (\v flags -> flags { configDependencies = v})- (reqArg "NAME=ID"+ (reqArg "NAME=CID" (readP_to_E (const "dependency expected") ((\x -> [x]) `fmap` parseDependency)) (map (\x -> display (fst x) ++ "=" ++ display (snd x)))) + ,option "" ["instantiate-with"]+ "A mapping of signature names to concrete module instantiations."+ configInstantiateWith (\v flags -> flags { configInstantiateWith = v })+ (reqArg "NAME=MOD"+ (readP_to_E ("Cannot parse module substitution: " ++) (fmap (:[]) parseModSubstEntry))+ (map (Disp.renderStyle defaultStyle . dispModSubstEntry)))+ ,option "" ["tests"] "dependency checking and compilation for test suites listed in the package description file." configTests (\v flags -> flags { configTests = v })@@ -680,12 +826,21 @@ configLibCoverage (\v flags -> flags { configLibCoverage = v }) (boolOpt [] []) + ,option [] ["allow-older"]+ ("Ignore upper bounds in all dependencies or DEPS")+ (fmap unAllowOlder . configAllowOlder)+ (\v flags -> flags { configAllowOlder = fmap AllowOlder v})+ (optArg "DEPS"+ (readP_to_E ("Cannot parse the list of packages: " ++) relaxDepsParser)+ (Just RelaxDepsAll) relaxDepsPrinter)+ ,option [] ["allow-newer"] ("Ignore upper bounds in all dependencies or DEPS")- configAllowNewer (\v flags -> flags { configAllowNewer = v})+ (fmap unAllowNewer . configAllowNewer)+ (\v flags -> flags { configAllowNewer = fmap AllowNewer v}) (optArg "DEPS"- (readP_to_E ("Cannot parse the list of packages: " ++) allowNewerParser)- (Just AllowNewerAll) allowNewerPrinter)+ (readP_to_E ("Cannot parse the list of packages: " ++) relaxDepsParser)+ (Just RelaxDepsAll) relaxDepsPrinter) ,option "" ["exact-configuration"] "All direct dependencies and flags are provided on the command line."@@ -706,12 +861,12 @@ where readFlagList :: String -> FlagAssignment readFlagList = map tagWithValue . words- where tagWithValue ('-':fname) = (FlagName (lowercase fname), False)- tagWithValue fname = (FlagName (lowercase fname), True)+ where tagWithValue ('-':fname) = (mkFlagName (lowercase fname), False)+ tagWithValue fname = (mkFlagName (lowercase fname), True) showFlagList :: FlagAssignment -> [String]- showFlagList fs = [ if not set then '-':fname else fname- | (FlagName fname, set) <- fs]+ showFlagList fs = [ if not set then '-':unFlagName fname else unFlagName fname+ | (fname, set) <- fs] liftInstallDirs = liftOption configInstallDirs (\v flags -> flags { configInstallDirs = v })@@ -738,7 +893,7 @@ showProfDetailLevelFlag NoFlag = [] showProfDetailLevelFlag (Flag dl) = [showProfDetailLevel dl] -parseDependency :: Parse.ReadP r (PackageName, UnitId)+parseDependency :: Parse.ReadP r (PackageName, ComponentId) parseDependency = do x <- parse _ <- Parse.char '='@@ -777,6 +932,11 @@ libexecdir (\v flags -> flags { libexecdir = v }) installDirArg + , option "" ["libexecsubdir"]+ "subdirectory of libexecdir in which private executables are installed"+ libexecsubdir (\v flags -> flags { libexecsubdir = v })+ installDirArg+ , option "" ["datadir"] "installation directory for read-only data" datadir (\v flags -> flags { datadir = v })@@ -817,7 +977,7 @@ instance Monoid ConfigFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup ConfigFlags where (<>) = gmappend@@ -830,7 +990,11 @@ data CopyFlags = CopyFlags { copyDest :: Flag CopyDest, copyDistPref :: Flag FilePath,- copyVerbosity :: Flag Verbosity+ copyVerbosity :: Flag Verbosity,+ -- This is the same hack as in 'buildArgs'. But I (ezyang) don't+ -- think it's a hack, it's the right way to make hooks more robust+ -- TODO: Stop using this eventually when 'UserHooks' gets changed+ copyArgs :: [String] } deriving (Show, Generic) @@ -838,19 +1002,28 @@ defaultCopyFlags = CopyFlags { copyDest = Flag NoCopyDest, copyDistPref = NoFlag,- copyVerbosity = Flag normal+ copyVerbosity = Flag normal,+ copyArgs = [] } copyCommand :: CommandUI CopyFlags copyCommand = CommandUI { commandName = "copy"- , commandSynopsis = "Copy the files into the install locations."+ , commandSynopsis = "Copy the files of all/specific components to install locations." , commandDescription = Just $ \_ -> wrapText $- "Does not call register, and allows a prefix at install time. "+ "Components encompass executables and libraries."+ ++ "Does not call register, and allows a prefix at install time. " ++ "Without the --destdir flag, configure determines location.\n"- , commandNotes = Nothing- , commandUsage = \pname ->- "Usage: " ++ pname ++ " copy [FLAGS]\n"+ , commandNotes = Just $ \pname ->+ "Examples:\n"+ ++ " " ++ pname ++ " build "+ ++ " All the components in the package\n"+ ++ " " ++ pname ++ " build foo "+ ++ " A component (i.e. lib, exe, test suite)"+ , commandUsage = usageAlternatives "copy" $+ [ "[FLAGS]"+ , "COMPONENTS [FLAGS]"+ ] , commandDefaultFlags = defaultCopyFlags , commandOptions = \showOrParseArgs -> [optionVerbosity copyVerbosity (\v flags -> flags { copyVerbosity = v })@@ -872,7 +1045,7 @@ instance Monoid CopyFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup CopyFlags where (<>) = gmappend@@ -943,7 +1116,7 @@ instance Monoid InstallFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup InstallFlags where (<>) = gmappend@@ -1010,7 +1183,7 @@ instance Monoid SDistFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup SDistFlags where (<>) = gmappend@@ -1028,7 +1201,9 @@ regInPlace :: Flag Bool, regDistPref :: Flag FilePath, regPrintId :: Flag Bool,- regVerbosity :: Flag Verbosity+ regVerbosity :: Flag Verbosity,+ -- Same as in 'buildArgs' and 'copyArgs'+ regArgs :: [String] } deriving (Show, Generic) @@ -1040,6 +1215,7 @@ regInPlace = Flag False, regDistPref = NoFlag, regPrintId = Flag False,+ regArgs = [], regVerbosity = Flag normal } @@ -1077,7 +1253,7 @@ trueArg ,option "" ["gen-pkg-config"]- "instead of registering, generate a package registration file"+ "instead of registering, generate a package registration file/directory" regGenPkgConf (\v flags -> flags { regGenPkgConf = v }) (optArg' "PKG" Flag flagToList) @@ -1123,7 +1299,7 @@ instance Monoid RegisterFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup RegisterFlags where (<>) = gmappend@@ -1137,6 +1313,7 @@ hscolourExecutables :: Flag Bool, hscolourTestSuites :: Flag Bool, hscolourBenchmarks :: Flag Bool,+ hscolourForeignLibs :: Flag Bool, hscolourDistPref :: Flag FilePath, hscolourVerbosity :: Flag Verbosity }@@ -1152,12 +1329,13 @@ hscolourTestSuites = Flag False, hscolourBenchmarks = Flag False, hscolourDistPref = NoFlag,+ hscolourForeignLibs = Flag False, hscolourVerbosity = Flag normal } instance Monoid HscolourFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup HscolourFlags where (<>) = gmappend@@ -1194,14 +1372,23 @@ hscolourBenchmarks (\v flags -> flags { hscolourBenchmarks = v }) trueArg + ,option "" ["foreign-libraries"]+ "Run hscolour for Foreign Library targets"+ hscolourForeignLibs (\v flags -> flags { hscolourForeignLibs = v })+ trueArg+ ,option "" ["all"] "Run hscolour for all targets" (\f -> allFlags [ hscolourExecutables f , hscolourTestSuites f- , hscolourBenchmarks f])+ , hscolourBenchmarks f+ , hscolourForeignLibs f+ ]) (\v flags -> flags { hscolourExecutables = v , hscolourTestSuites = v- , hscolourBenchmarks = v })+ , hscolourBenchmarks = v+ , hscolourForeignLibs = v+ }) trueArg ,option "" ["css"]@@ -1212,6 +1399,68 @@ } -- ------------------------------------------------------------+-- * Doctest flags+-- ------------------------------------------------------------++data DoctestFlags = DoctestFlags {+ doctestProgramPaths :: [(String, FilePath)],+ doctestProgramArgs :: [(String, [String])],+ doctestDistPref :: Flag FilePath,+ doctestVerbosity :: Flag Verbosity+ }+ deriving (Show, Generic)++defaultDoctestFlags :: DoctestFlags+defaultDoctestFlags = DoctestFlags {+ doctestProgramPaths = mempty,+ doctestProgramArgs = [],+ doctestDistPref = NoFlag,+ doctestVerbosity = Flag normal+ }++doctestCommand :: CommandUI DoctestFlags+doctestCommand = CommandUI+ { commandName = "doctest"+ , commandSynopsis = "Run doctest tests."+ , commandDescription = Just $ \_ ->+ "Requires the program doctest, version 0.12.\n"+ , commandNotes = Nothing+ , commandUsage = \pname ->+ "Usage: " ++ pname ++ " doctest [FLAGS]\n"+ , commandDefaultFlags = defaultDoctestFlags+ , commandOptions = \showOrParseArgs ->+ doctestOptions showOrParseArgs+ ++ programDbPaths progDb ParseArgs+ doctestProgramPaths (\v flags -> flags { doctestProgramPaths = v })+ ++ programDbOption progDb showOrParseArgs+ doctestProgramArgs (\v fs -> fs { doctestProgramArgs = v })+ ++ programDbOptions progDb ParseArgs+ doctestProgramArgs (\v flags -> flags { doctestProgramArgs = v })+ }+ where+ progDb = addKnownProgram doctestProgram+ emptyProgramDb++doctestOptions :: ShowOrParseArgs -> [OptionField DoctestFlags]+doctestOptions showOrParseArgs =+ [optionVerbosity doctestVerbosity+ (\v flags -> flags { doctestVerbosity = v })+ ,optionDistPref+ doctestDistPref (\d flags -> flags { doctestDistPref = d })+ showOrParseArgs+ ]++emptyDoctestFlags :: DoctestFlags+emptyDoctestFlags = mempty++instance Monoid DoctestFlags where+ mempty = gmempty+ mappend = (<>)++instance Semigroup DoctestFlags where+ (<>) = gmappend++-- ------------------------------------------------------------ -- * Haddock flags -- ------------------------------------------------------------ @@ -1229,22 +1478,17 @@ -- documentation in @<dist>/doc/html/<package id>-docs@. data HaddockTarget = ForHackage | ForDevelopment deriving (Eq, Show, Generic) --- | Convert '--for-hackage' to 'HaddockTarget'.-haddockTargetFromFlag :: Flag Bool -> HaddockTarget-haddockTargetFromFlag NoFlag = ForDevelopment-haddockTargetFromFlag (Flag False) = ForDevelopment-haddockTargetFromFlag (Flag True) = ForHackage- data HaddockFlags = HaddockFlags { haddockProgramPaths :: [(String, FilePath)], haddockProgramArgs :: [(String, [String])], haddockHoogle :: Flag Bool, haddockHtml :: Flag Bool, haddockHtmlLocation :: Flag String,- haddockForHackage :: Flag Bool,+ haddockForHackage :: Flag HaddockTarget, haddockExecutables :: Flag Bool, haddockTestSuites :: Flag Bool, haddockBenchmarks :: Flag Bool,+ haddockForeignLibs :: Flag Bool, haddockInternal :: Flag Bool, haddockCss :: Flag FilePath, haddockHscolour :: Flag Bool,@@ -1263,10 +1507,11 @@ haddockHoogle = Flag False, haddockHtml = Flag False, haddockHtmlLocation = NoFlag,- haddockForHackage = Flag False,+ haddockForHackage = Flag ForDevelopment, haddockExecutables = Flag False, haddockTestSuites = Flag False, haddockBenchmarks = Flag False,+ haddockForeignLibs = Flag False, haddockInternal = Flag False, haddockCss = NoFlag, haddockHscolour = Flag False,@@ -1289,17 +1534,17 @@ , commandDefaultFlags = defaultHaddockFlags , commandOptions = \showOrParseArgs -> haddockOptions showOrParseArgs- ++ programConfigurationPaths progConf ParseArgs+ ++ programDbPaths progDb ParseArgs haddockProgramPaths (\v flags -> flags { haddockProgramPaths = v})- ++ programConfigurationOption progConf showOrParseArgs+ ++ programDbOption progDb showOrParseArgs haddockProgramArgs (\v fs -> fs { haddockProgramArgs = v })- ++ programConfigurationOptions progConf ParseArgs+ ++ programDbOptions progDb ParseArgs haddockProgramArgs (\v flags -> flags { haddockProgramArgs = v}) } where- progConf = addKnownProgram haddockProgram+ progDb = addKnownProgram haddockProgram $ addKnownProgram ghcProgram- $ emptyProgramConfiguration+ $ emptyProgramDb haddockOptions :: ShowOrParseArgs -> [OptionField HaddockFlags] haddockOptions showOrParseArgs =@@ -1332,7 +1577,7 @@ ,option "" ["for-hackage"] "Collection of flags to generate documentation suitable for upload to hackage" haddockForHackage (\v flags -> flags { haddockForHackage = v })- trueArg+ (noArg (Flag ForHackage)) ,option "" ["executables"] "Run haddock for Executables targets"@@ -1349,14 +1594,23 @@ haddockBenchmarks (\v flags -> flags { haddockBenchmarks = v }) trueArg + ,option "" ["foreign-libraries"]+ "Run haddock for Foreign Library targets"+ haddockForeignLibs (\v flags -> flags { haddockForeignLibs = v })+ trueArg+ ,option "" ["all"] "Run haddock for all targets" (\f -> allFlags [ haddockExecutables f , haddockTestSuites f- , haddockBenchmarks f])+ , haddockBenchmarks f+ , haddockForeignLibs f+ ]) (\v flags -> flags { haddockExecutables = v , haddockTestSuites = v- , haddockBenchmarks = v })+ , haddockBenchmarks = v+ , haddockForeignLibs = v+ }) trueArg ,option "" ["internal"]@@ -1392,7 +1646,7 @@ instance Monoid HaddockFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup HaddockFlags where (<>) = gmappend@@ -1443,7 +1697,7 @@ instance Monoid CleanFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup CleanFlags where (<>) = gmappend@@ -1462,7 +1716,7 @@ -- UserHooks stop us from passing extra info in other ways buildArgs :: [String] }- deriving (Show, Generic)+ deriving (Read, Show, Generic) {-# DEPRECATED buildVerbose "Use buildVerbosity instead" #-} buildVerbose :: BuildFlags -> Verbosity@@ -1478,8 +1732,8 @@ buildArgs = [] } -buildCommand :: ProgramConfiguration -> CommandUI BuildFlags-buildCommand progConf = CommandUI+buildCommand :: ProgramDb -> CommandUI BuildFlags+buildCommand progDb = CommandUI { commandName = "build" , commandSynopsis = "Compile all/specific components." , commandDescription = Just $ \_ -> wrapText $@@ -1492,7 +1746,7 @@ ++ " All the components in the package\n" ++ " " ++ pname ++ " build foo " ++ " A component (i.e. lib, exe, test suite)\n\n"- ++ programFlagsDescription progConf+ ++ programFlagsDescription progDb --TODO: re-enable once we have support for module/file targets -- ++ " " ++ pname ++ " build Foo.Bar " -- ++ " A module\n"@@ -1514,23 +1768,23 @@ , optionDistPref buildDistPref (\d flags -> flags { buildDistPref = d }) showOrParseArgs ]- ++ buildOptions progConf showOrParseArgs+ ++ buildOptions progDb showOrParseArgs } -buildOptions :: ProgramConfiguration -> ShowOrParseArgs+buildOptions :: ProgramDb -> ShowOrParseArgs -> [OptionField BuildFlags]-buildOptions progConf showOrParseArgs =+buildOptions progDb showOrParseArgs = [ optionNumJobs buildNumJobs (\v flags -> flags { buildNumJobs = v }) ] - ++ programConfigurationPaths progConf showOrParseArgs+ ++ programDbPaths progDb showOrParseArgs buildProgramPaths (\v flags -> flags { buildProgramPaths = v}) - ++ programConfigurationOption progConf showOrParseArgs+ ++ programDbOption progDb showOrParseArgs buildProgramArgs (\v fs -> fs { buildProgramArgs = v }) - ++ programConfigurationOptions progConf showOrParseArgs+ ++ programDbOptions progDb showOrParseArgs buildProgramArgs (\v flags -> flags { buildProgramArgs = v}) emptyBuildFlags :: BuildFlags@@ -1538,7 +1792,7 @@ instance Monoid BuildFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup BuildFlags where (<>) = gmappend@@ -1567,13 +1821,13 @@ instance Monoid ReplFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup ReplFlags where (<>) = gmappend -replCommand :: ProgramConfiguration -> CommandUI ReplFlags-replCommand progConf = CommandUI+replCommand :: ProgramDb -> CommandUI ReplFlags+replCommand progDb = CommandUI { commandName = "repl" , commandSynopsis = "Open an interpreter session for the given component."@@ -1621,13 +1875,13 @@ replDistPref (\d flags -> flags { replDistPref = d }) showOrParseArgs - : programConfigurationPaths progConf showOrParseArgs+ : programDbPaths progDb showOrParseArgs replProgramPaths (\v flags -> flags { replProgramPaths = v}) - ++ programConfigurationOption progConf showOrParseArgs+ ++ programDbOption progDb showOrParseArgs replProgramArgs (\v flags -> flags { replProgramArgs = v}) - ++ programConfigurationOptions progConf showOrParseArgs+ ++ programDbOptions progDb showOrParseArgs replProgramArgs (\v flags -> flags { replProgramArgs = v}) ++ case showOrParseArgs of@@ -1664,7 +1918,7 @@ --TODO: do we need this instance? instance Monoid TestShowDetails where mempty = Never- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup TestShowDetails where a <> b = if a < b then b else a@@ -1771,7 +2025,7 @@ instance Monoid TestFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup TestFlags where (<>) = gmappend@@ -1844,7 +2098,7 @@ instance Monoid BenchmarkFlags where mempty = gmempty- mappend = (Semi.<>)+ mappend = (<>) instance Semigroup BenchmarkFlags where (<>) = gmappend@@ -1853,39 +2107,44 @@ -- * Shared options utils -- ------------------------------------------------------------ -programFlagsDescription :: ProgramConfiguration -> String-programFlagsDescription progConf =+programFlagsDescription :: ProgramDb -> String+programFlagsDescription progDb = "The flags --with-PROG and --PROG-option(s) can be used with" ++ " the following programs:" ++ (concatMap (\line -> "\n " ++ unwords line) . wrapLine 77 . sort)- [ programName prog | (prog, _) <- knownPrograms progConf ]+ [ programName prog | (prog, _) <- knownPrograms progDb ] ++ "\n" --- | For each known program @PROG@ in 'progConf', produce a @with-PROG@+-- | For each known program @PROG@ in 'progDb', produce a @with-PROG@ -- 'OptionField'.-programConfigurationPaths- :: ProgramConfiguration+programDbPaths+ :: ProgramDb -> ShowOrParseArgs -> (flags -> [(String, FilePath)]) -> ([(String, FilePath)] -> (flags -> flags)) -> [OptionField flags]-programConfigurationPaths progConf showOrParseArgs get set =- programConfigurationPaths' ("with-" ++) progConf showOrParseArgs get set+programDbPaths progDb showOrParseArgs get set =+ programDbPaths' ("with-" ++) progDb showOrParseArgs get set --- | Like 'programConfigurationPaths', but allows to customise the option name.-programConfigurationPaths'+{-# DEPRECATED programConfigurationPaths' "Use programDbPaths' instead" #-}++-- | Like 'programDbPaths', but allows to customise the option name.+programDbPaths', programConfigurationPaths' :: (String -> String)- -> ProgramConfiguration+ -> ProgramDb -> ShowOrParseArgs -> (flags -> [(String, FilePath)]) -> ([(String, FilePath)] -> (flags -> flags)) -> [OptionField flags]-programConfigurationPaths' mkName progConf showOrParseArgs get set =++programConfigurationPaths' = programDbPaths'++programDbPaths' mkName progDb showOrParseArgs get set = case showOrParseArgs of -- we don't want a verbose help text list so we just show a generic one: ShowArgs -> [withProgramPath "PROG"] ParseArgs -> map (withProgramPath . programName . fst)- (knownPrograms progConf)+ (knownPrograms progDb) where withProgramPath prog = option "" [mkName prog]@@ -1894,20 +2153,20 @@ (reqArg' "PATH" (\path -> [(prog, path)]) (\progPaths -> [ path | (prog', path) <- progPaths, prog==prog' ])) --- | For each known program @PROG@ in 'progConf', produce a @PROG-option@+-- | For each known program @PROG@ in 'progDb', produce a @PROG-option@ -- 'OptionField'.-programConfigurationOption- :: ProgramConfiguration+programDbOption+ :: ProgramDb -> ShowOrParseArgs -> (flags -> [(String, [String])]) -> ([(String, [String])] -> (flags -> flags)) -> [OptionField flags]-programConfigurationOption progConf showOrParseArgs get set =+programDbOption progDb showOrParseArgs get set = case showOrParseArgs of -- we don't want a verbose help text list so we just show a generic one: ShowArgs -> [programOption "PROG"] ParseArgs -> map (programOption . programName . fst)- (knownPrograms progConf)+ (knownPrograms progDb) where programOption prog = option "" [prog ++ "-option"]@@ -1918,20 +2177,25 @@ (\progArgs -> concat [ args | (prog', args) <- progArgs, prog==prog' ])) --- | For each known program @PROG@ in 'progConf', produce a @PROG-options@+{-# DEPRECATED programConfigurationOptions "Use programDbOptions instead" #-}++-- | For each known program @PROG@ in 'progDb', produce a @PROG-options@ -- 'OptionField'.-programConfigurationOptions- :: ProgramConfiguration+programDbOptions, programConfigurationOptions+ :: ProgramDb -> ShowOrParseArgs -> (flags -> [(String, [String])]) -> ([(String, [String])] -> (flags -> flags)) -> [OptionField flags]-programConfigurationOptions progConf showOrParseArgs get set =++programConfigurationOptions = programDbOptions++programDbOptions progDb showOrParseArgs get set = case showOrParseArgs of -- we don't want a verbose help text list so we just show a generic one: ShowArgs -> [programOptions "PROG"] ParseArgs -> map (programOptions . programName . fst)- (knownPrograms progConf)+ (knownPrograms progDb) where programOptions prog = option "" [prog ++ "-options"]@@ -2009,10 +2273,6 @@ -- * Other Utils -- ------------------------------------------------------------ -readPToMaybe :: Parse.ReadP a a -> String -> Maybe a-readPToMaybe p str = listToMaybe [ r | (r,s) <- Parse.readP_to_S p str- , all isSpace s ]- -- | Arguments to pass to a @configure@ script, e.g. generated by -- @autoconf@. configureArgs :: Bool -> ConfigFlags -> [String]@@ -2042,26 +2302,29 @@ . config_field . configInstallDirs) -configureCCompiler :: Verbosity -> ProgramConfiguration+configureCCompiler :: Verbosity -> ProgramDb -> IO (FilePath, [String])-configureCCompiler verbosity lbi = configureProg verbosity lbi gccProgram+configureCCompiler verbosity progdb = configureProg verbosity progdb gccProgram -configureLinker :: Verbosity -> ProgramConfiguration -> IO (FilePath, [String])-configureLinker verbosity lbi = configureProg verbosity lbi ldProgram+configureLinker :: Verbosity -> ProgramDb -> IO (FilePath, [String])+configureLinker verbosity progdb = configureProg verbosity progdb ldProgram -configureProg :: Verbosity -> ProgramConfiguration -> Program+configureProg :: Verbosity -> ProgramDb -> Program -> IO (FilePath, [String])-configureProg verbosity programConfig prog = do- (p, _) <- requireProgram verbosity prog programConfig+configureProg verbosity programDb prog = do+ (p, _) <- requireProgram verbosity prog programDb let pInv = programInvocation p [] return (progInvokePath pInv, progInvokeArgs pInv) -- | Helper function to split a string into a list of arguments. -- It's supposed to handle quoted things sensibly, eg: ----- > splitArgs "--foo=\"C:\Program Files\Bar\" --baz"--- > = ["--foo=C:\Program Files\Bar", "--baz"]+-- > splitArgs "--foo=\"C:/Program Files/Bar/" --baz"+-- > = ["--foo=C:/Program Files/Bar", "--baz"] --+-- > splitArgs "\"-DMSGSTR=\\\"foo bar\\\"\" --baz"+-- > = ["-DMSGSTR=\"foo bar\"","--baz"]+-- splitArgs :: String -> [String] splitArgs = space [] where@@ -2075,6 +2338,7 @@ string :: String -> String -> [String] string w [] = word w [] string w ('"':s) = space w s+ string w ('\\':'"':s) = string ('"':w) s string w ( c :s) = string (c:w) s nonstring :: String -> String -> [String]
Distribution/Simple/SrcDist.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.SrcDist@@ -40,6 +43,9 @@ ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.PackageDescription hiding (Flag) import Distribution.PackageDescription.Check hiding (doesFileExist) import Distribution.Package@@ -53,18 +59,16 @@ import Distribution.Simple.BuildPaths import Distribution.Simple.Program import Distribution.Text+import Distribution.Types.ForeignLib import Distribution.Verbosity -import Control.Monad(when, unless, forM)-import Data.Char (toLower)-import Data.List (partition, isPrefixOf)+import Data.List (partition) import qualified Data.Map as Map-import Data.Maybe (isNothing, catMaybes) import Data.Time (UTCTime, getCurrentTime, toGregorian, utctDay) import System.Directory ( doesFileExist ) import System.IO (IOMode(WriteMode), hPutStrLn, withFile)-import System.FilePath- ( (</>), (<.>), dropExtension, isAbsolute )+import System.FilePath ((</>), (<.>), dropExtension, isRelative)+import Control.Monad -- |Create a source distribution. sdist :: PackageDescription -- ^information from the tarball@@ -79,8 +83,8 @@ case (sDistListSources flags) of Flag path -> withFile path WriteMode $ \outHandle -> do (ordinary, maybeExecutable) <- listPackageSources verbosity pkg pps- mapM_ (hPutStrLn outHandle) ordinary- mapM_ (hPutStrLn outHandle) maybeExecutable+ traverse_ (hPutStrLn outHandle) ordinary+ traverse_ (hPutStrLn outHandle) maybeExecutable notice verbosity $ "List of package sources written to file '" ++ path ++ "'" NoFlag -> do@@ -136,13 +140,13 @@ maybeExecutable <- listPackageSourcesMaybeExecutable pkg_descr return (ordinary, maybeExecutable) where- pkg_descr = filterAutogenModule pkg_descr0+ pkg_descr = filterAutogenModules pkg_descr0 -- | List those source files that may be executable (e.g. the configure script). listPackageSourcesMaybeExecutable :: PackageDescription -> IO [FilePath] listPackageSourcesMaybeExecutable pkg_descr = -- Extra source files.- fmap concat . forM (extraSrcFiles pkg_descr) $ \fpath -> matchFileGlob fpath+ fmap concat . for (extraSrcFiles pkg_descr) $ \fpath -> matchFileGlob fpath -- | List those source files that should be copied with ordinary permissions. listPackageSourcesOrdinary :: Verbosity@@ -150,36 +154,43 @@ -> [PPSuffixHandler] -> IO [FilePath] listPackageSourcesOrdinary verbosity pkg_descr pps =- fmap concat . sequence $+ fmap concat . sequenceA $ [ -- Library sources.- withAllLib $ \Library { exposedModules = modules, libBuildInfo = libBi } ->- allSourcesBuildInfo libBi pps modules+ fmap concat+ . withAllLib $ \Library {+ exposedModules = modules,+ signatures = sigs,+ libBuildInfo = libBi+ } ->+ allSourcesBuildInfo verbosity libBi pps (modules ++ sigs) -- Executables sources. , fmap concat . withAllExe $ \Executable { modulePath = mainPath, buildInfo = exeBi } -> do- biSrcs <- allSourcesBuildInfo exeBi pps []+ biSrcs <- allSourcesBuildInfo verbosity exeBi pps [] mainSrc <- findMainExeFile exeBi pps mainPath return (mainSrc:biSrcs) + -- Foreign library sources+ , fmap concat+ . withAllFLib $ \flib@(ForeignLib { foreignLibBuildInfo = flibBi }) -> do+ biSrcs <- allSourcesBuildInfo verbosity flibBi pps []+ defFiles <- mapM (findModDefFile flibBi pps) (foreignLibModDefFile flib)+ return (defFiles ++ biSrcs)+ -- Test suites sources. , fmap concat . withAllTest $ \t -> do let bi = testBuildInfo t case testInterface t of TestSuiteExeV10 _ mainPath -> do- biSrcs <- allSourcesBuildInfo bi pps []- srcMainFile <- do- ppFile <- findFileWithExtension (ppSuffixes pps)- (hsSourceDirs bi) (dropExtension mainPath)- case ppFile of- Nothing -> findFile (hsSourceDirs bi) mainPath- Just pp -> return pp+ biSrcs <- allSourcesBuildInfo verbosity bi pps []+ srcMainFile <- findMainExeFile bi pps mainPath return (srcMainFile:biSrcs) TestSuiteLibV09 _ m ->- allSourcesBuildInfo bi pps [m]- TestSuiteUnsupported tp -> die $ "Unsupported test suite type: "+ allSourcesBuildInfo verbosity bi pps [m]+ TestSuiteUnsupported tp -> die' verbosity $ "Unsupported test suite type: " ++ show tp -- Benchmarks sources.@@ -188,35 +199,31 @@ let bi = benchmarkBuildInfo bm case benchmarkInterface bm of BenchmarkExeV10 _ mainPath -> do- biSrcs <- allSourcesBuildInfo bi pps []- srcMainFile <- do- ppFile <- findFileWithExtension (ppSuffixes pps)- (hsSourceDirs bi) (dropExtension mainPath)- case ppFile of- Nothing -> findFile (hsSourceDirs bi) mainPath- Just pp -> return pp+ biSrcs <- allSourcesBuildInfo verbosity bi pps []+ srcMainFile <- findMainExeFile bi pps mainPath return (srcMainFile:biSrcs)- BenchmarkUnsupported tp -> die $ "Unsupported benchmark type: "+ BenchmarkUnsupported tp -> die' verbosity $ "Unsupported benchmark type: " ++ show tp -- Data files. , fmap concat- . forM (dataFiles pkg_descr) $ \filename ->+ . for (dataFiles pkg_descr) $ \filename -> matchFileGlob (dataDir pkg_descr </> filename) -- Extra doc files. , fmap concat- . forM (extraDocFiles pkg_descr) $ \ filename ->+ . for (extraDocFiles pkg_descr) $ \ filename -> matchFileGlob filename -- License file(s). , return (licenseFiles pkg_descr) -- Install-include files.- , withAllLib $ \ l -> do+ , fmap concat+ . withAllLib $ \ l -> do let lbi = libBuildInfo l- relincdirs = "." : filter (not.isAbsolute) (includeDirs lbi)- mapM (fmap snd . findIncludeFile relincdirs) (installIncludes lbi)+ relincdirs = "." : filter isRelative (includeDirs lbi)+ traverse (fmap snd . findIncludeFile verbosity relincdirs) (installIncludes lbi) -- Setup script, if it exists. , fmap (maybe [] (\f -> [f])) $ findSetupFile ""@@ -228,10 +235,11 @@ where -- We have to deal with all libs and executables, so we have local -- versions of these functions that ignore the 'buildable' attribute:- withAllLib action = maybe (return []) action (library pkg_descr)- withAllExe action = mapM action (executables pkg_descr)- withAllTest action = mapM action (testSuites pkg_descr)- withAllBenchmark action = mapM action (benchmarks pkg_descr)+ withAllLib action = traverse action (allLibraries pkg_descr)+ withAllFLib action = traverse action (foreignLibs pkg_descr)+ withAllExe action = traverse action (executables pkg_descr)+ withAllTest action = traverse action (testSuites pkg_descr)+ withAllBenchmark action = traverse action (benchmarks pkg_descr) -- |Prepare a directory tree of source files.@@ -247,8 +255,8 @@ case mb_lbi of Just lbi | not (null pps) -> do let lbi' = lbi{ buildDir = targetDir </> buildDir lbi }- withAllComponentsInBuildOrder pkg_descr lbi' $ \c _ ->- preprocessComponent pkg_descr c lbi' True verbosity pps+ withAllComponentsInBuildOrder pkg_descr lbi' $ \c clbi ->+ preprocessComponent pkg_descr c lbi' clbi True verbosity pps _ -> return () (ordinary, mExecutable) <- listPackageSources verbosity pkg_descr0 pps@@ -257,10 +265,10 @@ maybeCreateDefaultSetupScript targetDir where- pkg_descr = filterAutogenModule pkg_descr0+ pkg_descr = filterAutogenModules pkg_descr0 -- | Find the setup script file, if it exists.-findSetupFile :: FilePath -> IO (Maybe FilePath)+findSetupFile :: FilePath -> NoCallStackIO (Maybe FilePath) findSetupFile targetDir = do hsExists <- doesFileExist setupHs lhsExists <- doesFileExist setupLhs@@ -274,7 +282,7 @@ setupLhs = targetDir </> "Setup.lhs" -- | Create a default setup script in the target directory, if it doesn't exist.-maybeCreateDefaultSetupScript :: FilePath -> IO ()+maybeCreateDefaultSetupScript :: FilePath -> NoCallStackIO () maybeCreateDefaultSetupScript targetDir = do mSetupFile <- findSetupFile targetDir case mSetupFile of@@ -293,30 +301,41 @@ Nothing -> findFile (hsSourceDirs exeBi) mainPath Just pp -> return pp +-- | Find a module definition file+--+-- TODO: I don't know if this is right+findModDefFile :: BuildInfo -> [PPSuffixHandler] -> FilePath -> IO FilePath+findModDefFile flibBi _pps modDefPath =+ findFile (".":hsSourceDirs flibBi) modDefPath+ -- | Given a list of include paths, try to find the include file named -- @f@. Return the name of the file and the full path, or exit with error if -- there's no such file.-findIncludeFile :: [FilePath] -> String -> IO (String, FilePath)-findIncludeFile [] f = die ("can't find include file " ++ f)-findIncludeFile (d:ds) f = do+findIncludeFile :: Verbosity -> [FilePath] -> String -> IO (String, FilePath)+findIncludeFile verbosity [] f = die' verbosity ("can't find include file " ++ f)+findIncludeFile verbosity (d:ds) f = do let path = (d </> f) b <- doesFileExist path- if b then return (f,path) else findIncludeFile ds f+ if b then return (f,path) else findIncludeFile verbosity ds f --- | Remove the auto-generated module ('Paths_*') from 'exposed-modules' and--- 'other-modules'.-filterAutogenModule :: PackageDescription -> PackageDescription-filterAutogenModule pkg_descr0 = mapLib filterAutogenModuleLib $+-- | Remove the auto-generated modules (like 'Paths_*') from 'exposed-modules' +-- and 'other-modules'.+filterAutogenModules :: PackageDescription -> PackageDescription+filterAutogenModules pkg_descr0 = mapLib filterAutogenModuleLib $ mapAllBuildInfo filterAutogenModuleBI pkg_descr0 where- mapLib f pkg = pkg { library = fmap f (library pkg) }+ mapLib f pkg = pkg { library = fmap f (library pkg)+ , subLibraries = map f (subLibraries pkg) } filterAutogenModuleLib lib = lib {- exposedModules = filter (/=autogenModule) (exposedModules lib)+ exposedModules = filter (filterFunction (libBuildInfo lib)) (exposedModules lib) } filterAutogenModuleBI bi = bi {- otherModules = filter (/=autogenModule) (otherModules bi)+ otherModules = filter (filterFunction bi) (otherModules bi) }- autogenModule = autogenModuleName pkg_descr0+ pathsModule = autogenPathsModuleName pkg_descr0+ filterFunction bi = \mn ->+ mn /= pathsModule+ && not (elem mn (autogenModules bi)) -- | Prepare a directory tree of source files for a snapshot version. -- It is expected that the appropriate snapshot version has already been set@@ -366,10 +385,7 @@ -- to the given date. -- snapshotVersion :: UTCTime -> Version -> Version-snapshotVersion date version = version {- versionBranch = versionBranch version- ++ [dateToSnapshotNumber date]- }+snapshotVersion date = alterVersion (++ [dateToSnapshotNumber date]) -- | Given a date produce a corresponding integer representation. -- For example given a date @18/03/2008@ produce the number @20080318@.@@ -395,7 +411,7 @@ let tarBallFilePath = targetPref </> tarBallName pkg_descr <.> "tar.gz" (tarProg, _) <- requireProgram verbosity tarProgram- (maybe defaultProgramConfiguration withPrograms mb_lbi)+ (maybe defaultProgramDb withPrograms mb_lbi) let formatOptSupported = maybe False (== "YES") $ Map.lookup "Supports --format" (programProperties tarProg)@@ -410,18 +426,22 @@ return tarBallFilePath -- | Given a buildinfo, return the names of all source files.-allSourcesBuildInfo :: BuildInfo+allSourcesBuildInfo :: Verbosity+ -> BuildInfo -> [PPSuffixHandler] -- ^ Extra preprocessors -> [ModuleName] -- ^ Exposed modules -> IO [FilePath]-allSourcesBuildInfo bi pps modules = do+allSourcesBuildInfo verbosity bi pps modules = do let searchDirs = hsSourceDirs bi- sources <- fmap concat $ sequence $+ sources <- fmap concat $ sequenceA $ [ let file = ModuleName.toFilePath module_+ -- NB: *Not* findFileWithExtension, because the same source+ -- file may show up in multiple paths due to a conditional;+ -- we need to package all of them. See #367. in findAllFilesWithExtension suffixes searchDirs file >>= nonEmpty (notFound module_) return | module_ <- modules ++ otherModules bi ]- bootFiles <- sequence+ bootFiles <- sequenceA [ let file = ModuleName.toFilePath module_ fileExts = ["hs-boot", "lhs-boot"] in findFileWithExtension fileExts (hsSourceDirs bi) file@@ -432,9 +452,10 @@ where nonEmpty x _ [] = x nonEmpty _ f xs = f xs- suffixes = ppSuffixes pps ++ ["hs", "lhs"]- notFound m = die $ "Error: Could not find module: " ++ display m- ++ " with any suffix: " ++ show suffixes+ suffixes = ppSuffixes pps ++ ["hs", "lhs", "hsig", "lhsig"]+ notFound m = die' verbosity $ "Error: Could not find module: " ++ display m+ ++ " with any suffix: " ++ show suffixes ++ ". If the module "+ ++ "is autogenerated it should be added to 'autogen-modules'." printPackageProblems :: Verbosity -> PackageDescription -> IO ()@@ -466,12 +487,15 @@ -> (PackageDescription -> PackageDescription) mapAllBuildInfo f pkg = pkg { library = fmap mapLibBi (library pkg),+ subLibraries = fmap mapLibBi (subLibraries pkg),+ foreignLibs = fmap mapFLibBi (foreignLibs pkg), executables = fmap mapExeBi (executables pkg), testSuites = fmap mapTestBi (testSuites pkg), benchmarks = fmap mapBenchBi (benchmarks pkg) } where- mapLibBi lib = lib { libBuildInfo = f (libBuildInfo lib) }- mapExeBi exe = exe { buildInfo = f (buildInfo exe) }- mapTestBi t = t { testBuildInfo = f (testBuildInfo t) }- mapBenchBi bm = bm { benchmarkBuildInfo = f (benchmarkBuildInfo bm) }+ mapLibBi lib = lib { libBuildInfo = f (libBuildInfo lib) }+ mapFLibBi flib = flib { foreignLibBuildInfo = f (foreignLibBuildInfo flib) }+ mapExeBi exe = exe { buildInfo = f (buildInfo exe) }+ mapTestBi tst = tst { testBuildInfo = f (testBuildInfo tst) }+ mapBenchBi bm = bm { benchmarkBuildInfo = f (benchmarkBuildInfo bm) }
Distribution/Simple/Test.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Test@@ -15,11 +18,16 @@ ( test ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.UnqualComponentName import qualified Distribution.PackageDescription as PD import Distribution.Simple.Compiler import Distribution.Simple.Hpc import Distribution.Simple.InstallDirs import qualified Distribution.Simple.LocalBuildInfo as LBI+import qualified Distribution.Types.LocalBuildInfo as LBI import Distribution.Simple.Setup import Distribution.Simple.UserHooks import qualified Distribution.Simple.Test.ExeV10 as ExeV10@@ -29,7 +37,6 @@ import Distribution.TestSuite import Distribution.Text -import Control.Monad ( when, unless, filterM ) import System.Directory ( createDirectoryIfMissing, doesFileExist, getDirectoryContents , removeFile )@@ -49,23 +56,22 @@ testLogDir = distPref </> "test" testNames = args pkgTests = PD.testSuites pkg_descr- enabledTests = [ t | t <- pkgTests- , PD.testEnabled t- , PD.buildable (PD.testBuildInfo t) ]+ enabledTests = LBI.enabledTestLBIs pkg_descr lbi - doTest :: (PD.TestSuite, Maybe TestSuiteLog) -> IO TestSuiteLog- doTest (suite, _) =+ doTest :: ((PD.TestSuite, LBI.ComponentLocalBuildInfo),+ Maybe TestSuiteLog) -> IO TestSuiteLog+ doTest ((suite, clbi), _) = case PD.testInterface suite of PD.TestSuiteExeV10 _ _ ->- ExeV10.runTest pkg_descr lbi flags suite+ ExeV10.runTest pkg_descr lbi clbi flags suite PD.TestSuiteLibV09 _ _ ->- LibV09.runTest pkg_descr lbi flags suite+ LibV09.runTest pkg_descr lbi clbi flags suite _ -> return TestSuiteLog { testSuiteName = PD.testName suite , testLogs = TestLog- { testName = PD.testName suite+ { testName = unUnqualComponentName $ PD.testName suite , testOptionsReturned = [] , testResult = Error $ "No support for running test suite type: "@@ -79,42 +85,43 @@ exitWith ExitSuccess when (PD.hasTests pkg_descr && null enabledTests) $- die $ "No test suites enabled. Did you remember to configure with "- ++ "\'--enable-tests\'?"+ die' verbosity $+ "No test suites enabled. Did you remember to configure with "+ ++ "\'--enable-tests\'?" testsToRun <- case testNames of [] -> return $ zip enabledTests $ repeat Nothing- names -> flip mapM names $ \tName ->+ names -> flip traverse names $ \tName -> let testMap = zip enabledNames enabledTests- enabledNames = map PD.testName enabledTests+ enabledNames = map (PD.testName . fst) enabledTests allNames = map PD.testName pkgTests- in case lookup tName testMap of+ tCompName = mkUnqualComponentName tName+ in case lookup tCompName testMap of Just t -> return (t, Nothing)- _ | tName `elem` allNames ->- die $ "Package configured with test suite "+ _ | tCompName `elem` allNames ->+ die' verbosity $ "Package configured with test suite " ++ tName ++ " disabled."- | otherwise -> die $ "no such test: " ++ tName+ | otherwise -> die' verbosity $ "no such test: " ++ tName createDirectoryIfMissing True testLogDir -- Delete ordinary files from test log directory. getDirectoryContents testLogDir >>= filterM doesFileExist . map (testLogDir </>)- >>= mapM_ removeFile+ >>= traverse_ removeFile let totalSuites = length testsToRun notice verbosity $ "Running " ++ show totalSuites ++ " test suites..."- suites <- mapM doTest testsToRun+ suites <- traverse doTest testsToRun let packageLog = (localPackageLog pkg_descr lbi) { testSuites = suites } packageLogFile = (</>) testLogDir $ packageLogPath machineTemplate pkg_descr lbi allOk <- summarizePackage verbosity packageLog writeFile packageLogFile $ show packageLog - let isCoverageEnabled = fromFlag $ configCoverage $ LBI.configFlags lbi- when isCoverageEnabled $+ when (LBI.testCoverage lbi) $ markupPackage verbosity lbi distPref (display $ PD.package pkg_descr) $- map fst testsToRun+ map (fst . fst) testsToRun unless allOk exitFailure
Distribution/Simple/Test/ExeV10.hs view
@@ -1,7 +1,14 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ module Distribution.Simple.Test.ExeV10 ( runTest ) where +import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.UnqualComponentName import Distribution.Compat.CreatePipe import Distribution.Compat.Environment import qualified Distribution.PackageDescription as PD@@ -11,6 +18,7 @@ import Distribution.Simple.Hpc import Distribution.Simple.InstallDirs import qualified Distribution.Simple.LocalBuildInfo as LBI+import qualified Distribution.Types.LocalBuildInfo as LBI import Distribution.Simple.Setup import Distribution.Simple.Test.Log import Distribution.Simple.Utils@@ -20,7 +28,6 @@ import Distribution.Verbosity import Control.Concurrent (forkIO)-import Control.Monad ( unless, void, when ) import System.Directory ( createDirectoryIfMissing, doesDirectoryExist, doesFileExist , getCurrentDirectory, removeDirectoryRecursive )@@ -30,22 +37,23 @@ runTest :: PD.PackageDescription -> LBI.LocalBuildInfo+ -> LBI.ComponentLocalBuildInfo -> TestFlags -> PD.TestSuite -> IO TestSuiteLog-runTest pkg_descr lbi flags suite = do- let isCoverageEnabled = fromFlag $ configCoverage $ LBI.configFlags lbi+runTest pkg_descr lbi clbi flags suite = do+ let isCoverageEnabled = LBI.testCoverage lbi way = guessWay lbi- tixDir_ = tixDir distPref way $ PD.testName suite+ tixDir_ = tixDir distPref way testName' pwd <- getCurrentDirectory existingEnv <- getEnvironment - let cmd = LBI.buildDir lbi </> PD.testName suite- </> PD.testName suite <.> exeExtension+ let cmd = LBI.buildDir lbi </> testName'+ </> testName' <.> exeExtension -- Check that the test executable exists. exists <- doesFileExist cmd- unless exists $ die $ "Error: Could not find test program \"" ++ cmd+ unless exists $ die' verbosity $ "Error: Could not find test program \"" ++ cmd ++ "\". Did you build the package first?" -- Remove old .tix files if appropriate.@@ -57,7 +65,7 @@ createDirectoryIfMissing True tixDir_ -- Write summary notices indicating start of test suite- notice verbosity $ summarizeSuiteStart $ PD.testName suite+ notice verbosity $ summarizeSuiteStart $ testName' (wOut, wErr, logText) <- case details of Direct -> return (stdout, stderr, "")@@ -78,7 +86,7 @@ let opts = map (testOption pkg_descr lbi suite) (testOptions flags) dataDirPath = pwd </> PD.dataDir pkg_descr- tixFile = pwd </> tixFilePath distPref way (PD.testName suite)+ tixFile = pwd </> tixFilePath distPref way (testName') pkgPathEnv = (pkgPathEnvVar pkg_descr "datadir", dataDirPath) : existingEnv shellEnv = [("HPCTIXFILE", tixFile) | isCoverageEnabled] ++ pkgPathEnv@@ -86,8 +94,6 @@ -- Add (DY)LD_LIBRARY_PATH if needed shellEnv' <- if LBI.withDynExe lbi then do let (Platform _ os) = LBI.hostPlatform lbi- clbi = LBI.getComponentLocalBuildInfo lbi- (LBI.CTestName (PD.testName suite)) paths <- LBI.depLibraryPaths True False lbi clbi return (addLibraryPath os paths shellEnv) else return shellEnv@@ -101,7 +107,7 @@ let suiteLog = buildLog exit -- Write summary notice to log file indicating start of test suite- appendFile (logFile suiteLog) $ summarizeSuiteStart $ PD.testName suite+ appendFile (logFile suiteLog) $ summarizeSuiteStart $ testName' -- Append contents of temporary log file to the final human- -- readable log file@@ -127,6 +133,8 @@ return suiteLog where+ testName' = unUnqualComponentName $ PD.testName suite+ distPref = fromFlag $ testDistPref flags verbosity = fromFlag $ testVerbosity flags details = fromFlag $ testShowDetails flags@@ -136,19 +144,19 @@ let r = case exit of ExitSuccess -> Pass ExitFailure c -> Fail $ "exit code: " ++ show c- n = PD.testName suite+ --n = unUnqualComponentName $ PD.testName suite l = TestLog- { testName = n+ { testName = testName' , testOptionsReturned = [] , testResult = r } in TestSuiteLog- { testSuiteName = n+ { testSuiteName = PD.testName suite , testLogs = l , logFile = testLogDir </> testSuiteLogPath (fromFlag $ testHumanLog flags)- pkg_descr lbi n l+ pkg_descr lbi testName' l } -- TODO: This is abusing the notion of a 'PathTemplate'. The result isn't@@ -164,4 +172,4 @@ env = initialPathTemplateEnv (PD.package pkg_descr) (LBI.localUnitId lbi) (compilerInfo $ LBI.compiler lbi) (LBI.hostPlatform lbi) ++- [(TestSuiteNameVar, toPathTemplate $ PD.testName suite)]+ [(TestSuiteNameVar, toPathTemplate $ unUnqualComponentName $ PD.testName suite)]
Distribution/Simple/Test/LibV09.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ module Distribution.Simple.Test.LibV09 ( runTest -- Test stub@@ -6,6 +9,10 @@ , writeSimpleTestStub ) where +import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Types.UnqualComponentName+ import Distribution.Compat.CreatePipe import Distribution.Compat.Environment import Distribution.Compat.Internal.TempFile@@ -17,6 +24,7 @@ import Distribution.Simple.Hpc import Distribution.Simple.InstallDirs import qualified Distribution.Simple.LocalBuildInfo as LBI+import qualified Distribution.Types.LocalBuildInfo as LBI import Distribution.Simple.Setup import Distribution.Simple.Test.Log import Distribution.Simple.Utils@@ -25,11 +33,10 @@ import Distribution.Text import Distribution.Verbosity -import Control.Exception ( bracket )-import Control.Monad ( when, unless )-import Data.Maybe ( mapMaybe )+import qualified Control.Exception as CE import System.Directory- ( createDirectoryIfMissing, doesDirectoryExist, doesFileExist+ ( createDirectoryIfMissing, canonicalizePath+ , doesDirectoryExist, doesFileExist , getCurrentDirectory, removeDirectoryRecursive, removeFile , setCurrentDirectory ) import System.Exit ( ExitCode(..), exitWith )@@ -39,11 +46,12 @@ runTest :: PD.PackageDescription -> LBI.LocalBuildInfo+ -> LBI.ComponentLocalBuildInfo -> TestFlags -> PD.TestSuite -> IO TestSuiteLog-runTest pkg_descr lbi flags suite = do- let isCoverageEnabled = fromFlag $ configCoverage $ LBI.configFlags lbi+runTest pkg_descr lbi clbi flags suite = do+ let isCoverageEnabled = LBI.testCoverage lbi way = guessWay lbi pwd <- getCurrentDirectory@@ -53,22 +61,23 @@ </> stubName suite <.> exeExtension -- Check that the test executable exists. exists <- doesFileExist cmd- unless exists $ die $ "Error: Could not find test program \"" ++ cmd- ++ "\". Did you build the package first?"+ unless exists $+ die' verbosity $ "Error: Could not find test program \"" ++ cmd+ ++ "\". Did you build the package first?" -- Remove old .tix files if appropriate. unless (fromFlag $ testKeepTix flags) $ do- let tDir = tixDir distPref way $ PD.testName suite+ let tDir = tixDir distPref way testName' exists' <- doesDirectoryExist tDir when exists' $ removeDirectoryRecursive tDir -- Create directory for HPC files.- createDirectoryIfMissing True $ tixDir distPref way $ PD.testName suite+ createDirectoryIfMissing True $ tixDir distPref way testName' -- Write summary notices indicating start of test suite- notice verbosity $ summarizeSuiteStart $ PD.testName suite+ notice verbosity $ summarizeSuiteStart testName' - suiteLog <- bracket openCabalTemp deleteIfExists $ \tempLog -> do+ suiteLog <- CE.bracket openCabalTemp deleteIfExists $ \tempLog -> do (rOut, wOut) <- createPipe @@ -76,23 +85,20 @@ (Just wIn, _, _, process) <- do let opts = map (testOption pkg_descr lbi suite) $ testOptions flags dataDirPath = pwd </> PD.dataDir pkg_descr- tixFile = pwd </> tixFilePath distPref way (PD.testName suite)+ tixFile = pwd </> tixFilePath distPref way testName' pkgPathEnv = (pkgPathEnvVar pkg_descr "datadir", dataDirPath) : existingEnv shellEnv = [("HPCTIXFILE", tixFile) | isCoverageEnabled] ++ pkgPathEnv -- Add (DY)LD_LIBRARY_PATH if needed- shellEnv' <- if LBI.withDynExe lbi- then do- let (Platform _ os) = LBI.hostPlatform lbi- clbi = LBI.getComponentLocalBuildInfo- lbi- (LBI.CTestName- (PD.testName suite))- paths <- LBI.depLibraryPaths- True False lbi clbi- return (addLibraryPath os paths shellEnv)- else return shellEnv+ shellEnv' <-+ if LBI.withDynExe lbi+ then do+ let (Platform _ os) = LBI.hostPlatform lbi+ paths <- LBI.depLibraryPaths True False lbi clbi+ cpath <- canonicalizePath $ LBI.componentBuildDir lbi clbi+ return (addLibraryPath os (cpath : paths) shellEnv)+ else return shellEnv createProcessWithEnv verbosity cmd opts Nothing (Just shellEnv') -- these handles are closed automatically CreatePipe (UseHandle wOut) (UseHandle wOut)@@ -114,14 +120,14 @@ let finalLogName l = testLogDir </> testSuiteLogPath (fromFlag $ testHumanLog flags) pkg_descr lbi- (testSuiteName l) (testLogs l)+ (unUnqualComponentName $ testSuiteName l) (testLogs l) -- Generate TestSuiteLog from executable exit code and a machine- -- readable test log- suiteLog <- fmap ((\l -> l { logFile = finalLogName l }) . read)+ suiteLog <- fmap ((\l -> l { logFile = finalLogName l }) . read) -- TODO: eradicateNoParse $ readFile tempLog -- Write summary notice to log file indicating start of test suite- appendFile (logFile suiteLog) $ summarizeSuiteStart $ PD.testName suite+ appendFile (logFile suiteLog) $ summarizeSuiteStart testName' appendFile (logFile suiteLog) logText @@ -146,6 +152,8 @@ return suiteLog where+ testName' = unUnqualComponentName $ PD.testName suite+ deleteIfExists file = do exists <- doesFileExist file when exists $ removeFile file@@ -171,13 +179,13 @@ env = initialPathTemplateEnv (PD.package pkg_descr) (LBI.localUnitId lbi) (compilerInfo $ LBI.compiler lbi) (LBI.hostPlatform lbi) ++- [(TestSuiteNameVar, toPathTemplate $ PD.testName suite)]+ [(TestSuiteNameVar, toPathTemplate $ unUnqualComponentName $ PD.testName suite)] -- Test stub ---------- -- | The name of the stub executable associated with a library 'TestSuite'. stubName :: PD.TestSuite -> FilePath-stubName t = PD.testName t ++ "Stub"+stubName t = unUnqualComponentName (PD.testName t) ++ "Stub" -- | The filename of the source file for the stub executable associated with a -- library 'TestSuite'.@@ -189,7 +197,7 @@ -- is being created -> FilePath -- ^ path to directory where stub source -- should be located- -> IO ()+ -> NoCallStackIO () writeSimpleTestStub t dir = do createDirectoryIfMissing True dir let filename = dir </> stubFilePath t@@ -211,11 +219,18 @@ -- of detectable errors when Cabal is compiled. stubMain :: IO [Test] -> IO () stubMain tests = do- (f, n) <- fmap read getContents+ (f, n) <- fmap read getContents -- TODO: eradicateNoParse dir <- getCurrentDirectory- results <- tests >>= stubRunTests+ results <- (tests >>= stubRunTests) `CE.catch` errHandler setCurrentDirectory dir stubWriteLog f n results+ where+ errHandler :: CE.SomeException -> NoCallStackIO TestLogs+ errHandler e = case CE.fromException e of+ Just CE.UserInterrupt -> CE.throwIO e+ _ -> return $ TestLog { testName = "Cabal test suite exception",+ testOptionsReturned = [],+ testResult = Error $ show e } -- | The test runner used in library "TestSuite" stub executables. Runs a list -- of 'Test's. An executable calling this function is meant to be invoked as@@ -226,7 +241,7 @@ -- by the calling Cabal process. stubRunTests :: [Test] -> IO TestLogs stubRunTests tests = do- logs <- mapM stubRunTests' tests+ logs <- traverse stubRunTests' tests return $ GroupLogs "Default" logs where stubRunTests' (Test t) = do@@ -242,7 +257,7 @@ } finish (Progress _ next) = next >>= finish stubRunTests' g@(Group {}) = do- logs <- mapM stubRunTests' $ groupTests g+ logs <- traverse stubRunTests' $ groupTests g return $ GroupLogs (groupName g) logs stubRunTests' (ExtraOptions _ t) = stubRunTests' t maybeDefaultOption opt =@@ -251,7 +266,7 @@ -- | From a test stub, write the 'TestSuiteLog' to temporary file for the calling -- Cabal process to read.-stubWriteLog :: FilePath -> String -> TestLogs -> IO ()+stubWriteLog :: FilePath -> UnqualComponentName -> TestLogs -> NoCallStackIO () stubWriteLog f n logs = do let testLog = TestSuiteLog { testSuiteName = n, testLogs = logs, logFile = f } writeFile (logFile testLog) $ show testLog
Distribution/Simple/Test/Log.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ module Distribution.Simple.Test.Log ( PackageLog(..) , TestLogs(..)@@ -11,7 +14,11 @@ , testSuiteLogPath ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Package+import Distribution.Types.UnqualComponentName import qualified Distribution.PackageDescription as PD import Distribution.Simple.Compiler import Distribution.Simple.InstallDirs@@ -21,9 +28,7 @@ import Distribution.System import Distribution.TestSuite import Distribution.Verbosity--import Control.Monad ( when )-import Data.Char ( toUpper )+import Distribution.Text -- | Logs all test results for a package, broken down first by test suite and -- then by test case.@@ -46,7 +51,7 @@ -- | Logs test suite results, itemized by test case. data TestSuiteLog = TestSuiteLog- { testSuiteName :: String+ { testSuiteName :: UnqualComponentName , testLogs :: TestLogs , logFile :: FilePath -- path to human-readable log file }@@ -150,7 +155,7 @@ -- output for certain verbosity or test filter levels. summarizeSuiteFinish :: TestSuiteLog -> String summarizeSuiteFinish testLog = unlines- [ "Test suite " ++ testSuiteName testLog ++ ": " ++ resStr+ [ "Test suite " ++ display (testSuiteName testLog) ++ ": " ++ resStr , "Test suite logged to: " ++ logFile testLog ] where resStr = map toUpper (resultString $ testLogs testLog)
Distribution/Simple/UHC.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.UHC@@ -19,6 +22,9 @@ buildLib, buildExe, installLib, registerPackage, inplacePackageDbPath ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Compat.ReadP import Distribution.InstalledPackageInfo import Distribution.Package hiding (installedUnitId)@@ -30,14 +36,13 @@ import Distribution.Simple.Program import Distribution.Simple.Utils import Distribution.Text+import Distribution.Types.MungedPackageId import Distribution.Verbosity import Distribution.Version import Distribution.System import Language.Haskell.Extension -import Control.Monad-import Data.List-import qualified Data.Map as M ( empty )+import qualified Data.Map as Map ( empty ) import System.Directory import System.FilePath @@ -45,13 +50,13 @@ -- Configuring configure :: Verbosity -> Maybe FilePath -> Maybe FilePath- -> ProgramConfiguration -> IO (Compiler, Maybe Platform, ProgramConfiguration)-configure verbosity hcPath _hcPkgPath conf = do+ -> ProgramDb -> IO (Compiler, Maybe Platform, ProgramDb)+configure verbosity hcPath _hcPkgPath progdb = do - (_uhcProg, uhcVersion, conf') <-+ (_uhcProg, uhcVersion, progdb') <- requireProgramVersion verbosity uhcProgram- (orLaterVersion (Version [1,0,2] []))- (userMaybeSpecifyPath "uhc" hcPath conf)+ (orLaterVersion (mkVersion [1,0,2]))+ (userMaybeSpecifyPath "uhc" hcPath progdb) let comp = Compiler { compilerId = CompilerId UHC uhcVersion,@@ -59,10 +64,10 @@ compilerCompat = [], compilerLanguages = uhcLanguages, compilerExtensions = uhcLanguageExtensions,- compilerProperties = M.empty+ compilerProperties = Map.empty } compPlatform = Nothing- return (comp, compPlatform, conf')+ return (comp, compPlatform, progdb') uhcLanguages :: [(Language, C.Flag)] uhcLanguages = [(Haskell98, "")]@@ -88,16 +93,16 @@ (OverlappingInstances, alwaysOn), (FlexibleInstances, alwaysOn)] -getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack -> ProgramConfiguration+getInstalledPackages :: Verbosity -> Compiler -> PackageDBStack -> ProgramDb -> IO InstalledPackageIndex-getInstalledPackages verbosity comp packagedbs conf = do+getInstalledPackages verbosity comp packagedbs progdb = do let compilerid = compilerId comp- systemPkgDir <- getGlobalPackageDir verbosity conf+ systemPkgDir <- getGlobalPackageDir verbosity progdb userPkgDir <- getUserPackageDir let pkgDirs = nub (concatMap (packageDbPaths userPkgDir systemPkgDir) packagedbs) -- putStrLn $ "pkgdirs: " ++ show pkgDirs pkgs <- liftM (map addBuiltinVersions . concat) $- mapM (\ d -> getDirectoryContents d >>= filterM (isPkgDir (display compilerid) d))+ traverse (\ d -> getDirectoryContents d >>= filterM (isPkgDir (display compilerid) d)) pkgDirs -- putStrLn $ "pkgs: " ++ show pkgs let iPkgs =@@ -107,15 +112,15 @@ -- putStrLn $ "installed pkgs: " ++ show iPkgs return (fromList iPkgs) -getGlobalPackageDir :: Verbosity -> ProgramConfiguration -> IO FilePath-getGlobalPackageDir verbosity conf = do- output <- rawSystemProgramStdoutConf verbosity- uhcProgram conf ["--meta-pkgdir-system"]+getGlobalPackageDir :: Verbosity -> ProgramDb -> IO FilePath+getGlobalPackageDir verbosity progdb = do+ output <- getDbProgramOutput verbosity+ uhcProgram progdb ["--meta-pkgdir-system"] -- call to "lines" necessary, because pkgdir contains an extra newline at the end let [pkgdir] = lines output return pkgdir -getUserPackageDir :: IO FilePath+getUserPackageDir :: NoCallStackIO FilePath getUserPackageDir = do homeDir <- getHomeDirectory return $ homeDir </> ".cabal" </> "lib" -- TODO: determine in some other way@@ -144,7 +149,7 @@ -- | Check if a certain dir contains a valid package. Currently, we are -- looking only for the presence of an installed package configuration. -- TODO: Actually make use of the information provided in the file.-isPkgDir :: String -> String -> String -> IO Bool+isPkgDir :: String -> String -> String -> NoCallStackIO Bool isPkgDir _ _ ('.' : _) = return False -- ignore files starting with a . isPkgDir c dir xs = do let candidate = dir </> uhcPackageDir xs c@@ -170,7 +175,7 @@ systemPkgDir <- getGlobalPackageDir verbosity (withPrograms lbi) userPkgDir <- getUserPackageDir- let runUhcProg = rawSystemProgramConf verbosity uhcProgram (withPrograms lbi)+ let runUhcProg = runDbProgram verbosity uhcProgram (withPrograms lbi) let uhcArgs = -- set package name ["--pkg-build=" ++ display (packageId pkg_descr)] -- common flags lib/exe@@ -181,10 +186,10 @@ -- suboptimal: UHC does not understand module names, so -- we replace periods by path separators ++ map (map (\ c -> if c == '.' then pathSeparator else c))- (map display (libModules lib))+ (map display (allLibModules lib clbi)) runUhcProg uhcArgs- + return () buildExe :: Verbosity -> PackageDescription -> LocalBuildInfo@@ -192,13 +197,13 @@ buildExe verbosity _pkg_descr lbi exe clbi = do systemPkgDir <- getGlobalPackageDir verbosity (withPrograms lbi) userPkgDir <- getUserPackageDir- let runUhcProg = rawSystemProgramConf verbosity uhcProgram (withPrograms lbi)+ let runUhcProg = runDbProgram verbosity uhcProgram (withPrograms lbi) let uhcArgs = -- common flags lib/exe constructUHCCmdLine userPkgDir systemPkgDir lbi (buildInfo exe) clbi (buildDir lbi) verbosity -- output file- ++ ["--output", buildDir lbi </> exeName exe]+ ++ ["--output", buildDir lbi </> display (exeName exe)] -- main source module ++ [modulePath exe] runUhcProg uhcArgs@@ -219,11 +224,12 @@ ++ ["--hide-all-packages"] ++ uhcPackageDbOptions user system (withPackageDB lbi) ++ ["--package=uhcbase"]- ++ ["--package=" ++ display (pkgName pkgid) | (_, pkgid) <- componentPackageDeps clbi ]+ ++ ["--package=" ++ display (mungedName pkgid) | (_, pkgid) <- componentPackageDeps clbi ] -- search paths ++ ["-i" ++ odir] ++ ["-i" ++ l | l <- nub (hsSourceDirs bi)]- ++ ["-i" ++ autogenModulesDir lbi]+ ++ ["-i" ++ autogenComponentModulesDir lbi clbi]+ ++ ["-i" ++ autogenPackageModulesDir lbi] -- cpp options ++ ["--optP=" ++ opt | opt <- cppOptions bi] -- output path@@ -266,7 +272,7 @@ registerPackage :: Verbosity -> Compiler- -> ProgramConfiguration+ -> ProgramDb -> PackageDBStack -> InstalledPackageInfo -> IO ()
Distribution/Simple/UserHooks.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.UserHooks@@ -28,6 +31,9 @@ emptyUserHooks, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.PackageDescription import Distribution.Simple.Program import Distribution.Simple.Command@@ -129,6 +135,13 @@ -- |Hook to run after hscolour command. Second arg indicates verbosity level. postHscolour :: Args -> HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO (), + -- |Hook to run before doctest command. Second arg indicates verbosity level.+ preDoctest :: Args -> DoctestFlags -> IO HookedBuildInfo,+ -- |Over-ride this hook to get different behavior during doctest.+ doctestHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> DoctestFlags -> IO (),+ -- |Hook to run after doctest command. Second arg indicates verbosity level.+ postDoctest :: Args -> DoctestFlags -> PackageDescription -> LocalBuildInfo -> IO (),+ -- |Hook to run before haddock command. Second arg indicates verbosity level. preHaddock :: Args -> HaddockFlags -> IO HookedBuildInfo, -- |Over-ride this hook to get different behavior during haddock.@@ -161,7 +174,7 @@ readDesc = return Nothing, hookedPreProcessors = [], hookedPrograms = [],- preConf = rn,+ preConf = rn', confHook = (\_ _ -> return (error "No local build info generated during configure. Over-ride empty configure hook.")), postConf = ru, preBuild = rn',@@ -173,7 +186,7 @@ preClean = rn, cleanHook = ru, postClean = ru,- preCopy = rn,+ preCopy = rn', copyHook = ru, postCopy = ru, preInst = rn,@@ -182,7 +195,7 @@ preSDist = rn, sDistHook = ru, postSDist = ru,- preReg = rn,+ preReg = rn', regHook = ru, postReg = ru, preUnreg = rn,@@ -191,6 +204,9 @@ preHscolour = rn, hscolourHook = ru, postHscolour = ru,+ preDoctest = rn,+ doctestHook = ru,+ postDoctest = ru, preHaddock = rn, haddockHook = ru, postHaddock = ru,
Distribution/Simple/Utils.hs view
@@ -1,4 +1,10 @@-{-# LANGUAGE CPP, ForeignFunctionInterface, ScopedTypeVariables #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE BangPatterns #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.Utils@@ -19,11 +25,20 @@ cabalVersion, -- * logging and errors- die,- dieWithLocation,+ -- Old style+ die, dieWithLocation,+ -- New style+ dieNoVerbosity,+ die', dieWithLocation',+ dieNoWrap, topHandler, topHandlerWith,- warn, notice, setupMessage, info, debug,- debugNoWrap, chattyTry,+ warn,+ notice, noticeNoWrap, noticeDoc,+ setupMessage,+ info, infoNoWrap,+ debug, debugNoWrap,+ chattyTry,+ annotateIO, printRawCommandAndArgs, printRawCommandAndArgsAndEnv, -- * exceptions@@ -111,9 +126,12 @@ withFileContents, writeFileAtomic, rewriteFile,+ rewriteFileEx, -- * Unicode fromUTF8,+ fromUTF8BS,+ fromUTF8LBS, toUTF8, readUTF8File, withUTF8FileContents,@@ -136,21 +154,32 @@ listUnion, listUnionRight, ordNub,+ ordNubBy, ordNubRight, safeTail,+ unintersperse, wrapText, wrapLine,++ -- * FilePath stuff+ isAbsoluteOnAnyPlatform,+ isRelativeOnAnyPlatform, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Text-import Distribution.Package+import Distribution.Utils.Generic import Distribution.ModuleName as ModuleName import Distribution.System import Distribution.Version import Distribution.Compat.CopyFile import Distribution.Compat.Internal.TempFile import Distribution.Compat.Exception+import Distribution.Compat.Stack import Distribution.Verbosity+import Distribution.Types.PackageId #if __GLASGOW_HASKELL__ < 711 #ifdef VERSION_base@@ -166,25 +195,11 @@ import qualified Paths_Cabal (version) #endif -import Control.Monad- ( when, unless, filterM ) import Control.Concurrent.MVar ( newEmptyMVar, putMVar, takeMVar )-import Data.Bits- ( Bits((.|.), (.&.), shiftL, shiftR) )-import Data.Char as Char- ( isDigit, toLower, chr, ord )-import Data.Foldable- ( traverse_ )-import Data.List- ( nub, unfoldr, intercalate, isInfixOf ) import Data.Typeable ( cast )-import Data.Ord- ( comparing )-import qualified Data.ByteString.Lazy as BS import qualified Data.ByteString.Lazy.Char8 as BS.Char8-import qualified Data.Set as Set import System.Directory ( Permissions(executable), getDirectoryContents, getPermissions@@ -200,16 +215,11 @@ , splitExtension, splitExtensions, splitDirectories , searchPathSeparator ) import System.Directory- ( createDirectory, renameFile, removeDirectoryRecursive )+ ( createDirectory, removeDirectoryRecursive ) import System.IO- ( Handle, openFile, openBinaryFile, openBinaryTempFileWithDefaultPermissions- , IOMode(ReadMode), hSetBinaryMode- , hGetContents, stderr, stdout, hPutStr, hFlush, hClose )-import System.IO.Error as IO.Error- ( isDoesNotExistError, isAlreadyExistsError, isUserError- , ioeSetFileName, ioeGetFileName, ioeGetErrorString )+ ( Handle, hSetBinaryMode, hGetContents, stderr, stdout, hPutStr, hFlush+ , hClose, hSetBuffering, BufferMode(..) ) import System.IO.Error- ( ioeSetLocation, ioeGetLocation ) import System.IO.Unsafe ( unsafeInterleaveIO ) import qualified Control.Exception as Exception@@ -222,19 +232,72 @@ ( ProcessHandle, createProcess, rawSystem, runInteractiveProcess , showCommandForUser, waitForProcess) +import qualified Text.PrettyPrint as Disp+ -- We only get our own version number when we're building with ourselves cabalVersion :: Version #if defined(BOOTSTRAPPED_CABAL)-cabalVersion = Paths_Cabal.version+cabalVersion = mkVersion' Paths_Cabal.version #elif defined(CABAL_VERSION)-cabalVersion = Version [CABAL_VERSION] []+cabalVersion = mkVersion [CABAL_VERSION] #else-cabalVersion = Version [1,9999] [] --used when bootstrapping+cabalVersion = mkVersion [1,9999] --used when bootstrapping #endif -- ---------------------------------------------------------------------------- -- Exception and logging utils +-- Cabal's logging infrastructure has a few constraints:+--+-- * We must make all logging formatting and emissions decisions based+-- on the 'Verbosity' parameter, which is the only parameter that is+-- plumbed to enough call-sites to actually be used for this matter.+-- (One of Cabal's "big mistakes" is to have never have defined a+-- monad of its own.)+--+-- * When we 'die', we must raise an IOError. This a backwards+-- compatibility consideration, because that's what we've raised+-- previously, and if we change to any other exception type,+-- exception handlers which match on IOError will no longer work.+-- One case where it is known we rely on IOError being catchable+-- is 'readPkgConfigDb' in cabal-install; there may be other+-- user code that also assumes this.+--+-- * The 'topHandler' does not know what 'Verbosity' is, because+-- it gets called before we've done command line parsing (where+-- the 'Verbosity' parameter would come from).+--+-- This leads to two big architectural choices:+--+-- * Although naively we might imagine 'Verbosity' to be a simple+-- enumeration type, actually it is a full-on abstract data type+-- that may contain arbitrarily complex information. At the+-- moment, it is fully representable as a string, but we might+-- eventually also use verbosity to let users register their+-- own logging handler.+--+-- * When we call 'die', we perform all the formatting and addition+-- of extra information we need, and then ship this in the IOError+-- to the top-level handler. Here are alternate designs that+-- don't work:+--+-- a) Ship the unformatted info to the handler. This doesn't+-- work because at the point the handler gets the message,+-- we've lost call stacks, and even if we did, we don't have access+-- to 'Verbosity' to decide whether or not to render it.+--+-- b) Print the information at the 'die' site, then raise an+-- error. This means that if the exception is subsequently+-- caught by a handler, we will still have emitted the output,+-- which is not the correct behavior.+--+-- For the top-level handler to "know" that an error message+-- contains one of these fully formatted packets, we set a sentinel+-- in one of IOError's extra fields. This is handled by+-- 'ioeSetVerbatim' and 'ioeGetVerbatim'.+--++{-# DEPRECATED dieWithLocation "Messages thrown with dieWithLocation can't be controlled with Verbosity; use dieWithLocation' instead" #-} dieWithLocation :: FilePath -> Maybe Int -> String -> IO a dieWithLocation filename lineno msg = ioError . setLocation lineno@@ -243,12 +306,75 @@ where setLocation Nothing err = err setLocation (Just n) err = ioeSetLocation err (show n)+ _ = callStack -- TODO: Attach CallStack to exception +{-# DEPRECATED die "Messages thrown with die can't be controlled with Verbosity; use die' instead, or dieNoVerbosity if Verbosity truly is not available" #-} die :: String -> IO a-die msg = ioError (userError msg)+die = dieNoVerbosity +dieNoVerbosity :: String -> IO a+dieNoVerbosity msg+ = ioError (userError msg)+ where+ _ = callStack -- TODO: Attach CallStack to exception++-- | Tag an 'IOError' whose error string should be output to the screen+-- verbatim.+ioeSetVerbatim :: IOError -> IOError+ioeSetVerbatim e = ioeSetLocation e "dieVerbatim"++-- | Check if an 'IOError' should be output verbatim to screen.+ioeGetVerbatim :: IOError -> Bool+ioeGetVerbatim e = ioeGetLocation e == "dieVerbatim"++-- | Create a 'userError' whose error text will be output verbatim+verbatimUserError :: String -> IOError+verbatimUserError = ioeSetVerbatim . userError++dieWithLocation' :: Verbosity -> FilePath -> Maybe Int -> String -> IO a+dieWithLocation' verbosity filename mb_lineno msg = withFrozenCallStack $ do+ pname <- getProgName+ ioError . verbatimUserError+ . withMetadata AlwaysMark VerboseTrace verbosity+ . wrapTextVerbosity verbosity+ $ pname ++ ": " +++ filename ++ (case mb_lineno of+ Just lineno -> ":" ++ show lineno+ Nothing -> "") +++ ": " ++ msg++die' :: Verbosity -> String -> IO a+die' verbosity msg = withFrozenCallStack $ do+ pname <- getProgName+ ioError . verbatimUserError+ . withMetadata AlwaysMark VerboseTrace verbosity+ . wrapTextVerbosity verbosity+ $ pname ++ ": " ++ msg++dieNoWrap :: Verbosity -> String -> IO a+dieNoWrap verbosity msg = withFrozenCallStack $ do+ -- TODO: should this have program name or not?+ ioError . verbatimUserError+ . withMetadata AlwaysMark VerboseTrace verbosity+ $ msg++-- | Given a block of IO code that may raise an exception, annotate+-- it with the metadata from the current scope. Use this as close+-- to external code that raises IO exceptions as possible, since+-- this function unconditionally wraps the error message with a trace+-- (so it is NOT idempotent.)+annotateIO :: Verbosity -> IO a -> IO a+annotateIO verbosity = modifyIOError f+ where+ f ioe = ioeSetErrorString ioe+ . withMetadata NeverMark VerboseTrace verbosity+ $ ioeGetErrorString ioe+ topHandlerWith :: forall a. (Exception.SomeException -> IO a) -> IO a -> IO a-topHandlerWith cont prog =+topHandlerWith cont prog = do+ -- By default, stderr to a terminal device is NoBuffering. But this+ -- is *really slow*+ hSetBuffering stderr LineBuffering Exception.catches prog [ Exception.Handler rethrowAsyncExceptions , Exception.Handler rethrowExitStatus@@ -256,38 +382,47 @@ ] where -- Let async exceptions rise to the top for the default top-handler- rethrowAsyncExceptions :: Exception.AsyncException -> IO a- rethrowAsyncExceptions = throwIO+ rethrowAsyncExceptions :: Exception.AsyncException -> NoCallStackIO a+ rethrowAsyncExceptions a = throwIO a -- ExitCode gets thrown asynchronously too, and we don't want to print it- rethrowExitStatus :: ExitCode -> IO a+ rethrowExitStatus :: ExitCode -> NoCallStackIO a rethrowExitStatus = throwIO -- Print all other exceptions- handle :: Exception.SomeException -> IO a+ handle :: Exception.SomeException -> NoCallStackIO a handle se = do hFlush stdout pname <- getProgName- hPutStr stderr (wrapText (message pname se))+ hPutStr stderr (message pname se) cont se message :: String -> Exception.SomeException -> String message pname (Exception.SomeException se) = case cast se :: Maybe Exception.IOException of- Just ioe | isUserError ioe ->+ Just ioe+ | ioeGetVerbatim ioe ->+ -- Use the message verbatim+ ioeGetErrorString ioe+ | isUserError ioe -> let file = case ioeGetFileName ioe of Nothing -> "" Just path -> path ++ location ++ ": " location = case ioeGetLocation ioe of- l@(n:_) | Char.isDigit n -> ':' : l+ l@(n:_) | isDigit n -> ':' : l _ -> "" detail = ioeGetErrorString ioe- in pname ++ ": " ++ file ++ detail+ in wrapText (pname ++ ": " ++ file ++ detail) _ ->+ displaySomeException se++-- | BC wrapper around 'Exception.displayException'.+displaySomeException :: Exception.Exception e => e -> String+displaySomeException se = #if __GLASGOW_HASKELL__ < 710- show se+ show se #else- Exception.displayException se+ Exception.displayException se #endif topHandler :: IO a -> IO a@@ -298,10 +433,12 @@ -- We display these at the 'normal' verbosity level. -- warn :: Verbosity -> String -> IO ()-warn verbosity msg =+warn verbosity msg = withFrozenCallStack $ do when (verbosity >= normal) $ do hFlush stdout- hPutStr stderr (wrapText ("Warning: " ++ msg))+ hPutStr stderr . withMetadata NormalMark FlagTrace verbosity+ . wrapTextVerbosity verbosity+ $ "Warning: " ++ msg -- | Useful status messages. --@@ -311,39 +448,74 @@ -- enough information to know that things are working but not floods of detail. -- notice :: Verbosity -> String -> IO ()-notice verbosity msg =- when (verbosity >= normal) $- putStr (wrapText msg)+notice verbosity msg = withFrozenCallStack $ do+ when (verbosity >= normal) $ do+ hPutStr stdout . withMetadata NormalMark FlagTrace verbosity+ . wrapTextVerbosity verbosity+ $ msg +-- | Display a message at 'normal' verbosity level, but without+-- wrapping.+--+noticeNoWrap :: Verbosity -> String -> IO ()+noticeNoWrap verbosity msg = withFrozenCallStack $ do+ when (verbosity >= normal) $ do+ hPutStr stdout . withMetadata NormalMark FlagTrace verbosity $ msg++-- | Pretty-print a 'Disp.Doc' status message at 'normal' verbosity+-- level. Use this if you need fancy formatting.+--+noticeDoc :: Verbosity -> Disp.Doc -> IO ()+noticeDoc verbosity msg = withFrozenCallStack $ do+ when (verbosity >= normal) $ do+ hPutStr stdout . withMetadata NormalMark FlagTrace verbosity+ . Disp.renderStyle defaultStyle $ msg++-- | Display a "setup status message". Prefer using setupMessage'+-- if possible.+-- setupMessage :: Verbosity -> String -> PackageIdentifier -> IO ()-setupMessage verbosity msg pkgid =- notice verbosity (msg ++ ' ': display pkgid ++ "...")+setupMessage verbosity msg pkgid = withFrozenCallStack $ do+ noticeNoWrap verbosity (msg ++ ' ': display pkgid ++ "...") -- | More detail on the operation of some action. -- -- We display these messages when the verbosity level is 'verbose' -- info :: Verbosity -> String -> IO ()-info verbosity msg =- when (verbosity >= verbose) $- putStr (wrapText msg)+info verbosity msg = withFrozenCallStack $+ when (verbosity >= verbose) $ do+ hPutStr stdout . withMetadata NeverMark FlagTrace verbosity+ . wrapTextVerbosity verbosity+ $ msg +infoNoWrap :: Verbosity -> String -> IO ()+infoNoWrap verbosity msg = withFrozenCallStack $+ when (verbosity >= verbose) $ do+ hPutStr stdout . withMetadata NeverMark FlagTrace verbosity+ $ msg+ -- | Detailed internal debugging information -- -- We display these messages when the verbosity level is 'deafening' -- debug :: Verbosity -> String -> IO ()-debug verbosity msg =+debug verbosity msg = withFrozenCallStack $ when (verbosity >= deafening) $ do- putStr (wrapText msg)+ hPutStr stdout . withMetadata NeverMark FlagTrace verbosity+ . wrapTextVerbosity verbosity+ $ msg+ -- ensure that we don't lose output if we segfault/infinite loop hFlush stdout -- | A variant of 'debug' that doesn't perform the automatic line -- wrapping. Produces better output in some cases. debugNoWrap :: Verbosity -> String -> IO ()-debugNoWrap verbosity msg =+debugNoWrap verbosity msg = withFrozenCallStack $ when (verbosity >= deafening) $ do- putStrLn msg+ hPutStr stdout . withMetadata NeverMark FlagTrace verbosity+ $ msg+ -- ensure that we don't lose output if we segfault/infinite loop hFlush stdout -- | Perform an IO action, catching any IO exceptions and printing an error@@ -357,7 +529,7 @@ -- | Run an IO computation, returning @e@ if it raises a "file -- does not exist" error.-handleDoesNotExist :: a -> IO a -> IO a+handleDoesNotExist :: a -> NoCallStackIO a -> NoCallStackIO a handleDoesNotExist e = Exception.handleJust (\ioe -> if isDoesNotExistError ioe then Just ioe else Nothing)@@ -366,31 +538,109 @@ -- ----------------------------------------------------------------------------- -- Helper functions --- | Wraps text to the default line width. Existing newlines are preserved.-wrapText :: String -> String-wrapText = unlines- . map (intercalate "\n"- . map unwords- . wrapLine 79- . words)- . lines+-- | Wraps text unless the @+nowrap@ verbosity flag is active+wrapTextVerbosity :: Verbosity -> String -> String+wrapTextVerbosity verb+ | isVerboseNoWrap verb = withTrailingNewline+ | otherwise = wrapText --- | Wraps a list of words to a list of lines of words of a particular width.-wrapLine :: Int -> [String] -> [[String]]-wrapLine width = wrap 0 []- where wrap :: Int -> [String] -> [String] -> [[String]]- wrap 0 [] (w:ws)- | length w + 1 > width- = wrap (length w) [w] ws- wrap col line (w:ws)- | col + length w + 1 > width- = reverse line : wrap 0 [] (w:ws)- wrap col line (w:ws)- = let col' = col + length w + 1- in wrap col' (w:line) ws- wrap _ [] [] = []- wrap _ line [] = [reverse line]+-- | Wrap output with a marker if @+markoutput@ verbosity flag is set.+--+-- NB: Why is markoutput done with start/end markers, and not prefixes?+-- Markers are more convenient to add (if we want to add prefixes,+-- we have to 'lines' and then 'map'; here's it's just some+-- concatenates). Note that even in the prefix case, we can't+-- guarantee that the markers are unambiguous, because some of+-- Cabal's output comes straight from external programs, where+-- we don't have the ability to interpose on the output.+--+withOutputMarker :: Verbosity -> String -> String+withOutputMarker v xs | not (isVerboseMarkOutput v) = xs+withOutputMarker _ "" = "" -- Minor optimization, don't mark uselessly+withOutputMarker _ xs =+ "-----BEGIN CABAL OUTPUT-----\n" +++ withTrailingNewline xs +++ "-----END CABAL OUTPUT-----\n" +-- | Append a trailing newline to a string if it does not+-- already have a trailing newline.+--+withTrailingNewline :: String -> String+withTrailingNewline "" = ""+withTrailingNewline (x:xs) = x : go x xs+ where+ go _ (c:cs) = c : go c cs+ go '\n' "" = ""+ go _ "" = "\n"++-- | Prepend a call-site and/or call-stack based on Verbosity+--+withCallStackPrefix :: WithCallStack (TraceWhen -> Verbosity -> String -> String)+withCallStackPrefix tracer verbosity s = withFrozenCallStack $+ (if isVerboseCallSite verbosity+ then parentSrcLocPrefix +++ -- Hack: need a newline before starting output marker :(+ if isVerboseMarkOutput verbosity+ then "\n"+ else ""+ else "") +++ (case traceWhen verbosity tracer of+ Just pre -> pre ++ prettyCallStack callStack ++ "\n"+ Nothing -> "") +++ s++-- | When should we emit the call stack? We always emit+-- for internal errors, emit the trace for errors when we+-- are in verbose mode, and otherwise only emit it if+-- explicitly asked for using the @+callstack@ verbosity+-- flag. (At the moment, 'AlwaysTrace' is not used.+--+data TraceWhen+ = AlwaysTrace+ | VerboseTrace+ | FlagTrace+ deriving (Eq)++-- | Determine if we should emit a call stack.+-- If we trace, it also emits any prefix we should append.+traceWhen :: Verbosity -> TraceWhen -> Maybe String+traceWhen _ AlwaysTrace = Just ""+traceWhen v VerboseTrace | v >= verbose = Just ""+traceWhen v FlagTrace | isVerboseCallStack v = Just "----\n"+traceWhen _ _ = Nothing++-- | When should we output the marker? Things like 'die'+-- always get marked, but a 'NormalMark' will only be+-- output if we're not a quiet verbosity.+--+data MarkWhen = AlwaysMark | NormalMark | NeverMark++-- | Add all necessary metadata to a logging message+--+withMetadata :: WithCallStack (MarkWhen -> TraceWhen -> Verbosity -> String -> String)+withMetadata marker tracer verbosity x = withFrozenCallStack $+ -- NB: order matters. Output marker first because we+ -- don't want to capture call stacks.+ withTrailingNewline+ . withCallStackPrefix tracer verbosity+ . (case marker of+ AlwaysMark -> withOutputMarker verbosity+ NormalMark | not (isVerboseQuiet verbosity)+ -> withOutputMarker verbosity+ | otherwise+ -> id+ NeverMark -> id)+ -- Clear out any existing markers+ . clearMarkers+ $ x++clearMarkers :: String -> String+clearMarkers s = unlines . filter isMarker $ lines s+ where+ isMarker "-----BEGIN CABAL OUTPUT-----" = False+ isMarker "-----END CABAL OUTPUT-----" = False+ isMarker _ = True+ -- ----------------------------------------------------------------------------- -- rawSystem variants maybeExit :: IO ExitCode -> IO ()@@ -399,7 +649,7 @@ unless (res == ExitSuccess) $ exitWith res printRawCommandAndArgs :: Verbosity -> FilePath -> [String] -> IO ()-printRawCommandAndArgs verbosity path args =+printRawCommandAndArgs verbosity path args = withFrozenCallStack $ printRawCommandAndArgsAndEnv verbosity path args Nothing printRawCommandAndArgsAndEnv :: Verbosity@@ -407,17 +657,15 @@ -> [String] -> Maybe [(String, String)] -> IO ()-printRawCommandAndArgsAndEnv verbosity path args menv- | verbosity >= deafening = do- traverse_ (putStrLn . ("Environment: " ++) . show) menv- print (path, args)- | verbosity >= verbose = putStrLn $ showCommandForUser path args- | otherwise = return ()-+printRawCommandAndArgsAndEnv verbosity path args menv = do+ case menv of+ Just env -> debugNoWrap verbosity ("Environment: " ++ show env)+ Nothing -> return ()+ infoNoWrap verbosity (showCommandForUser path args) -- Exit with the same exit code if the subcommand fails rawSystemExit :: Verbosity -> FilePath -> [String] -> IO ()-rawSystemExit verbosity path args = do+rawSystemExit verbosity path args = withFrozenCallStack $ do printRawCommandAndArgs verbosity path args hFlush stdout exitcode <- rawSystem path args@@ -426,7 +674,7 @@ exitWith exitcode rawSystemExitCode :: Verbosity -> FilePath -> [String] -> IO ExitCode-rawSystemExitCode verbosity path args = do+rawSystemExitCode verbosity path args = withFrozenCallStack $ do printRawCommandAndArgs verbosity path args hFlush stdout exitcode <- rawSystem path args@@ -439,7 +687,7 @@ -> [String] -> [(String, String)] -> IO ()-rawSystemExitWithEnv verbosity path args env = do+rawSystemExitWithEnv verbosity path args env = withFrozenCallStack $ do printRawCommandAndArgsAndEnv verbosity path args (Just env) hFlush stdout (_,_,_,ph) <- createProcess $@@ -467,7 +715,7 @@ -> Maybe Handle -- ^ stdout -> Maybe Handle -- ^ stderr -> IO ExitCode-rawSystemIOWithEnv verbosity path args mcwd menv inp out err = do+rawSystemIOWithEnv verbosity path args mcwd menv inp out err = withFrozenCallStack $ do (_,_,_,ph) <- createProcessWithEnv verbosity path args mcwd menv (mbToStd inp) (mbToStd out) (mbToStd err) exitcode <- waitForProcess ph@@ -479,7 +727,7 @@ mbToStd = maybe Process.Inherit Process.UseHandle createProcessWithEnv ::- Verbosity+ Verbosity -> FilePath -> [String] -> Maybe FilePath -- ^ New working dir or inherit@@ -490,7 +738,7 @@ -> IO (Maybe Handle, Maybe Handle, Maybe Handle,ProcessHandle) -- ^ Any handles created for stdin, stdout, or stderr -- with 'CreateProcess', and a handle to the process.-createProcessWithEnv verbosity path args mcwd menv inp out err = do+createProcessWithEnv verbosity path args mcwd menv inp out err = withFrozenCallStack $ do printRawCommandAndArgsAndEnv verbosity path args menv hFlush stdout (inp', out', err', ph) <- createProcess $@@ -515,7 +763,7 @@ -- The output is assumed to be text in the locale encoding. -- rawSystemStdout :: Verbosity -> FilePath -> [String] -> IO String-rawSystemStdout verbosity path args = do+rawSystemStdout verbosity path args = withFrozenCallStack $ do (output, errors, exitCode) <- rawSystemStdInOut verbosity path args Nothing Nothing Nothing False@@ -535,7 +783,7 @@ -> Maybe (String, Bool) -- ^ input text and binary mode -> Bool -- ^ output in binary mode -> IO (String, String, ExitCode) -- ^ output, errors, exit-rawSystemStdInOut verbosity path args mcwd menv input outputBinary = do+rawSystemStdInOut verbosity path args mcwd menv input outputBinary = withFrozenCallStack $ do printRawCommandAndArgs verbosity path args Exception.bracket@@ -555,9 +803,9 @@ out <- hGetContents outh mv <- newEmptyMVar- let force str = (evaluate (length str) >> return ())- `Exception.finally` putMVar mv ()- --TODO: handle exceptions like text decoding.+ let force str = do+ mberr <- Exception.try (evaluate (length str) >> return ())+ putMVar mv (mberr :: Either IOError ()) _ <- forkIO $ force out _ <- forkIO $ force err @@ -573,8 +821,8 @@ -- or if it closes stdin (eg if it exits) -- wait for both to finish, in either order- takeMVar mv- takeMVar mv+ mberr1 <- takeMVar mv+ mberr2 <- takeMVar mv -- wait for the program to terminate exitcode <- waitForProcess pid@@ -587,14 +835,24 @@ Just ("", _) -> "" Just (inp, _) -> "\nstdin input:\n" ++ inp + -- Check if we we hit an exception while consuming the output+ -- (e.g. a text decoding error)+ reportOutputIOError mberr1+ reportOutputIOError mberr2+ return (out, err, exitcode)+ where+ reportOutputIOError :: Either IOError () -> NoCallStackIO ()+ reportOutputIOError =+ either (\e -> throwIO (ioeSetFileName e ("output of " ++ path)))+ return {-# DEPRECATED findProgramLocation "No longer used within Cabal, try findProgramOnSearchPath" #-} -- | Look for a program on the path. findProgramLocation :: Verbosity -> FilePath -> IO (Maybe FilePath)-findProgramLocation verbosity prog = do+findProgramLocation verbosity prog = withFrozenCallStack $ do debug verbosity $ "searching for " ++ prog ++ " in path." res <- findExecutable prog case res of@@ -613,7 +871,7 @@ -> Verbosity -> FilePath -- ^ location -> IO (Maybe Version)-findProgramVersion versionArg selectVersion verbosity path = do+findProgramVersion versionArg selectVersion verbosity path = withFrozenCallStack $ do str <- rawSystemStdout verbosity path [versionArg] `catchIO` (\_ -> return "") `catchExit` (\_ -> return "")@@ -639,7 +897,7 @@ xargs maxSize rawSystemFun fixedArgs bigArgs = let fixedArgSize = sum (map length fixedArgs) + length fixedArgs chunkSize = maxSize - fixedArgSize- in mapM_ (rawSystemFun . (fixedArgs ++)) (chunks chunkSize bigArgs)+ in traverse_ (rawSystemFun . (fixedArgs ++)) (chunks chunkSize bigArgs) where chunks len = unfoldr $ \s -> if null s then Nothing@@ -676,7 +934,7 @@ findFileWithExtension :: [String] -> [FilePath] -> FilePath- -> IO (Maybe FilePath)+ -> NoCallStackIO (Maybe FilePath) findFileWithExtension extensions searchPath baseName = findFirstFile id [ path </> baseName <.> ext@@ -686,7 +944,7 @@ findAllFilesWithExtension :: [String] -> [FilePath] -> FilePath- -> IO [FilePath]+ -> NoCallStackIO [FilePath] findAllFilesWithExtension extensions searchPath basename = findAllFiles id [ path </> basename <.> ext@@ -699,14 +957,14 @@ findFileWithExtension' :: [String] -> [FilePath] -> FilePath- -> IO (Maybe (FilePath, FilePath))+ -> NoCallStackIO (Maybe (FilePath, FilePath)) findFileWithExtension' extensions searchPath baseName = findFirstFile (uncurry (</>)) [ (path, baseName <.> ext) | path <- nub searchPath , ext <- nub extensions ] -findFirstFile :: (a -> FilePath) -> [a] -> IO (Maybe a)+findFirstFile :: (a -> FilePath) -> [a] -> NoCallStackIO (Maybe a) findFirstFile file = findFirst where findFirst [] = return Nothing findFirst (x:xs) = do exists <- doesFileExist (file x)@@ -714,7 +972,7 @@ then return (Just x) else findFirst xs -findAllFiles :: (a -> FilePath) -> [a] -> IO [a]+findAllFiles :: (a -> FilePath) -> [a] -> NoCallStackIO [a] findAllFiles file = filterM (doesFileExist . file) -- | Finds the files corresponding to a list of Haskell module names.@@ -726,7 +984,7 @@ -> [ModuleName] -- ^ modules -> IO [(FilePath, FilePath)] findModuleFiles searchPath extensions moduleNames =- mapM (findModuleFile searchPath extensions) moduleNames+ traverse (findModuleFile searchPath extensions) moduleNames -- | Find the file corresponding to a Haskell module name. --@@ -737,12 +995,12 @@ -> [String] -- ^ search suffixes -> ModuleName -- ^ module -> IO (FilePath, FilePath)-findModuleFile searchPath extensions moduleName =+findModuleFile searchPath extensions mod_name = maybe notFound return =<< findFileWithExtension' extensions searchPath- (ModuleName.toFilePath moduleName)+ (ModuleName.toFilePath mod_name) where- notFound = die $ "Error: Could not find module: " ++ display moduleName+ notFound = die $ "Error: Could not find module: " ++ display mod_name ++ " with any suffix: " ++ show extensions ++ " in the search path: " ++ show searchPath @@ -782,7 +1040,7 @@ -- Environment variables -- | Is this directory in the system search path?-isInSearchPath :: FilePath -> IO Bool+isInSearchPath :: FilePath -> NoCallStackIO Bool isInSearchPath path = fmap (elem path) getSearchPath addLibraryPath :: OS@@ -854,7 +1112,7 @@ -- The expected use case is when the second file is generated using the first. -- In this use case, if the result is True then the second file is out of date. ---moreRecentFile :: FilePath -> FilePath -> IO Bool+moreRecentFile :: FilePath -> FilePath -> NoCallStackIO Bool moreRecentFile a b = do exists <- doesFileExist b if not exists@@ -864,7 +1122,7 @@ return (ta > tb) -- | Like 'moreRecentFile', but also checks that the first file exists.-existsAndIsMoreRecentThan :: FilePath -> FilePath -> IO Bool+existsAndIsMoreRecentThan :: FilePath -> FilePath -> NoCallStackIO Bool existsAndIsMoreRecentThan a b = do exists <- doesFileExist a if not exists@@ -881,8 +1139,8 @@ -> FilePath -> IO () createDirectoryIfMissingVerbose verbosity create_parents path0- | create_parents = createDirs (parents path0)- | otherwise = createDirs (take 1 (parents path0))+ | create_parents = withFrozenCallStack $ createDirs (parents path0)+ | otherwise = withFrozenCallStack $ createDirs (take 1 (parents path0)) where parents = reverse . scanl1 (</>) . splitDirectories . normalise @@ -915,7 +1173,7 @@ | otherwise -> throwIO e createDirectoryVerbose :: Verbosity -> FilePath -> IO ()-createDirectoryVerbose verbosity dir = do+createDirectoryVerbose verbosity dir = withFrozenCallStack $ do info verbosity $ "creating " ++ dir createDirectory dir setDirOrdinary dir@@ -926,7 +1184,7 @@ -- At higher verbosity levels it logs an info message. -- copyFileVerbose :: Verbosity -> FilePath -> FilePath -> IO ()-copyFileVerbose verbosity src dest = do+copyFileVerbose verbosity src dest = withFrozenCallStack $ do info verbosity ("copy " ++ src ++ " to " ++ dest) copyFile src dest @@ -935,7 +1193,7 @@ -- while on Windows it uses the default permissions for the target directory. -- installOrdinaryFile :: Verbosity -> FilePath -> FilePath -> IO ()-installOrdinaryFile verbosity src dest = do+installOrdinaryFile verbosity src dest = withFrozenCallStack $ do info verbosity ("Installing " ++ src ++ " to " ++ dest) copyOrdinaryFile src dest @@ -944,13 +1202,13 @@ -- while on Windows it uses the default permissions for the target directory. -- installExecutableFile :: Verbosity -> FilePath -> FilePath -> IO ()-installExecutableFile verbosity src dest = do+installExecutableFile verbosity src dest = withFrozenCallStack $ do info verbosity ("Installing executable " ++ src ++ " to " ++ dest) copyExecutableFile src dest -- | Install a file that may or not be executable, preserving permissions. installMaybeExecutableFile :: Verbosity -> FilePath -> FilePath -> IO ()-installMaybeExecutableFile verbosity src dest = do+installMaybeExecutableFile verbosity src dest = withFrozenCallStack $ do perms <- getPermissions src if (executable perms) --only checks user x bit then installExecutableFile verbosity src dest@@ -959,7 +1217,7 @@ -- | Given a relative path to a file, copy it to the given directory, preserving -- the relative path and creating the parent directories if needed. copyFileTo :: Verbosity -> FilePath -> FilePath -> IO ()-copyFileTo verbosity dir file = do+copyFileTo verbosity dir file = withFrozenCallStack $ do let targetFile = dir </> file createDirectoryIfMissingVerbose verbosity True (takeDirectory targetFile) installOrdinaryFile verbosity file targetFile@@ -968,11 +1226,11 @@ -- 'installExecutableFiles' and 'installMaybeExecutableFiles'. copyFilesWith :: (Verbosity -> FilePath -> FilePath -> IO ()) -> Verbosity -> FilePath -> [(FilePath, FilePath)] -> IO ()-copyFilesWith doCopy verbosity targetDir srcFiles = do+copyFilesWith doCopy verbosity targetDir srcFiles = withFrozenCallStack $ do -- Create parent directories for everything let dirs = map (targetDir </>) . nub . map (takeDirectory . snd) $ srcFiles- mapM_ (createDirectoryIfMissingVerbose verbosity True) dirs+ traverse_ (createDirectoryIfMissingVerbose verbosity True) dirs -- Copy all the files sequence_ [ let src = srcBase </> srcFile@@ -1002,38 +1260,38 @@ -- anything goes wrong. -- copyFiles :: Verbosity -> FilePath -> [(FilePath, FilePath)] -> IO ()-copyFiles = copyFilesWith copyFileVerbose+copyFiles v fp fs = withFrozenCallStack (copyFilesWith copyFileVerbose v fp fs) -- | This is like 'copyFiles' but uses 'installOrdinaryFile'. -- installOrdinaryFiles :: Verbosity -> FilePath -> [(FilePath, FilePath)] -> IO ()-installOrdinaryFiles = copyFilesWith installOrdinaryFile+installOrdinaryFiles v fp fs = withFrozenCallStack (copyFilesWith installOrdinaryFile v fp fs) -- | This is like 'copyFiles' but uses 'installExecutableFile'. -- installExecutableFiles :: Verbosity -> FilePath -> [(FilePath, FilePath)] -> IO ()-installExecutableFiles = copyFilesWith installExecutableFile+installExecutableFiles v fp fs = withFrozenCallStack (copyFilesWith installExecutableFile v fp fs) -- | This is like 'copyFiles' but uses 'installMaybeExecutableFile'. -- installMaybeExecutableFiles :: Verbosity -> FilePath -> [(FilePath, FilePath)] -> IO ()-installMaybeExecutableFiles = copyFilesWith installMaybeExecutableFile+installMaybeExecutableFiles v fp fs = withFrozenCallStack (copyFilesWith installMaybeExecutableFile v fp fs) -- | This installs all the files in a directory to a target location, -- preserving the directory layout. All the files are assumed to be ordinary -- rather than executable files. -- installDirectoryContents :: Verbosity -> FilePath -> FilePath -> IO ()-installDirectoryContents verbosity srcDir destDir = do+installDirectoryContents verbosity srcDir destDir = withFrozenCallStack $ do info verbosity ("copy directory '" ++ srcDir ++ "' to '" ++ destDir ++ "'.") srcFiles <- getDirectoryContentsRecursive srcDir installOrdinaryFiles verbosity destDir [ (srcDir, f) | f <- srcFiles ] -- | Recursively copy the contents of one directory to another path. copyDirectoryRecursive :: Verbosity -> FilePath -> FilePath -> IO ()-copyDirectoryRecursive verbosity srcDir destDir = do+copyDirectoryRecursive verbosity srcDir destDir = withFrozenCallStack $ do info verbosity ("copy directory '" ++ srcDir ++ "' to '" ++ destDir ++ "'.") srcFiles <- getDirectoryContentsRecursive srcDir copyFilesWith (const copyFile) verbosity destDir [ (srcDir, f)@@ -1043,7 +1301,7 @@ -- File permissions -- | Like 'doesFileExist', but also checks that the file is executable.-doesExecutableExist :: FilePath -> IO Bool+doesExecutableExist :: FilePath -> NoCallStackIO Bool doesExecutableExist f = do exists <- doesFileExist f if exists@@ -1058,14 +1316,14 @@ "Use findModuleFiles and copyFiles or installOrdinaryFiles" #-} smartCopySources :: Verbosity -> [FilePath] -> FilePath -> [ModuleName] -> [String] -> IO ()-smartCopySources verbosity searchPath targetDir moduleNames extensions =+smartCopySources verbosity searchPath targetDir moduleNames extensions = withFrozenCallStack $ findModuleFiles searchPath extensions moduleNames >>= copyFiles verbosity targetDir {-# DEPRECATED copyDirectoryRecursiveVerbose "You probably want installDirectoryContents instead" #-} copyDirectoryRecursiveVerbose :: Verbosity -> FilePath -> FilePath -> IO ()-copyDirectoryRecursiveVerbose verbosity srcDir destDir = do+copyDirectoryRecursiveVerbose verbosity srcDir destDir = withFrozenCallStack $ do info verbosity ("copy directory '" ++ srcDir ++ "' to '" ++ destDir ++ "'.") srcFiles <- getDirectoryContentsRecursive srcDir copyFiles verbosity destDir [ (srcDir, f) | f <- srcFiles ]@@ -1101,7 +1359,7 @@ (\(name, handle) -> do hClose handle unless (optKeepTempFiles opts) $ handleDoesNotExist () . removeFile $ name)- (uncurry action)+ (withLexicalCallStack (uncurry action)) -- | Create and use a temporary directory. --@@ -1113,70 +1371,50 @@ -- The @tmpDir@ will be a new subdirectory of the given directory, e.g. -- @src/sdist.342@. ---withTempDirectory :: Verbosity- -> FilePath -> String -> (FilePath -> IO a) -> IO a-withTempDirectory verbosity targetDir template =+withTempDirectory :: Verbosity -> FilePath -> String -> (FilePath -> IO a) -> IO a+withTempDirectory verbosity targetDir template f = withFrozenCallStack $ withTempDirectoryEx verbosity defaultTempFileOptions targetDir template+ (withLexicalCallStack f) -- | A version of 'withTempDirectory' that additionally takes a -- 'TempFileOptions' argument.-withTempDirectoryEx :: Verbosity- -> TempFileOptions+withTempDirectoryEx :: Verbosity -> TempFileOptions -> FilePath -> String -> (FilePath -> IO a) -> IO a-withTempDirectoryEx _verbosity opts targetDir template =+withTempDirectoryEx _verbosity opts targetDir template f = withFrozenCallStack $ Exception.bracket (createTempDirectory targetDir template) (unless (optKeepTempFiles opts) . handleDoesNotExist () . removeDirectoryRecursive)+ (withLexicalCallStack f) ----------------------------------- -- Safely reading and writing files --- | Gets the contents of a file, but guarantee that it gets closed.------ The file is read lazily but if it is not fully consumed by the action then--- the remaining input is truncated and the file is closed.----withFileContents :: FilePath -> (String -> IO a) -> IO a-withFileContents name action =- Exception.bracket (openFile name ReadMode) hClose- (\hnd -> hGetContents hnd >>= action)---- | Writes a file atomically.------ The file is either written successfully or an IO exception is raised and--- the original file is left unchanged.------ On windows it is not possible to delete a file that is open by a process.--- This case will give an IO exception but the atomic property is not affected.+-- | See 'rewriteFileEx' ---writeFileAtomic :: FilePath -> BS.ByteString -> IO ()-writeFileAtomic targetPath content = do- let (targetDir, targetFile) = splitFileName targetPath- Exception.bracketOnError- (openBinaryTempFileWithDefaultPermissions targetDir $ targetFile <.> "tmp")- (\(tmpPath, handle) -> hClose handle >> removeFile tmpPath)- (\(tmpPath, handle) -> do- BS.hPut handle content- hClose handle- renameFile tmpPath targetPath)+-- This function is provided for backwards-compatibility+rewriteFile :: FilePath -> String -> IO ()+rewriteFile = rewriteFileEx normal -- | Write a file but only if it would have new content. If we would be writing -- the same as the existing content then leave the file as is so that we do not -- update the file's modification time. -- -- NB: the file is assumed to be ASCII-encoded.-rewriteFile :: FilePath -> String -> IO ()-rewriteFile path newContent =+rewriteFileEx :: Verbosity -> FilePath -> String -> IO ()+rewriteFileEx verbosity path newContent = flip catchIO mightNotExist $ do- existingContent <- readFile path+ existingContent <- annotateIO verbosity $ readFile path _ <- evaluate (length existingContent) unless (existingContent == newContent) $- writeFileAtomic path (BS.Char8.pack newContent)+ annotateIO verbosity $+ writeFileAtomic path (BS.Char8.pack newContent) where- mightNotExist e | isDoesNotExistError e = writeFileAtomic path- (BS.Char8.pack newContent)- | otherwise = ioError e+ mightNotExist e | isDoesNotExistError e+ = annotateIO verbosity $ writeFileAtomic path+ (BS.Char8.pack newContent)+ | otherwise+ = ioError e -- | The path name that represents the current directory. -- In Unix, it's @\".\"@, but this is system-specific.@@ -1223,7 +1461,7 @@ -- |Find a package description file in the given directory. Looks for -- @.cabal@ files. findPackageDesc :: FilePath -- ^Where to look- -> IO (Either String FilePath) -- ^<pkgname>.cabal+ -> NoCallStackIO (Either String FilePath) -- ^<pkgname>.cabal findPackageDesc dir = do files <- getDirectoryContents dir -- to make sure we do not mistake a ~/.cabal/ dir for a <pkgname>.cabal@@ -1275,212 +1513,3 @@ buildInfoExt :: String buildInfoExt = ".buildinfo"---- --------------------------------------------------------------- * Unicode stuff--- ---------------------------------------------------------------- This is a modification of the UTF8 code from gtk2hs and the--- utf8-string package.--fromUTF8 :: String -> String-fromUTF8 [] = []-fromUTF8 (c:cs)- | c <= '\x7F' = c : fromUTF8 cs- | c <= '\xBF' = replacementChar : fromUTF8 cs- | c <= '\xDF' = twoBytes c cs- | c <= '\xEF' = moreBytes 3 0x800 cs (ord c .&. 0xF)- | c <= '\xF7' = moreBytes 4 0x10000 cs (ord c .&. 0x7)- | c <= '\xFB' = moreBytes 5 0x200000 cs (ord c .&. 0x3)- | c <= '\xFD' = moreBytes 6 0x4000000 cs (ord c .&. 0x1)- | otherwise = replacementChar : fromUTF8 cs- where- twoBytes c0 (c1:cs')- | ord c1 .&. 0xC0 == 0x80- = let d = ((ord c0 .&. 0x1F) `shiftL` 6)- .|. (ord c1 .&. 0x3F)- in if d >= 0x80- then chr d : fromUTF8 cs'- else replacementChar : fromUTF8 cs'- twoBytes _ cs' = replacementChar : fromUTF8 cs'-- moreBytes :: Int -> Int -> [Char] -> Int -> [Char]- moreBytes 1 overlong cs' acc- | overlong <= acc && acc <= 0x10FFFF- && (acc < 0xD800 || 0xDFFF < acc)- && (acc < 0xFFFE || 0xFFFF < acc)- = chr acc : fromUTF8 cs'-- | otherwise- = replacementChar : fromUTF8 cs'-- moreBytes byteCount overlong (cn:cs') acc- | ord cn .&. 0xC0 == 0x80- = moreBytes (byteCount-1) overlong cs'- ((acc `shiftL` 6) .|. ord cn .&. 0x3F)-- moreBytes _ _ cs' _- = replacementChar : fromUTF8 cs'-- replacementChar = '\xfffd'--toUTF8 :: String -> String-toUTF8 [] = []-toUTF8 (c:cs)- | c <= '\x07F' = c- : toUTF8 cs- | c <= '\x7FF' = chr (0xC0 .|. (w `shiftR` 6))- : chr (0x80 .|. (w .&. 0x3F))- : toUTF8 cs- | c <= '\xFFFF'= chr (0xE0 .|. (w `shiftR` 12))- : chr (0x80 .|. ((w `shiftR` 6) .&. 0x3F))- : chr (0x80 .|. (w .&. 0x3F))- : toUTF8 cs- | otherwise = chr (0xf0 .|. (w `shiftR` 18))- : chr (0x80 .|. ((w `shiftR` 12) .&. 0x3F))- : chr (0x80 .|. ((w `shiftR` 6) .&. 0x3F))- : chr (0x80 .|. (w .&. 0x3F))- : toUTF8 cs- where w = ord c---- | Whether BOM is at the beginning of the input-startsWithBOM :: String -> Bool-startsWithBOM ('\xFEFF':_) = True-startsWithBOM _ = False---- | Check whether a file has Unicode byte order mark (BOM).-fileHasBOM :: FilePath -> IO Bool-fileHasBOM f = fmap (startsWithBOM . fromUTF8)- . hGetContents =<< openBinaryFile f ReadMode---- | Ignore a Unicode byte order mark (BOM) at the beginning of the input----ignoreBOM :: String -> String-ignoreBOM ('\xFEFF':string) = string-ignoreBOM string = string---- | Reads a UTF8 encoded text file as a Unicode String------ Reads lazily using ordinary 'readFile'.----readUTF8File :: FilePath -> IO String-readUTF8File f = fmap (ignoreBOM . fromUTF8)- . hGetContents =<< openBinaryFile f ReadMode---- | Reads a UTF8 encoded text file as a Unicode String------ Same behaviour as 'withFileContents'.----withUTF8FileContents :: FilePath -> (String -> IO a) -> IO a-withUTF8FileContents name action =- Exception.bracket- (openBinaryFile name ReadMode)- hClose- (\hnd -> hGetContents hnd >>= action . ignoreBOM . fromUTF8)---- | Writes a Unicode String as a UTF8 encoded text file.------ Uses 'writeFileAtomic', so provides the same guarantees.----writeUTF8File :: FilePath -> String -> IO ()-writeUTF8File path = writeFileAtomic path . BS.Char8.pack . toUTF8---- | Fix different systems silly line ending conventions-normaliseLineEndings :: String -> String-normaliseLineEndings [] = []-normaliseLineEndings ('\r':'\n':s) = '\n' : normaliseLineEndings s -- windows-normaliseLineEndings ('\r':s) = '\n' : normaliseLineEndings s -- old OS X-normaliseLineEndings ( c :s) = c : normaliseLineEndings s---- --------------------------------------------------------------- * Common utils--- ---------------------------------------------------------------- | @dropWhileEndLE p@ is equivalent to @reverse . dropWhile p . reverse@, but--- quite a bit faster. The difference between "Data.List.dropWhileEnd" and this--- version is that the one in "Data.List" is strict in elements, but spine-lazy,--- while this one is spine-strict but lazy in elements. That's what @LE@ stands--- for - "lazy in elements".------ Example:------ @--- > tail $ Data.List.dropWhileEnd (<3) [undefined, 5, 4, 3, 2, 1]--- *** Exception: Prelude.undefined--- > tail $ dropWhileEndLE (<3) [undefined, 5, 4, 3, 2, 1]--- [5,4,3]--- > take 3 $ Data.List.dropWhileEnd (<3) [5, 4, 3, 2, 1, undefined]--- [5,4,3]--- > take 3 $ dropWhileEndLE (<3) [5, 4, 3, 2, 1, undefined]--- *** Exception: Prelude.undefined--- @-dropWhileEndLE :: (a -> Bool) -> [a] -> [a]-dropWhileEndLE p = foldr (\x r -> if null r && p x then [] else x:r) []---- | @takeWhileEndLE p@ is equivalent to @reverse . takeWhile p . reverse@, but--- is usually faster (as well as being easier to read).-takeWhileEndLE :: (a -> Bool) -> [a] -> [a]-takeWhileEndLE p = fst . foldr go ([], False)- where- go x (rest, done)- | not done && p x = (x:rest, False)- | otherwise = (rest, True)---- | Like "Data.List.nub", but has @O(n log n)@ complexity instead of--- @O(n^2)@. Code for 'ordNub' and 'listUnion' taken from Niklas Hambüchen's--- <http://github.com/nh2/haskell-ordnub ordnub> package.-ordNub :: (Ord a) => [a] -> [a]-ordNub l = go Set.empty l- where- go _ [] = []- go s (x:xs) = if x `Set.member` s then go s xs- else x : go (Set.insert x s) xs---- | Like "Data.List.union", but has @O(n log n)@ complexity instead of--- @O(n^2)@.-listUnion :: (Ord a) => [a] -> [a] -> [a]-listUnion a b = a ++ ordNub (filter (`Set.notMember` aSet) b)- where- aSet = Set.fromList a---- | A right-biased version of 'ordNub'.------ Example:------ @--- > ordNub [1,2,1]--- [1,2]--- > ordNubRight [1,2,1]--- [2,1]--- @-ordNubRight :: (Ord a) => [a] -> [a]-ordNubRight = fst . foldr go ([], Set.empty)- where- go x p@(l, s) = if x `Set.member` s then p- else (x:l, Set.insert x s)---- | A right-biased version of 'listUnion'.------ Example:------ @--- > listUnion [1,2,3,4,3] [2,1,1]--- [1,2,3,4,3]--- > listUnionRight [1,2,3,4,3] [2,1,1]--- [4,3,2,1,1]--- @-listUnionRight :: (Ord a) => [a] -> [a] -> [a]-listUnionRight a b = ordNubRight (filter (`Set.notMember` bSet) a) ++ b- where- bSet = Set.fromList b---- | A total variant of 'tail'.-safeTail :: [a] -> [a]-safeTail [] = []-safeTail (_:xs) = xs--equating :: Eq a => (b -> a) -> b -> b -> Bool-equating p x y = p x == p y--lowercase :: String -> String-lowercase = map Char.toLower
Distribution/System.hs view
@@ -32,23 +32,23 @@ -- * Internal knownOSs,- knownArches+ knownArches,++ -- * Classification+ ClassificationStrictness (..),+ classifyOS,+ classifyArch, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import qualified System.Info (os, arch)-import qualified Data.Char as Char (toLower, isAlphaNum, isAlpha) -import Distribution.Compat.Binary import Distribution.Text import qualified Distribution.Compat.ReadP as Parse -import Control.Monad (liftM2)-import Data.Data (Data)-import Data.Typeable (Typeable)-import Data.Maybe (fromMaybe, listToMaybe)-import GHC.Generics (Generic) import qualified Text.PrettyPrint as Disp-import Text.PrettyPrint ((<>)) -- | How strict to be when classifying strings into the 'OS' and 'Arch' enums. --@@ -73,6 +73,18 @@ -- * Operating System -- ------------------------------------------------------------ +-- | These are the known OS names: Linux, Windows, OSX+-- ,FreeBSD, OpenBSD, NetBSD, DragonFly+-- ,Solaris, AIX, HPUX, IRIX+-- ,HaLVM ,Hurd ,IOS, Android,Ghcjs+--+-- The following aliases can also be used:,+-- * Windows aliases: mingw32, win32, cygwin32+-- * OSX alias: darwin+-- * Hurd alias: gnu+-- * FreeBSD alias: kfreebsdgnu+-- * Solaris alias: solaris2+-- data OS = Linux | Windows | OSX -- tier 1 desktop OSs | FreeBSD | OpenBSD | NetBSD -- other free Unix OSs | DragonFly@@ -127,6 +139,17 @@ -- * Machine Architecture -- ------------------------------------------------------------ +-- | These are the known Arches: I386, X86_64, PPC, PPC64, Sparc+-- ,Arm, Mips, SH, IA64, S39, Alpha, Hppa, Rs6000, M68k, Vax+-- and JavaScript.+--+-- The following aliases can also be used:+-- * PPC alias: powerpc+-- * PPC64 alias : powerpc64+-- * Sparc aliases: sparc64, sun4+-- * Mips aliases: mipsel, mipseb+-- * Arm aliases: armeb, armel+-- data Arch = I386 | X86_64 | PPC | PPC64 | Sparc | Arm | Mips | SH | IA64 | S390@@ -183,7 +206,7 @@ instance Binary Platform instance Text Platform where- disp (Platform arch os) = disp arch <> Disp.char '-' <> disp os+ disp (Platform arch os) = disp arch <<>> Disp.char '-' <<>> disp os -- TODO: there are ambigious platforms like: `arch-word-os` -- which could be parsed as -- * Platform "arch-word" "os"@@ -209,22 +232,22 @@ -- Utils: ident :: Parse.ReadP r String-ident = liftM2 (:) first rest- where first = Parse.satisfy Char.isAlpha- rest = Parse.munch (\c -> Char.isAlphaNum c || c == '_' || c == '-')+ident = liftM2 (:) firstChar rest+ where firstChar = Parse.satisfy isAlpha+ rest = Parse.munch (\c -> isAlphaNum c || c == '_' || c == '-') dashlessIdent :: Parse.ReadP r String-dashlessIdent = liftM2 (:) first rest- where first = Parse.satisfy Char.isAlpha- rest = Parse.munch (\c -> Char.isAlphaNum c || c == '_')+dashlessIdent = liftM2 (:) firstChar rest+ where firstChar = Parse.satisfy isAlpha+ rest = Parse.munch (\c -> isAlphaNum c || c == '_') lowercase :: String -> String-lowercase = map Char.toLower+lowercase = map toLower platformFromTriple :: String -> Maybe Platform platformFromTriple triple = fmap fst (listToMaybe $ Parse.readP_to_S parseTriple triple)- where parseWord = Parse.munch1 (\c -> Char.isAlphaNum c || c == '_')+ where parseWord = Parse.munch1 (\c -> isAlphaNum c || c == '_') parseTriple = do arch <- fmap (classifyArch Permissive) parseWord _ <- Parse.char '-'
Distribution/TestSuite.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+ ----------------------------------------------------------------------------- -- | -- Module : Distribution.TestSuite@@ -20,6 +23,9 @@ , Result(..) , testGroup ) where++import Prelude ()+import Distribution.Compat.Prelude data TestInstance = TestInstance { run :: IO Progress -- ^ Perform the test.
Distribution/Text.hs view
@@ -15,35 +15,69 @@ Text(..), defaultStyle, display,+ flatStyle, simpleParse,+ stdParse, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import qualified Distribution.Compat.ReadP as Parse import qualified Text.PrettyPrint as Disp import Data.Version (Version(Version))-import qualified Data.Char as Char (isDigit, isAlphaNum, isSpace) class Text a where disp :: a -> Disp.Doc parse :: Parse.ReadP r a --- | The default rendering style used in Cabal for console output.+-- | The default rendering style used in Cabal for console+-- output. It has a fixed page width and adds line breaks+-- automatically. defaultStyle :: Disp.Style defaultStyle = Disp.Style { Disp.mode = Disp.PageMode , Disp.lineLength = 79 , Disp.ribbonsPerLine = 1.0 } +-- | Pretty-prints with the default style. display :: Text a => a -> String display = Disp.renderStyle defaultStyle . disp +-- | A style for rendering all on one line.+flatStyle :: Disp.Style+flatStyle = Disp.Style { Disp.mode = Disp.LeftMode+ , Disp.lineLength = err "lineLength"+ , Disp.ribbonsPerLine = err "ribbonsPerLine"+ }+ where+ err x = error ("flatStyle: tried to access " ++ x ++ " in LeftMode. " +++ "This should never happen and indicates a bug in Cabal.")+ simpleParse :: Text a => String -> Maybe a simpleParse str = case [ p | (p, s) <- Parse.readP_to_S parse str- , all Char.isSpace s ] of+ , all isSpace s ] of [] -> Nothing (p:_) -> Just p +stdParse :: Text ver => (ver -> String -> res) -> Parse.ReadP r res+stdParse f = do+ cs <- Parse.sepBy1 component (Parse.char '-')+ _ <- Parse.char '-'+ ver <- parse+ let name = intercalate "-" cs+ return $! f ver (lowercase name)+ where+ component = do+ cs <- Parse.munch1 isAlphaNum+ if all isDigit cs then Parse.pfail else return cs+ -- each component must contain an alphabetic character, to avoid+ -- ambiguity in identifiers like foo-1 (the 1 is the version number).++lowercase :: String -> String+lowercase = map toLower+ -- ----------------------------------------------------------------------------- -- Instances for types from the base package @@ -60,8 +94,9 @@ -- | Parser for non-negative integers. parseNat :: Parse.ReadP r Int-parseNat = read `fmap` Parse.munch1 Char.isDigit+parseNat = read `fmap` Parse.munch1 isDigit -- TODO: eradicateNoParse + instance Text Version where disp (Version branch _tags) -- Death to version tags!! = Disp.hcat (Disp.punctuate (Disp.char '.') (map Disp.int branch))@@ -69,5 +104,5 @@ parse = do branch <- Parse.sepBy1 parseNat (Parse.char '.') -- allow but ignore tags:- _tags <- Parse.many (Parse.char '-' >> Parse.munch1 Char.isAlphaNum)+ _tags <- Parse.many (Parse.char '-' >> Parse.munch1 isAlphaNum) return (Version branch [])
+ Distribution/Types/AbiHash.hs view
@@ -0,0 +1,55 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}++module Distribution.Types.AbiHash+ ( AbiHash, unAbiHash, mkAbiHash+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Utils.ShortText++import qualified Distribution.Compat.ReadP as Parse+import qualified Text.PrettyPrint as Disp+import Distribution.Text++-- | ABI Hashes+--+-- Use 'mkAbiHash' and 'unAbiHash' to convert from/to a+-- 'String'.+--+-- This type is opaque since @Cabal-2.0@+--+-- @since 2.0+newtype AbiHash = AbiHash ShortText+ deriving (Eq, Show, Read, Generic)++-- | Construct a 'AbiHash' from a 'String'+--+-- 'mkAbiHash' is the inverse to 'unAbiHash'+--+-- Note: No validations are performed to ensure that the resulting+-- 'AbiHash' is valid+--+-- @since 2.0+unAbiHash :: AbiHash -> String+unAbiHash (AbiHash h) = fromShortText h++-- | Convert 'AbiHash' to 'String'+--+-- @since 2.0+mkAbiHash :: String -> AbiHash+mkAbiHash = AbiHash . toShortText++-- | 'mkAbiHash'+--+-- @since 2.0+instance IsString AbiHash where+ fromString = mkAbiHash++instance Binary AbiHash++instance Text AbiHash where+ disp = Disp.text . unAbiHash+ parse = fmap mkAbiHash (Parse.munch isAlphaNum)
+ Distribution/Types/AnnotatedId.hs view
@@ -0,0 +1,25 @@+module Distribution.Types.AnnotatedId (+ AnnotatedId(..)+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Package+import Distribution.Types.ComponentName++-- | An 'AnnotatedId' is a 'ComponentId', 'UnitId', etc.+-- which is annotated with some other useful information+-- that is useful for printing to users, etc.+data AnnotatedId id = AnnotatedId {+ ann_pid :: PackageId,+ ann_cname :: ComponentName,+ ann_id :: id+ }+ deriving (Show)++instance Package (AnnotatedId id) where+ packageId = ann_pid++instance Functor AnnotatedId where+ fmap f (AnnotatedId pid cn x) = AnnotatedId pid cn (f x)
+ Distribution/Types/Benchmark.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.Benchmark (+ Benchmark(..),+ emptyBenchmark,+ benchmarkType,+ benchmarkModules,+ benchmarkModulesAutogen+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.BuildInfo+import Distribution.Types.BenchmarkType+import Distribution.Types.BenchmarkInterface+import Distribution.Types.UnqualComponentName++import Distribution.ModuleName++-- | A \"benchmark\" stanza in a cabal file.+--+data Benchmark = Benchmark {+ benchmarkName :: UnqualComponentName,+ benchmarkInterface :: BenchmarkInterface,+ benchmarkBuildInfo :: BuildInfo+ }+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Binary Benchmark++instance Monoid Benchmark where+ mempty = Benchmark {+ benchmarkName = mempty,+ benchmarkInterface = mempty,+ benchmarkBuildInfo = mempty+ }+ mappend = (<>)++instance Semigroup Benchmark where+ a <> b = Benchmark {+ benchmarkName = combine' benchmarkName,+ benchmarkInterface = combine benchmarkInterface,+ benchmarkBuildInfo = combine benchmarkBuildInfo+ }+ where combine field = field a `mappend` field b+ combine' field = case ( unUnqualComponentName $ field a+ , unUnqualComponentName $ field b) of+ ("", _) -> field b+ (_, "") -> field a+ (x, y) -> error $ "Ambiguous values for test field: '"+ ++ x ++ "' and '" ++ y ++ "'"++emptyBenchmark :: Benchmark+emptyBenchmark = mempty++benchmarkType :: Benchmark -> BenchmarkType+benchmarkType benchmark = case benchmarkInterface benchmark of+ BenchmarkExeV10 ver _ -> BenchmarkTypeExe ver+ BenchmarkUnsupported benchmarktype -> benchmarktype++-- | Get all the module names from a benchmark.+benchmarkModules :: Benchmark -> [ModuleName]+benchmarkModules benchmark = otherModules (benchmarkBuildInfo benchmark)++-- | Get all the auto generated module names from a benchmark.+-- This are a subset of 'benchmarkModules'.+benchmarkModulesAutogen :: Benchmark -> [ModuleName]+benchmarkModulesAutogen benchmark = autogenModules (benchmarkBuildInfo benchmark)
+ Distribution/Types/BenchmarkInterface.hs view
@@ -0,0 +1,44 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.BenchmarkInterface (+ BenchmarkInterface(..),+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.BenchmarkType+import Distribution.Version++-- | The benchmark interfaces that are currently defined. Each+-- benchmark must specify which interface it supports.+--+-- More interfaces may be defined in future, either new revisions or+-- totally new interfaces.+--+data BenchmarkInterface =++ -- | Benchmark interface \"exitcode-stdio-1.0\". The benchmark+ -- takes the form of an executable. It returns a zero exit code+ -- for success, non-zero for failure. The stdout and stderr+ -- channels may be logged. It takes no command line parameters+ -- and nothing on stdin.+ --+ BenchmarkExeV10 Version FilePath++ -- | A benchmark that does not conform to one of the above+ -- interfaces for the given reason (e.g. unknown benchmark type).+ --+ | BenchmarkUnsupported BenchmarkType+ deriving (Eq, Generic, Read, Show, Typeable, Data)++instance Binary BenchmarkInterface++instance Monoid BenchmarkInterface where+ mempty = BenchmarkUnsupported (BenchmarkTypeUnknown mempty nullVersion)+ mappend = (<>)++instance Semigroup BenchmarkInterface where+ a <> (BenchmarkUnsupported _) = a+ _ <> b = b
+ Distribution/Types/BenchmarkType.hs view
@@ -0,0 +1,38 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.BenchmarkType (+ BenchmarkType(..),+ knownBenchmarkTypes,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Version+import Distribution.Text++import Text.PrettyPrint as Disp++-- | The \"benchmark-type\" field in the benchmark stanza.+--+data BenchmarkType = BenchmarkTypeExe Version+ -- ^ \"type: exitcode-stdio-x.y\"+ | BenchmarkTypeUnknown String Version+ -- ^ Some unknown benchmark type e.g. \"type: foo\"+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Binary BenchmarkType++knownBenchmarkTypes :: [BenchmarkType]+knownBenchmarkTypes = [ BenchmarkTypeExe (mkVersion [1,0]) ]++instance Text BenchmarkType where+ disp (BenchmarkTypeExe ver) = text "exitcode-stdio-" <<>> disp ver+ disp (BenchmarkTypeUnknown name ver) = text name <<>> char '-' <<>> disp ver++ parse = stdParse $ \ver name -> case name of+ "exitcode-stdio" -> BenchmarkTypeExe ver+ _ -> BenchmarkTypeUnknown name ver++
+ Distribution/Types/BuildInfo.hs view
@@ -0,0 +1,197 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.BuildInfo (+ BuildInfo(..),++ emptyBuildInfo,+ allLanguages,+ allExtensions,+ usedExtensions,++ hcOptions,+ hcProfOptions,+ hcSharedOptions,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.Mixin+import Distribution.Types.Dependency+import Distribution.Types.ExeDependency+import Distribution.Types.LegacyExeDependency+import Distribution.Types.PkgconfigDependency++import Distribution.ModuleName+import Distribution.Compiler+import Language.Haskell.Extension++-- Consider refactoring into executable and library versions.+data BuildInfo = BuildInfo {+ buildable :: Bool, -- ^ component is buildable here+ -- | Tools needed to build this bit.+ --+ -- This is a legacy field that "build-tool-depends" larely supersedes.+ --+ -- Unless use are very sure what you are doing, use the functions in+ -- `Distribution.Simple.BuildToolDepends` rather than accessing this+ -- field directly.+ buildTools :: [LegacyExeDependency],+ -- | Haskell tools needed to build this bit+ --+ -- This field is better than "build-tools" because it allows one to+ -- precisely specify an executable in a package.+ --+ -- Unless use are very sure what you are doing, use the functions in+ -- `Distribution.Simple.BuildToolDepends` rather than accessing this+ -- field directly.+ buildToolDepends :: [ExeDependency],+ cppOptions :: [String], -- ^ options for pre-processing Haskell code+ ccOptions :: [String], -- ^ options for C compiler+ ldOptions :: [String], -- ^ options for linker+ pkgconfigDepends :: [PkgconfigDependency], -- ^ pkg-config packages that are used+ frameworks :: [String], -- ^support frameworks for Mac OS X+ extraFrameworkDirs:: [String], -- ^ extra locations to find frameworks.+ cSources :: [FilePath],+ jsSources :: [FilePath],+ hsSourceDirs :: [FilePath], -- ^ where to look for the Haskell module hierarchy+ otherModules :: [ModuleName], -- ^ non-exposed or non-main modules+ autogenModules :: [ModuleName], -- ^ not present on sdist, Paths_* or user-generated with a custom Setup.hs++ defaultLanguage :: Maybe Language,-- ^ language used when not explicitly specified+ otherLanguages :: [Language], -- ^ other languages used within the package+ defaultExtensions :: [Extension], -- ^ language extensions used by all modules+ otherExtensions :: [Extension], -- ^ other language extensions used within the package+ oldExtensions :: [Extension], -- ^ the old extensions field, treated same as 'defaultExtensions'++ extraLibs :: [String], -- ^ what libraries to link with when compiling a program that uses your package+ extraGHCiLibs :: [String], -- ^ if present, overrides extraLibs when package is loaded with GHCi.+ extraLibDirs :: [String],+ includeDirs :: [FilePath], -- ^directories to find .h files+ includes :: [FilePath], -- ^ The .h files to be found in includeDirs+ installIncludes :: [FilePath], -- ^ .h files to install with the package+ options :: [(CompilerFlavor,[String])],+ profOptions :: [(CompilerFlavor,[String])],+ sharedOptions :: [(CompilerFlavor,[String])],+ customFieldsBI :: [(String,String)], -- ^Custom fields starting+ -- with x-, stored in a+ -- simple assoc-list.+ targetBuildDepends :: [Dependency], -- ^ Dependencies specific to a library or executable target+ mixins :: [Mixin]+ }+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Binary BuildInfo++instance Monoid BuildInfo where+ mempty = BuildInfo {+ buildable = True,+ buildTools = [],+ buildToolDepends = [],+ cppOptions = [],+ ccOptions = [],+ ldOptions = [],+ pkgconfigDepends = [],+ frameworks = [],+ extraFrameworkDirs = [],+ cSources = [],+ jsSources = [],+ hsSourceDirs = [],+ otherModules = [],+ autogenModules = [],+ defaultLanguage = Nothing,+ otherLanguages = [],+ defaultExtensions = [],+ otherExtensions = [],+ oldExtensions = [],+ extraLibs = [],+ extraGHCiLibs = [],+ extraLibDirs = [],+ includeDirs = [],+ includes = [],+ installIncludes = [],+ options = [],+ profOptions = [],+ sharedOptions = [],+ customFieldsBI = [],+ targetBuildDepends = [],+ mixins = []+ }+ mappend = (<>)++instance Semigroup BuildInfo where+ a <> b = BuildInfo {+ buildable = buildable a && buildable b,+ buildTools = combine buildTools,+ buildToolDepends = combine buildToolDepends,+ cppOptions = combine cppOptions,+ ccOptions = combine ccOptions,+ ldOptions = combine ldOptions,+ pkgconfigDepends = combine pkgconfigDepends,+ frameworks = combineNub frameworks,+ extraFrameworkDirs = combineNub extraFrameworkDirs,+ cSources = combineNub cSources,+ jsSources = combineNub jsSources,+ hsSourceDirs = combineNub hsSourceDirs,+ otherModules = combineNub otherModules,+ autogenModules = combineNub autogenModules,+ defaultLanguage = combineMby defaultLanguage,+ otherLanguages = combineNub otherLanguages,+ defaultExtensions = combineNub defaultExtensions,+ otherExtensions = combineNub otherExtensions,+ oldExtensions = combineNub oldExtensions,+ extraLibs = combine extraLibs,+ extraGHCiLibs = combine extraGHCiLibs,+ extraLibDirs = combineNub extraLibDirs,+ includeDirs = combineNub includeDirs,+ includes = combineNub includes,+ installIncludes = combineNub installIncludes,+ options = combine options,+ profOptions = combine profOptions,+ sharedOptions = combine sharedOptions,+ customFieldsBI = combine customFieldsBI,+ targetBuildDepends = combineNub targetBuildDepends,+ mixins = combine mixins+ }+ where+ combine field = field a `mappend` field b+ combineNub field = nub (combine field)+ combineMby field = field b `mplus` field a++emptyBuildInfo :: BuildInfo+emptyBuildInfo = mempty++-- | The 'Language's used by this component+--+allLanguages :: BuildInfo -> [Language]+allLanguages bi = maybeToList (defaultLanguage bi)+ ++ otherLanguages bi++-- | The 'Extension's that are used somewhere by this component+--+allExtensions :: BuildInfo -> [Extension]+allExtensions bi = usedExtensions bi+ ++ otherExtensions bi++-- | The 'Extensions' that are used by all modules in this component+--+usedExtensions :: BuildInfo -> [Extension]+usedExtensions bi = oldExtensions bi+ ++ defaultExtensions bi++-- |Select options for a particular Haskell compiler.+hcOptions :: CompilerFlavor -> BuildInfo -> [String]+hcOptions = lookupHcOptions options++hcProfOptions :: CompilerFlavor -> BuildInfo -> [String]+hcProfOptions = lookupHcOptions profOptions++hcSharedOptions :: CompilerFlavor -> BuildInfo -> [String]+hcSharedOptions = lookupHcOptions sharedOptions++lookupHcOptions :: (BuildInfo -> [(CompilerFlavor,[String])])+ -> CompilerFlavor -> BuildInfo -> [String]+lookupHcOptions f hc bi = [ opt | (hc',opts) <- f bi+ , hc' == hc+ , opt <- opts ]
+ Distribution/Types/BuildType.hs view
@@ -0,0 +1,48 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.BuildType (+ BuildType(..),+ knownBuildTypes,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Text+import qualified Distribution.Compat.ReadP as Parse++import Text.PrettyPrint as Disp++-- | The type of build system used by this package.+data BuildType+ = Simple -- ^ calls @Distribution.Simple.defaultMain@+ | Configure -- ^ calls @Distribution.Simple.defaultMainWithHooks defaultUserHooks@,+ -- which invokes @configure@ to generate additional build+ -- information used by later phases.+ | Make -- ^ calls @Distribution.Make.defaultMain@+ | Custom -- ^ uses user-supplied @Setup.hs@ or @Setup.lhs@ (default)+ | UnknownBuildType String+ -- ^ a package that uses an unknown build type cannot actually+ -- be built. Doing it this way rather than just giving a+ -- parse error means we get better error messages and allows+ -- you to inspect the rest of the package description.+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Binary BuildType++knownBuildTypes :: [BuildType]+knownBuildTypes = [Simple, Configure, Make, Custom]++instance Text BuildType where+ disp (UnknownBuildType other) = Disp.text other+ disp other = Disp.text (show other)++ parse = do+ name <- Parse.munch1 isAlphaNum+ return $ case name of+ "Simple" -> Simple+ "Configure" -> Configure+ "Custom" -> Custom+ "Make" -> Make+ _ -> UnknownBuildType name
+ Distribution/Types/Component.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.Component (+ Component(..),+ foldComponent,+ componentBuildInfo,+ componentBuildable,+ componentName,+ partitionComponents,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.Library+import Distribution.Types.ForeignLib+import Distribution.Types.Executable+import Distribution.Types.TestSuite+import Distribution.Types.Benchmark++import Distribution.Types.ComponentName+import Distribution.Types.BuildInfo++data Component = CLib Library+ | CFLib ForeignLib+ | CExe Executable+ | CTest TestSuite+ | CBench Benchmark+ deriving (Show, Eq, Read)++instance Semigroup Component where+ CLib l <> CLib l' = CLib (l <> l')+ CFLib l <> CFLib l' = CFLib (l <> l')+ CExe e <> CExe e' = CExe (e <> e')+ CTest t <> CTest t' = CTest (t <> t')+ CBench b <> CBench b' = CBench (b <> b')+ _ <> _ = error "Cannot merge Component"++foldComponent :: (Library -> a)+ -> (ForeignLib -> a)+ -> (Executable -> a)+ -> (TestSuite -> a)+ -> (Benchmark -> a)+ -> Component+ -> a+foldComponent f _ _ _ _ (CLib lib) = f lib+foldComponent _ f _ _ _ (CFLib flib)= f flib+foldComponent _ _ f _ _ (CExe exe) = f exe+foldComponent _ _ _ f _ (CTest tst) = f tst+foldComponent _ _ _ _ f (CBench bch) = f bch++componentBuildInfo :: Component -> BuildInfo+componentBuildInfo =+ foldComponent libBuildInfo foreignLibBuildInfo buildInfo testBuildInfo benchmarkBuildInfo++-- | Is a component buildable (i.e., not marked with @buildable: False@)?+-- See also this note in+-- "Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components".+--+-- @since 2.0.0.0+--+componentBuildable :: Component -> Bool+componentBuildable = buildable . componentBuildInfo++componentName :: Component -> ComponentName+componentName =+ foldComponent (libraryComponentName . libName)+ (CFLibName . foreignLibName)+ (CExeName . exeName)+ (CTestName . testName)+ (CBenchName . benchmarkName)++partitionComponents+ :: [Component]+ -> ([Library], [ForeignLib], [Executable], [TestSuite], [Benchmark])+partitionComponents = foldr (foldComponent fa fb fc fd fe) ([],[],[],[],[])+ where+ fa x ~(a,b,c,d,e) = (x:a,b,c,d,e)+ fb x ~(a,b,c,d,e) = (a,x:b,c,d,e)+ fc x ~(a,b,c,d,e) = (a,b,x:c,d,e)+ fd x ~(a,b,c,d,e) = (a,b,c,x:d,e)+ fe x ~(a,b,c,d,e) = (a,b,c,d,x:e)
+ Distribution/Types/ComponentId.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}++module Distribution.Types.ComponentId+ ( ComponentId, unComponentId, mkComponentId+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Utils.ShortText++import qualified Distribution.Compat.ReadP as Parse+import Distribution.Text++import Text.PrettyPrint (text)++-- | A 'ComponentId' uniquely identifies the transitive source+-- code closure of a component (i.e. libraries, executables).+--+-- For non-Backpack components, this corresponds one to one with+-- the 'UnitId', which serves as the basis for install paths,+-- linker symbols, etc.+--+-- Use 'mkComponentId' and 'unComponentId' to convert from/to a+-- 'String'.+--+-- This type is opaque since @Cabal-2.0@+--+-- @since 2.0+newtype ComponentId = ComponentId ShortText+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)++-- | Construct a 'ComponentId' from a 'String'+--+-- 'mkComponentId' is the inverse to 'unComponentId'+--+-- Note: No validations are performed to ensure that the resulting+-- 'ComponentId' is valid+--+-- @since 2.0+mkComponentId :: String -> ComponentId+mkComponentId = ComponentId . toShortText++-- | Convert 'ComponentId' to 'String'+--+-- @since 2.0+unComponentId :: ComponentId -> String+unComponentId (ComponentId s) = fromShortText s++-- | 'mkComponentId'+--+-- @since 2.0+instance IsString ComponentId where+ fromString = mkComponentId++instance Binary ComponentId++instance Text ComponentId where+ disp = text . unComponentId++ parse = mkComponentId `fmap` Parse.munch1 abi_char+ where abi_char c = isAlphaNum c || c `elem` "-_."++instance NFData ComponentId where+ rnf = rnf . unComponentId
+ Distribution/Types/ComponentInclude.hs view
@@ -0,0 +1,32 @@+module Distribution.Types.ComponentInclude (+ ComponentInclude(..),+ ci_id,+ ci_pkgid,+ ci_cname+) where++import Distribution.Types.PackageId+import Distribution.Types.ComponentName+import Distribution.Types.AnnotatedId++-- Once ci_id is refined to an 'OpenUnitId' or 'DefUnitId',+-- the 'includeRequiresRn' is not so useful (because it+-- includes the requirements renaming that is no longer+-- needed); use 'ci_prov_renaming' instead.+data ComponentInclude id rn = ComponentInclude {+ ci_ann_id :: AnnotatedId id,+ ci_renaming :: rn,+ -- | Did this come from an entry in @mixins@, or+ -- was implicitly generated by @build-depends@?+ ci_implicit :: Bool+ }++ci_id :: ComponentInclude id rn -> id+ci_id = ann_id . ci_ann_id++ci_pkgid :: ComponentInclude id rn -> PackageId+ci_pkgid = ann_pid . ci_ann_id++-- | This should always return 'CLibName' or 'CSubLibName'+ci_cname :: ComponentInclude id rn -> ComponentName+ci_cname = ann_cname . ci_ann_id
+ Distribution/Types/ComponentLocalBuildInfo.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE TypeFamilies #-}++module Distribution.Types.ComponentLocalBuildInfo (+ ComponentLocalBuildInfo(..),+ componentIsIndefinite,+ maybeComponentInstantiatedWith,+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.ModuleName++import Distribution.Backpack+import Distribution.Compat.Graph+import Distribution.Types.ComponentId+import Distribution.Types.MungedPackageId+import Distribution.Types.UnitId+import Distribution.Types.ComponentName+import Distribution.Types.MungedPackageName++import Distribution.PackageDescription+import qualified Distribution.InstalledPackageInfo as Installed++-- | The first five fields are common across all algebraic variants.+data ComponentLocalBuildInfo+ = LibComponentLocalBuildInfo {+ -- | It would be very convenient to store the literal Library here,+ -- but if we do that, it will get serialized (via the Binary)+ -- instance twice. So instead we just provide the ComponentName,+ -- which can be used to find the Component in the+ -- PackageDescription. NB: eventually, this will NOT uniquely+ -- identify the ComponentLocalBuildInfo.+ componentLocalName :: ComponentName,+ -- | The computed 'ComponentId' of this component.+ componentComponentId :: ComponentId,+ -- | The computed 'UnitId' which uniquely identifies this+ -- component. Might be hashed.+ componentUnitId :: UnitId,+ -- | Is this an indefinite component (i.e. has unfilled holes)?+ componentIsIndefinite_ :: Bool,+ -- | How the component was instantiated+ componentInstantiatedWith :: [(ModuleName, OpenModule)],+ -- | Resolved internal and external package dependencies for this component.+ -- The 'BuildInfo' specifies a set of build dependencies that must be+ -- satisfied in terms of version ranges. This field fixes those dependencies+ -- to the specific versions available on this machine for this compiler.+ componentPackageDeps :: [(UnitId, MungedPackageId)],+ -- | The set of packages that are brought into scope during+ -- compilation, including a 'ModuleRenaming' which may used+ -- to hide or rename modules. This is what gets translated into+ -- @-package-id@ arguments. This is a modernized version of+ -- 'componentPackageDeps', which is kept around for BC purposes.+ componentIncludes :: [(OpenUnitId, ModuleRenaming)],+ componentExeDeps :: [UnitId],+ -- | The internal dependencies which induce a graph on the+ -- 'ComponentLocalBuildInfo' of this package. This does NOT+ -- coincide with 'componentPackageDeps' because it ALSO records+ -- 'build-tool' dependencies on executables. Maybe one day+ -- @cabal-install@ will also handle these correctly too!+ componentInternalDeps :: [UnitId],+ -- | Compatibility "package key" that we pass to older versions of GHC.+ componentCompatPackageKey :: String,+ -- | Compatibility "package name" that we register this component as.+ componentCompatPackageName :: MungedPackageName,+ -- | A list of exposed modules (either defined in this component,+ -- or reexported from another component.)+ componentExposedModules :: [Installed.ExposedModule],+ -- | Convenience field, specifying whether or not this is the+ -- "public library" that has the same name as the package.+ componentIsPublic :: Bool+ }+ -- TODO: refactor all these duplicates+ | FLibComponentLocalBuildInfo {+ componentLocalName :: ComponentName,+ componentComponentId :: ComponentId,+ componentUnitId :: UnitId,+ componentPackageDeps :: [(UnitId, MungedPackageId)],+ componentIncludes :: [(OpenUnitId, ModuleRenaming)],+ componentExeDeps :: [UnitId],+ componentInternalDeps :: [UnitId]+ }+ | ExeComponentLocalBuildInfo {+ componentLocalName :: ComponentName,+ componentComponentId :: ComponentId,+ componentUnitId :: UnitId,+ componentPackageDeps :: [(UnitId, MungedPackageId)],+ componentIncludes :: [(OpenUnitId, ModuleRenaming)],+ componentExeDeps :: [UnitId],+ componentInternalDeps :: [UnitId]+ }+ | TestComponentLocalBuildInfo {+ componentLocalName :: ComponentName,+ componentComponentId :: ComponentId,+ componentUnitId :: UnitId,+ componentPackageDeps :: [(UnitId, MungedPackageId)],+ componentIncludes :: [(OpenUnitId, ModuleRenaming)],+ componentExeDeps :: [UnitId],+ componentInternalDeps :: [UnitId]++ }+ | BenchComponentLocalBuildInfo {+ componentLocalName :: ComponentName,+ componentComponentId :: ComponentId,+ componentUnitId :: UnitId,+ componentPackageDeps :: [(UnitId, MungedPackageId)],+ componentIncludes :: [(OpenUnitId, ModuleRenaming)],+ componentExeDeps :: [UnitId],+ componentInternalDeps :: [UnitId]+ }+ deriving (Generic, Read, Show)++instance Binary ComponentLocalBuildInfo++instance IsNode ComponentLocalBuildInfo where+ type Key ComponentLocalBuildInfo = UnitId+ nodeKey = componentUnitId+ nodeNeighbors = componentInternalDeps++componentIsIndefinite :: ComponentLocalBuildInfo -> Bool+componentIsIndefinite LibComponentLocalBuildInfo{ componentIsIndefinite_ = b } = b+componentIsIndefinite _ = False++maybeComponentInstantiatedWith :: ComponentLocalBuildInfo -> Maybe [(ModuleName, OpenModule)]+maybeComponentInstantiatedWith+ LibComponentLocalBuildInfo { componentInstantiatedWith = insts } = Just insts+maybeComponentInstantiatedWith _ = Nothing
+ Distribution/Types/ComponentName.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.ComponentName (+ ComponentName(..),+ defaultLibName,+ libraryComponentName,+ showComponentName,+ componentNameStanza,+ componentNameString,+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import qualified Distribution.Compat.ReadP as Parse+import Distribution.Compat.ReadP ((<++))+import Distribution.Types.UnqualComponentName+import Distribution.Text++import Text.PrettyPrint as Disp++-- Libraries live in a separate namespace, so must distinguish+data ComponentName = CLibName+ | CSubLibName UnqualComponentName+ | CFLibName UnqualComponentName+ | CExeName UnqualComponentName+ | CTestName UnqualComponentName+ | CBenchName UnqualComponentName+ deriving (Eq, Generic, Ord, Read, Show, Typeable)++instance Binary ComponentName++-- Build-target-ish syntax+instance Text ComponentName where+ disp CLibName = Disp.text "lib"+ disp (CSubLibName str) = Disp.text "lib:" <<>> disp str+ disp (CFLibName str) = Disp.text "flib:" <<>> disp str+ disp (CExeName str) = Disp.text "exe:" <<>> disp str+ disp (CTestName str) = Disp.text "test:" <<>> disp str+ disp (CBenchName str) = Disp.text "bench:" <<>> disp str++ parse = parseComposite <++ parseSingle+ where+ parseSingle = Parse.string "lib" >> return CLibName+ parseComposite = do+ ctor <- Parse.choice [ Parse.string "lib:" >> return CSubLibName+ , Parse.string "flib:" >> return CFLibName+ , Parse.string "exe:" >> return CExeName+ , Parse.string "bench:" >> return CBenchName+ , Parse.string "test:" >> return CTestName ]+ ctor <$> parse++defaultLibName :: ComponentName+defaultLibName = CLibName++showComponentName :: ComponentName -> String+showComponentName CLibName = "library"+showComponentName (CSubLibName name) = "library '" ++ display name ++ "'"+showComponentName (CFLibName name) = "foreign library '" ++ display name ++ "'"+showComponentName (CExeName name) = "executable '" ++ display name ++ "'"+showComponentName (CTestName name) = "test suite '" ++ display name ++ "'"+showComponentName (CBenchName name) = "benchmark '" ++ display name ++ "'"++componentNameStanza :: ComponentName -> String+componentNameStanza CLibName = "library"+componentNameStanza (CSubLibName name) = "library " ++ display name+componentNameStanza (CFLibName name) = "foreign-library " ++ display name+componentNameStanza (CExeName name) = "executable " ++ display name+componentNameStanza (CTestName name) = "test-suite " ++ display name+componentNameStanza (CBenchName name) = "benchmark " ++ display name++-- | This gets the underlying unqualified component name. In fact, it is+-- guaranteed to uniquely identify a component, returning+-- @Nothing@ if the 'ComponentName' was for the public+-- library.+componentNameString :: ComponentName -> Maybe UnqualComponentName+componentNameString CLibName = Nothing+componentNameString (CSubLibName n) = Just n+componentNameString (CFLibName n) = Just n+componentNameString (CExeName n) = Just n+componentNameString (CTestName n) = Just n+componentNameString (CBenchName n) = Just n++-- | Convert the 'UnqualComponentName' of a library into a+-- 'ComponentName'.+libraryComponentName :: Maybe UnqualComponentName -> ComponentName+libraryComponentName Nothing = CLibName+libraryComponentName (Just n) = CSubLibName n
+ Distribution/Types/ComponentRequestedSpec.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.ComponentRequestedSpec (+ -- $buildable_vs_enabled_components++ ComponentRequestedSpec(..),+ ComponentDisabledReason(..),++ defaultComponentRequestedSpec,+ componentNameRequested,++ componentEnabled,+ componentDisabledReason,+) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Text++import Distribution.Types.Component -- TODO: maybe remove me?+import Distribution.Types.ComponentName++-- $buildable_vs_enabled_components+-- #buildable_vs_enabled_components#+--+-- = Note: Buildable versus requested versus enabled components+-- What's the difference between a buildable component (ala+-- 'componentBuildable'), a requested component+-- (ala 'componentNameRequested'), and an enabled component (ala+-- 'componentEnabled')?+--+-- A component is __buildable__ if, after resolving flags and+-- conditionals, there is no @buildable: False@ property in it.+-- This is a /static/ property that arises from the+-- Cabal file and the package description flattening; once we have+-- a 'PackageDescription' buildability is known.+--+-- A component is __requested__ if a user specified, via a+-- the flags and arguments passed to configure, that it should be+-- built. E.g., @--enable-tests@ or @--enable-benchmarks@ request+-- all tests and benchmarks, if they are provided. What is requested+-- can be read off directly from 'ComponentRequestedSpec'. A requested+-- component is not always buildable; e.g., a user may @--enable-tests@+-- but one of the test suites may have @buildable: False@.+--+-- A component is __enabled__ if it is BOTH buildable+-- and requested. Once we have a 'LocalBuildInfo', whether or not a+-- component is enabled is known.+--+-- Generally speaking, most Cabal API code cares if a component+-- is enabled. (For example, if you want to run a preprocessor on each+-- component prior to building them, you want to run this on each+-- /enabled/ component.)+--+-- Note that post-configuration, you will generally not see a+-- non-buildable 'Component'. This is because 'flattenPD' will drop+-- any such components from 'PackageDescription'. See #3858 for+-- an example where this causes problems.++-- | Describes what components are enabled by user-interaction.+-- See also this note in+-- "Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components".+--+-- @since 2.0.0.0+data ComponentRequestedSpec+ = ComponentRequestedSpec { testsRequested :: Bool+ , benchmarksRequested :: Bool }+ | OneComponentRequestedSpec ComponentName+ deriving (Generic, Read, Show, Eq)+instance Binary ComponentRequestedSpec++-- | The default set of enabled components. Historically tests and+-- benchmarks are NOT enabled by default.+--+-- @since 2.0.0.0+defaultComponentRequestedSpec :: ComponentRequestedSpec+defaultComponentRequestedSpec = ComponentRequestedSpec False False++-- | Is this component enabled? See also this note in+-- "Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components".+--+-- @since 2.0.0.0+componentEnabled :: ComponentRequestedSpec -> Component -> Bool+componentEnabled enabled = isNothing . componentDisabledReason enabled++-- | Is this component name enabled? See also this note in+-- "Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components".+--+-- @since 2.0.0.0+componentNameRequested :: ComponentRequestedSpec -> ComponentName -> Bool+componentNameRequested enabled = isNothing . componentNameNotRequestedReason enabled++-- | Is this component disabled, and if so, why?+--+-- @since 2.0.0.0+componentDisabledReason :: ComponentRequestedSpec -> Component+ -> Maybe ComponentDisabledReason+componentDisabledReason enabled comp+ | not (componentBuildable comp) = Just DisabledComponent+ | otherwise = componentNameNotRequestedReason enabled (componentName comp)++-- | Is this component name disabled, and if so, why?+--+-- @since 2.0.0.0+componentNameNotRequestedReason :: ComponentRequestedSpec -> ComponentName+ -> Maybe ComponentDisabledReason+componentNameNotRequestedReason+ ComponentRequestedSpec{ testsRequested = False } (CTestName _)+ = Just DisabledAllTests+componentNameNotRequestedReason+ ComponentRequestedSpec{ benchmarksRequested = False } (CBenchName _)+ = Just DisabledAllBenchmarks+componentNameNotRequestedReason ComponentRequestedSpec{} _ = Nothing+componentNameNotRequestedReason (OneComponentRequestedSpec cname) c+ | c == cname = Nothing+ | otherwise = Just (DisabledAllButOne (display cname))++-- | A reason explaining why a component is disabled.+--+-- @since 2.0.0.0+data ComponentDisabledReason = DisabledComponent+ | DisabledAllTests+ | DisabledAllBenchmarks+ | DisabledAllButOne String
+ Distribution/Types/CondTree.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE DeriveFoldable #-}+{-# LANGUAGE DeriveTraversable #-}++module Distribution.Types.CondTree (+ CondTree(..),+ CondBranch(..),+ condIfThen,+ condIfThenElse,+ mapCondTree,+ mapTreeConstrs,+ mapTreeConds,+ mapTreeData,+ extractCondition,+ simplifyCondTree,+ ignoreConditions,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.Condition++-- | A 'CondTree' is used to represent the conditional structure of+-- a Cabal file, reflecting a syntax element subject to constraints,+-- and then any number of sub-elements which may be enabled subject+-- to some condition. Both @a@ and @c@ are usually 'Monoid's.+--+-- To be more concrete, consider the following fragment of a @Cabal@+-- file:+--+-- @+-- build-depends: base >= 4.0+-- if flag(extra)+-- build-depends: base >= 4.2+-- @+--+-- One way to represent this is to have @'CondTree' 'ConfVar'+-- ['Dependency'] 'BuildInfo'@. Here, 'condTreeData' represents+-- the actual fields which are not behind any conditional, while+-- 'condTreeComponents' recursively records any further fields+-- which are behind a conditional. 'condTreeConstraints' records+-- the constraints (in this case, @base >= 4.0@) which would+-- be applied if you use this syntax; in general, this is+-- derived off of 'targetBuildInfo' (perhaps a good refactoring+-- would be to convert this into an opaque type, with a smart+-- constructor that pre-computes the dependencies.)+--+data CondTree v c a = CondNode+ { condTreeData :: a+ , condTreeConstraints :: c+ , condTreeComponents :: [CondBranch v c a]+ }+ deriving (Show, Eq, Typeable, Data, Generic, Functor, Foldable, Traversable)++instance (Binary v, Binary c, Binary a) => Binary (CondTree v c a)++-- | A 'CondBranch' represents a conditional branch, e.g., @if+-- flag(foo)@ on some syntax @a@. It also has an optional false+-- branch.+--+data CondBranch v c a = CondBranch+ { condBranchCondition :: Condition v+ , condBranchIfTrue :: CondTree v c a+ , condBranchIfFalse :: Maybe (CondTree v c a)+ }+ deriving (Show, Eq, Typeable, Data, Generic, Functor, Traversable)++-- This instance is written by hand because GHC 8.0.1/8.0.2 infinite+-- loops when trying to derive it with optimizations. See+-- https://ghc.haskell.org/trac/ghc/ticket/13056+instance Foldable (CondBranch v c) where+ foldMap f (CondBranch _ c Nothing) = foldMap f c+ foldMap f (CondBranch _ c (Just a)) = foldMap f c `mappend` foldMap f a++instance (Binary v, Binary c, Binary a) => Binary (CondBranch v c a)++condIfThen :: Condition v -> CondTree v c a -> CondBranch v c a+condIfThen c t = CondBranch c t Nothing++condIfThenElse :: Condition v -> CondTree v c a -> CondTree v c a -> CondBranch v c a+condIfThenElse c t e = CondBranch c t (Just e)++mapCondTree :: (a -> b) -> (c -> d) -> (Condition v -> Condition w)+ -> CondTree v c a -> CondTree w d b+mapCondTree fa fc fcnd (CondNode a c ifs) =+ CondNode (fa a) (fc c) (map g ifs)+ where+ g (CondBranch cnd t me)+ = CondBranch (fcnd cnd)+ (mapCondTree fa fc fcnd t)+ (fmap (mapCondTree fa fc fcnd) me)++mapTreeConstrs :: (c -> d) -> CondTree v c a -> CondTree v d a+mapTreeConstrs f = mapCondTree id f id++mapTreeConds :: (Condition v -> Condition w) -> CondTree v c a -> CondTree w c a+mapTreeConds f = mapCondTree id id f++mapTreeData :: (a -> b) -> CondTree v c a -> CondTree v c b+mapTreeData f = mapCondTree f id id+++-- | Extract the condition matched by the given predicate from a cond tree.+--+-- We use this mainly for extracting buildable conditions (see the Note above),+-- but the function is in fact more general.+extractCondition :: Eq v => (a -> Bool) -> CondTree v c a -> Condition v+extractCondition p = go+ where+ go (CondNode x _ cs) | not (p x) = Lit False+ | otherwise = goList cs++ goList [] = Lit True+ goList (CondBranch c t e : cs) =+ let+ ct = go t+ ce = maybe (Lit True) go e+ in+ ((c `cAnd` ct) `cOr` (CNot c `cAnd` ce)) `cAnd` goList cs++-- | Flattens a CondTree using a partial flag assignment. When a condition+-- cannot be evaluated, both branches are ignored.+simplifyCondTree :: (Monoid a, Monoid d) =>+ (v -> Either v Bool)+ -> CondTree v d a+ -> (d, a)+simplifyCondTree env (CondNode a d ifs) =+ mconcat $ (d, a) : mapMaybe simplifyIf ifs+ where+ simplifyIf (CondBranch cnd t me) =+ case simplifyCondition cnd env of+ (Lit True, _) -> Just $ simplifyCondTree env t+ (Lit False, _) -> fmap (simplifyCondTree env) me+ _ -> Nothing++-- | Flatten a CondTree. This will resolve the CondTree by taking all+-- possible paths into account. Note that since branches represent exclusive+-- choices this may not result in a \"sane\" result.+ignoreConditions :: (Monoid a, Monoid c) => CondTree v c a -> (a, c)+ignoreConditions (CondNode a c ifs) = (a, c) `mappend` mconcat (concatMap f ifs)+ where f (CondBranch _ t me) = ignoreConditions t+ : maybeToList (fmap ignoreConditions me)
+ Distribution/Types/Condition.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.Condition (+ Condition(..),+ cNot,+ cAnd,+ cOr,+ simplifyCondition,+) where++import Prelude ()+import Distribution.Compat.Prelude++-- | A boolean expression parameterized over the variable type used.+data Condition c = Var c+ | Lit Bool+ | CNot (Condition c)+ | COr (Condition c) (Condition c)+ | CAnd (Condition c) (Condition c)+ deriving (Show, Eq, Typeable, Data, Generic)++-- | Boolean negation of a 'Condition' value.+cNot :: Condition a -> Condition a+cNot (Lit b) = Lit (not b)+cNot (CNot c) = c+cNot c = CNot c++-- | Boolean AND of two 'Condtion' values.+cAnd :: Condition a -> Condition a -> Condition a+cAnd (Lit False) _ = Lit False+cAnd _ (Lit False) = Lit False+cAnd (Lit True) x = x+cAnd x (Lit True) = x+cAnd x y = CAnd x y++-- | Boolean OR of two 'Condition' values.+cOr :: Eq v => Condition v -> Condition v -> Condition v+cOr (Lit True) _ = Lit True+cOr _ (Lit True) = Lit True+cOr (Lit False) x = x+cOr x (Lit False) = x+cOr c (CNot d)+ | c == d = Lit True+cOr (CNot c) d+ | c == d = Lit True+cOr x y = COr x y++instance Functor Condition where+ f `fmap` Var c = Var (f c)+ _ `fmap` Lit c = Lit c+ f `fmap` CNot c = CNot (fmap f c)+ f `fmap` COr c d = COr (fmap f c) (fmap f d)+ f `fmap` CAnd c d = CAnd (fmap f c) (fmap f d)++instance Foldable Condition where+ f `foldMap` Var c = f c+ _ `foldMap` Lit _ = mempty+ f `foldMap` CNot c = foldMap f c+ f `foldMap` COr c d = foldMap f c `mappend` foldMap f d+ f `foldMap` CAnd c d = foldMap f c `mappend` foldMap f d++instance Traversable Condition where+ f `traverse` Var c = Var `fmap` f c+ _ `traverse` Lit c = pure $ Lit c+ f `traverse` CNot c = CNot `fmap` traverse f c+ f `traverse` COr c d = COr `fmap` traverse f c <*> traverse f d+ f `traverse` CAnd c d = CAnd `fmap` traverse f c <*> traverse f d++instance Applicative Condition where+ pure = Var+ (<*>) = ap++instance Monad Condition where+ return = pure+ -- Terminating cases+ (>>=) (Lit x) _ = Lit x+ (>>=) (Var x) f = f x+ -- Recursing cases+ (>>=) (CNot x ) f = CNot (x >>= f)+ (>>=) (COr x y) f = COr (x >>= f) (y >>= f)+ (>>=) (CAnd x y) f = CAnd (x >>= f) (y >>= f)++instance Monoid (Condition a) where+ mempty = Lit False+ mappend = (<>)++instance Semigroup (Condition a) where+ (<>) = COr++instance Alternative Condition where+ empty = mempty+ (<|>) = mappend++instance MonadPlus Condition where+ mzero = mempty+ mplus = mappend++instance Binary c => Binary (Condition c)++-- | Simplify the condition and return its free variables.+simplifyCondition :: Condition c+ -> (c -> Either d Bool) -- ^ (partial) variable assignment+ -> (Condition d, [d])+simplifyCondition cond i = fv . walk $ cond+ where+ walk cnd = case cnd of+ Var v -> either Var Lit (i v)+ Lit b -> Lit b+ CNot c -> case walk c of+ Lit True -> Lit False+ Lit False -> Lit True+ c' -> CNot c'+ COr c d -> case (walk c, walk d) of+ (Lit False, d') -> d'+ (Lit True, _) -> Lit True+ (c', Lit False) -> c'+ (_, Lit True) -> Lit True+ (c',d') -> COr c' d'+ CAnd c d -> case (walk c, walk d) of+ (Lit False, _) -> Lit False+ (Lit True, d') -> d'+ (_, Lit False) -> Lit False+ (c', Lit True) -> c'+ (c',d') -> CAnd c' d'+ -- gather free vars+ fv c = (c, fv' c)+ fv' c = case c of+ Var v -> [v]+ Lit _ -> []+ CNot c' -> fv' c'+ COr c1 c2 -> fv' c1 ++ fv' c2+ CAnd c1 c2 -> fv' c1 ++ fv' c2
+ Distribution/Types/Dependency.hs view
@@ -0,0 +1,64 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.Dependency+ ( Dependency(..)+ , depPkgName+ , depVerRange+ , thisPackageVersion+ , notThisPackageVersion+ , simplifyDependency+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Version ( VersionRange, thisVersion+ , notThisVersion, anyVersion+ , simplifyVersionRange )++import qualified Distribution.Compat.ReadP as Parse+import Distribution.Compat.ReadP+import Distribution.Text+import Distribution.Types.PackageId+import Distribution.Types.PackageName++import Text.PrettyPrint ((<+>))++-- | Describes a dependency on a source package (API)+--+data Dependency = Dependency PackageName VersionRange+ deriving (Generic, Read, Show, Eq, Typeable, Data)++depPkgName :: Dependency -> PackageName+depPkgName (Dependency pn _) = pn++depVerRange :: Dependency -> VersionRange+depVerRange (Dependency _ vr) = vr++instance Binary Dependency+instance NFData Dependency where rnf = genericRnf++instance Text Dependency where+ disp (Dependency name ver) =+ disp name <+> disp ver++ parse = do name <- parse+ Parse.skipSpaces+ ver <- parse <++ return anyVersion+ Parse.skipSpaces+ return (Dependency name ver)++thisPackageVersion :: PackageIdentifier -> Dependency+thisPackageVersion (PackageIdentifier n v) =+ Dependency n (thisVersion v)++notThisPackageVersion :: PackageIdentifier -> Dependency+notThisPackageVersion (PackageIdentifier n v) =+ Dependency n (notThisVersion v)++-- | Simplify the 'VersionRange' expression in a 'Dependency'.+-- See 'simplifyVersionRange'.+--+simplifyDependency :: Dependency -> Dependency+simplifyDependency (Dependency name range) =+ Dependency name (simplifyVersionRange range)
+ Distribution/Types/DependencyMap.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE CPP #-}++#ifdef MIN_VERSION_containers+#if MIN_VERSION_containers(0,5,0)+#define MIN_VERSION_containers_0_5_0+#endif+#endif++#ifndef MIN_VERSION_containers+#if __GLASGOW_HASKELL__ >= 706+#define MIN_VERSION_containers_0_5_0+#endif+#endif++module Distribution.Types.DependencyMap (+ DependencyMap,+ toDepMap,+ fromDepMap,+ constrainBy,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.Dependency+import Distribution.Types.PackageName+import Distribution.Version++#ifdef MIN_VERSION_containers_0_5_0+import qualified Data.Map.Lazy as Map+#else+import qualified Data.Map as Map+#endif++-- | A map of dependencies. Newtyped since the default monoid instance is not+-- appropriate. The monoid instance uses 'intersectVersionRanges'.+newtype DependencyMap = DependencyMap { unDependencyMap :: Map PackageName VersionRange }+ deriving (Show, Read)++instance Monoid DependencyMap where+ mempty = DependencyMap Map.empty+ mappend = (<>)++instance Semigroup DependencyMap where+ (DependencyMap a) <> (DependencyMap b) =+ DependencyMap (Map.unionWith intersectVersionRanges a b)++toDepMap :: [Dependency] -> DependencyMap+toDepMap ds =+ DependencyMap $ Map.fromListWith intersectVersionRanges [ (p,vr) | Dependency p vr <- ds ]++fromDepMap :: DependencyMap -> [Dependency]+fromDepMap m = [ Dependency p vr | (p,vr) <- Map.toList (unDependencyMap m) ]++-- Apply extra constraints to a dependency map.+-- Combines dependencies where the result will only contain keys from the left+-- (first) map. If a key also exists in the right map, both constraints will+-- be intersected.+constrainBy :: DependencyMap -- ^ Input map+ -> DependencyMap -- ^ Extra constraints+ -> DependencyMap+constrainBy left extra =+ DependencyMap $+#ifdef MIN_VERSION_containers_0_5_0+ Map.foldrWithKey tightenConstraint (unDependencyMap left)+ (unDependencyMap extra)+#else+ Map.foldWithKey tightenConstraint (unDependencyMap left)+ (unDependencyMap extra)+#endif+ where tightenConstraint n c l =+ case Map.lookup n l of+ Nothing -> l+ Just vr -> Map.insert n (intersectVersionRanges vr c) l
+ Distribution/Types/ExeDependency.hs view
@@ -0,0 +1,46 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.ExeDependency+ ( ExeDependency(..)+ , qualifiedExeName+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.ComponentName+import Distribution.Types.UnqualComponentName+import Distribution.Types.PackageName+import Distribution.Version ( VersionRange, anyVersion )++import qualified Distribution.Compat.ReadP as Parse+import Distribution.Compat.ReadP+import Distribution.Text++import Text.PrettyPrint ((<+>), text)++-- | Describes a dependency on an executable from a package+--+data ExeDependency = ExeDependency+ PackageName+ UnqualComponentName -- name of executable component of package+ VersionRange+ deriving (Generic, Read, Show, Eq, Typeable, Data)++instance Binary ExeDependency+instance NFData ExeDependency where rnf = genericRnf++instance Text ExeDependency where+ disp (ExeDependency name exe ver) =+ (disp name <<>> text ":" <<>> disp exe) <+> disp ver++ parse = do name <- parse+ _ <- Parse.char ':'+ exe <- parse+ Parse.skipSpaces+ ver <- parse <++ return anyVersion+ Parse.skipSpaces+ return (ExeDependency name exe ver)++qualifiedExeName :: ExeDependency -> ComponentName+qualifiedExeName (ExeDependency _ ucn _) = CExeName ucn
+ Distribution/Types/Executable.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.Executable (+ Executable(..),+ emptyExecutable,+ exeModules,+ exeModulesAutogen+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.BuildInfo+import Distribution.Types.UnqualComponentName+import Distribution.Types.ExecutableScope+import Distribution.ModuleName++data Executable = Executable {+ exeName :: UnqualComponentName,+ modulePath :: FilePath,+ exeScope :: ExecutableScope,+ buildInfo :: BuildInfo+ }+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Binary Executable++instance Monoid Executable where+ mempty = gmempty+ mappend = (<>)++instance Semigroup Executable where+ a <> b = Executable{+ exeName = combine' exeName,+ modulePath = combine modulePath,+ exeScope = combine exeScope,+ buildInfo = combine buildInfo+ }+ where combine field = field a `mappend` field b+ combine' field = case ( unUnqualComponentName $ field a+ , unUnqualComponentName $ field b) of+ ("", _) -> field b+ (_, "") -> field a+ (x, y) -> error $ "Ambiguous values for executable field: '"+ ++ x ++ "' and '" ++ y ++ "'"++emptyExecutable :: Executable+emptyExecutable = mempty++-- | Get all the module names from an exe+exeModules :: Executable -> [ModuleName]+exeModules exe = otherModules (buildInfo exe)++-- | Get all the auto generated module names from an exe+-- This are a subset of 'exeModules'.+exeModulesAutogen :: Executable -> [ModuleName]+exeModulesAutogen exe = autogenModules (buildInfo exe)
+ Distribution/Types/ExecutableScope.hs view
@@ -0,0 +1,41 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.ExecutableScope (+ ExecutableScope(..),+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Text+import qualified Distribution.Compat.ReadP as Parse++import Text.PrettyPrint (text)++data ExecutableScope = ExecutableScopeUnknown+ | ExecutablePublic+ | ExecutablePrivate+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Text ExecutableScope where+ disp ExecutablePublic = text "public"+ disp ExecutablePrivate = text "private"+ disp ExecutableScopeUnknown = text "unknown"++ parse = Parse.choice+ [ Parse.string "public" >> return ExecutablePublic+ , Parse.string "private" >> return ExecutablePrivate+ ]++instance Binary ExecutableScope++instance Monoid ExecutableScope where+ mempty = ExecutableScopeUnknown+ mappend = (<>)++instance Semigroup ExecutableScope where+ ExecutableScopeUnknown <> x = x+ x <> ExecutableScopeUnknown = x+ x <> y | x == y = x+ | otherwise = error "Ambiguous executable scope"
+ Distribution/Types/ForeignLib.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.ForeignLib(+ ForeignLib(..),+ emptyForeignLib,+ foreignLibModules,+ foreignLibIsShared,+ foreignLibVersion,++ LibVersionInfo,+ mkLibVersionInfo,+ libVersionInfoCRA,+ libVersionNumber,+ libVersionNumberShow,+ libVersionMajor+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.ModuleName+import Distribution.Version+import Distribution.System+import Distribution.Text+import qualified Distribution.Compat.ReadP as Parse++import Distribution.Types.BuildInfo+import Distribution.Types.ForeignLibType+import Distribution.Types.ForeignLibOption+import Distribution.Types.UnqualComponentName++import qualified Text.PrettyPrint as Disp+import qualified Text.Read as Read++-- | A foreign library stanza is like a library stanza, except that+-- the built code is intended for consumption by a non-Haskell client.+data ForeignLib = ForeignLib {+ -- | Name of the foreign library+ foreignLibName :: UnqualComponentName+ -- | What kind of foreign library is this (static or dynamic).+ , foreignLibType :: ForeignLibType+ -- | What options apply to this foreign library (e.g., are we+ -- merging in all foreign dependencies.)+ , foreignLibOptions :: [ForeignLibOption]+ -- | Build information for this foreign library.+ , foreignLibBuildInfo :: BuildInfo+ -- | Libtool-style version-info data to compute library version.+ -- Refer to the libtool documentation on the+ -- current:revision:age versioning scheme.+ , foreignLibVersionInfo :: Maybe LibVersionInfo+ -- | Linux library version+ , foreignLibVersionLinux :: Maybe Version++ -- | (Windows-specific) module definition files+ --+ -- This is a list rather than a maybe field so that we can flatten+ -- the condition trees (for instance, when creating an sdist)+ , foreignLibModDefFile :: [FilePath]+ }+ deriving (Generic, Show, Read, Eq, Typeable, Data)++data LibVersionInfo = LibVersionInfo Int Int Int deriving (Data, Eq, Generic, Typeable)++instance Ord LibVersionInfo where+ LibVersionInfo c r _ `compare` LibVersionInfo c' r' _ =+ case c `compare` c' of+ EQ -> r `compare` r'+ e -> e++instance Show LibVersionInfo where+ showsPrec d (LibVersionInfo c r a) = showParen (d > 10)+ $ showString "mkLibVersionInfo "+ . showsPrec 11 (c,r,a)++instance Read LibVersionInfo where+ readPrec = Read.parens $ do+ Read.Ident "mkLibVersionInfo" <- Read.lexP+ t <- Read.step Read.readPrec+ return (mkLibVersionInfo t)++instance Binary LibVersionInfo++instance Text LibVersionInfo where+ disp (LibVersionInfo c r a)+ = Disp.hcat $ Disp.punctuate (Disp.char ':') $ map Disp.int [c,r,a]+ parse = do+ c <- parseNat+ (r, a) <- Parse.option (0,0) $ do+ _ <- Parse.char ':'+ r <- parseNat+ a <- Parse.option 0 (Parse.char ':' >> parseNat)+ return (r, a)+ return $ mkLibVersionInfo (c,r,a)+ where+ parseNat = read `fmap` Parse.munch1 isDigit++-- | Construct 'LibVersionInfo' from @(current, revision, age)@+-- numbers.+--+-- For instance, @mkLibVersionInfo (3,0,0)@ constructs a+-- 'LibVersionInfo' representing the version-info @3:0:0@.+--+-- All version components must be non-negative.+mkLibVersionInfo :: (Int, Int, Int) -> LibVersionInfo+mkLibVersionInfo (c,r,a) = LibVersionInfo c r a++-- | From a given 'LibVersionInfo', extract the @(current, revision,+-- age)@ numbers.+libVersionInfoCRA :: LibVersionInfo -> (Int, Int, Int)+libVersionInfoCRA (LibVersionInfo c r a) = (c,r,a)++-- | Given a version-info field, produce a @major.minor.build@ version+libVersionNumber :: LibVersionInfo -> (Int, Int, Int)+libVersionNumber (LibVersionInfo c r a) = (c-a , a , r)++-- | Given a version-info field, return @"major.minor.build"@ as a+-- 'String'+libVersionNumberShow :: LibVersionInfo -> String+libVersionNumberShow v =+ let (major, minor, build) = libVersionNumber v+ in show major ++ "." ++ show minor ++ "." ++ show build++-- | Return the @major@ version of a version-info field.+libVersionMajor :: LibVersionInfo -> Int+libVersionMajor (LibVersionInfo c _ a) = c-a++instance Binary ForeignLib++instance Semigroup ForeignLib where+ a <> b = ForeignLib {+ foreignLibName = combine' foreignLibName+ , foreignLibType = combine foreignLibType+ , foreignLibOptions = combine foreignLibOptions+ , foreignLibBuildInfo = combine foreignLibBuildInfo+ , foreignLibVersionInfo = combine'' foreignLibVersionInfo+ , foreignLibVersionLinux = combine'' foreignLibVersionLinux+ , foreignLibModDefFile = combine foreignLibModDefFile+ }+ where combine field = field a `mappend` field b+ combine' field = case ( unUnqualComponentName $ field a+ , unUnqualComponentName $ field b) of+ ("", _) -> field b+ (_, "") -> field a+ (x, y) -> error $ "Ambiguous values for executable field: '"+ ++ x ++ "' and '" ++ y ++ "'"+ combine'' field = field b++instance Monoid ForeignLib where+ mempty = ForeignLib {+ foreignLibName = mempty+ , foreignLibType = ForeignLibTypeUnknown+ , foreignLibOptions = []+ , foreignLibBuildInfo = mempty+ , foreignLibVersionInfo = Nothing+ , foreignLibVersionLinux = Nothing+ , foreignLibModDefFile = []+ }+ mappend = (<>)++-- | An empty foreign library.+emptyForeignLib :: ForeignLib+emptyForeignLib = mempty++-- | Modules defined by a foreign library.+foreignLibModules :: ForeignLib -> [ModuleName]+foreignLibModules = otherModules . foreignLibBuildInfo++-- | Is the foreign library shared?+foreignLibIsShared :: ForeignLib -> Bool+foreignLibIsShared = foreignLibTypeIsShared . foreignLibType++-- | Get a version number for a foreign library.+-- If we're on Linux, and a Linux version is specified, use that.+-- If we're on Linux, and libtool-style version-info is specified, translate+-- that field into appropriate version numbers.+-- Otherwise, this feature is unsupported so we don't return any version data.+foreignLibVersion :: ForeignLib -> OS -> [Int]+foreignLibVersion flib Linux =+ case foreignLibVersionLinux flib of+ Just v -> versionNumbers v+ Nothing ->+ case foreignLibVersionInfo flib of+ Just v' ->+ let (major, minor, build) = libVersionNumber v'+ in [major, minor, build]+ Nothing -> []+foreignLibVersion _ _ = []
+ Distribution/Types/ForeignLibOption.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.ForeignLibOption(+ ForeignLibOption(..)+) where++import Prelude ()+import Distribution.Compat.Prelude++import Text.PrettyPrint+import qualified Distribution.Compat.ReadP as Parse+import Distribution.Text++data ForeignLibOption =+ -- | Merge in all dependent libraries (i.e., use+ -- @ghc -shared -static@ rather than just record+ -- the dependencies, ala @ghc -shared -dynamic@).+ -- This option is compulsory on Windows and unsupported+ -- on other platforms.+ ForeignLibStandalone+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Text ForeignLibOption where+ disp ForeignLibStandalone = text "standalone"++ parse = Parse.choice [+ do _ <- Parse.string "standalone" ; return ForeignLibStandalone+ ]++instance Binary ForeignLibOption+
+ Distribution/Types/ForeignLibType.hs view
@@ -0,0 +1,61 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.ForeignLibType(+ ForeignLibType(..),+ knownForeignLibTypes,+ foreignLibTypeIsShared,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Text.PrettyPrint hiding ((<>))+import Distribution.Text+import qualified Distribution.Compat.ReadP as Parse+import Distribution.PackageDescription.Utils++-- | What kind of foreign library is to be built?+data ForeignLibType =+ -- | A native shared library (@.so@ on Linux, @.dylib@ on OSX, or+ -- @.dll@ on Windows).+ ForeignLibNativeShared+ -- | A native static library (not currently supported.)+ | ForeignLibNativeStatic+ -- TODO: Maybe this should record a string?+ | ForeignLibTypeUnknown+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Text ForeignLibType where+ disp ForeignLibNativeShared = text "native-shared"+ disp ForeignLibNativeStatic = text "native-static"+ disp ForeignLibTypeUnknown = text "unknown"++ parse = Parse.choice [+ do _ <- Parse.string "native-shared" ; return ForeignLibNativeShared+ , do _ <- Parse.string "native-static" ; return ForeignLibNativeStatic+ ]++instance Binary ForeignLibType++instance Semigroup ForeignLibType where+ ForeignLibTypeUnknown <> b = b+ a <> ForeignLibTypeUnknown = a+ _ <> _ = error "Ambiguous foreign library type"++instance Monoid ForeignLibType where+ mempty = ForeignLibTypeUnknown+ mappend = (<>)++knownForeignLibTypes :: [ForeignLibType]+knownForeignLibTypes = [+ ForeignLibNativeShared+ , ForeignLibNativeStatic+ ]++foreignLibTypeIsShared :: ForeignLibType -> Bool+foreignLibTypeIsShared t =+ case t of+ ForeignLibNativeShared -> True+ ForeignLibNativeStatic -> False+ ForeignLibTypeUnknown -> cabalBug "Unknown foreign library type"
+ Distribution/Types/GenericPackageDescription.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.GenericPackageDescription (+ GenericPackageDescription(..),+ Flag(..),+ emptyFlag,+ FlagName,+ mkFlagName,+ unFlagName,+ FlagAssignment,+ showFlagValue,+ dispFlagAssignment,+ parseFlagAssignment,+ ConfVar(..),+) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Utils.ShortText+import Distribution.Utils.Generic (lowercase)+import qualified Text.PrettyPrint as Disp+import qualified Distribution.Compat.ReadP as Parse+import Distribution.Compat.ReadP ((+++))++import Distribution.Types.PackageDescription++import Distribution.Types.Dependency+import Distribution.Types.Library+import Distribution.Types.ForeignLib+import Distribution.Types.Executable+import Distribution.Types.TestSuite+import Distribution.Types.Benchmark+import Distribution.Types.UnqualComponentName+import Distribution.Types.CondTree++import Distribution.Package+import Distribution.Version+import Distribution.Compiler+import Distribution.System++-- ---------------------------------------------------------------------------+-- The GenericPackageDescription type++data GenericPackageDescription =+ GenericPackageDescription {+ packageDescription :: PackageDescription,+ genPackageFlags :: [Flag],+ condLibrary :: Maybe (CondTree ConfVar [Dependency] Library),+ condSubLibraries :: [(UnqualComponentName, CondTree ConfVar [Dependency] Library)],+ condForeignLibs :: [(UnqualComponentName, CondTree ConfVar [Dependency] ForeignLib)],+ condExecutables :: [(UnqualComponentName, CondTree ConfVar [Dependency] Executable)],+ condTestSuites :: [(UnqualComponentName, CondTree ConfVar [Dependency] TestSuite)],+ condBenchmarks :: [(UnqualComponentName, CondTree ConfVar [Dependency] Benchmark)]+ }+ deriving (Show, Eq, Typeable, Data, Generic)++instance Package GenericPackageDescription where+ packageId = packageId . packageDescription++instance Binary GenericPackageDescription++-- | A flag can represent a feature to be included, or a way of linking+-- a target against its dependencies, or in fact whatever you can think of.+data Flag = MkFlag+ { flagName :: FlagName+ , flagDescription :: String+ , flagDefault :: Bool+ , flagManual :: Bool+ }+ deriving (Show, Eq, Typeable, Data, Generic)++instance Binary Flag++-- | A 'Flag' initialized with default parameters.+emptyFlag :: FlagName -> Flag+emptyFlag name = MkFlag+ { flagName = name+ , flagDescription = ""+ , flagDefault = True+ , flagManual = False+ }++-- | A 'FlagName' is the name of a user-defined configuration flag+--+-- Use 'mkFlagName' and 'unFlagName' to convert from/to a 'String'.+--+-- This type is opaque since @Cabal-2.0@+--+-- @since 2.0+newtype FlagName = FlagName ShortText+ deriving (Eq, Generic, Ord, Show, Read, Typeable, Data)++-- | Construct a 'FlagName' from a 'String'+--+-- 'mkFlagName' is the inverse to 'unFlagName'+--+-- Note: No validations are performed to ensure that the resulting+-- 'FlagName' is valid+--+-- @since 2.0+mkFlagName :: String -> FlagName+mkFlagName = FlagName . toShortText++-- | 'mkFlagName'+--+-- @since 2.0+instance IsString FlagName where+ fromString = mkFlagName++-- | Convert 'FlagName' to 'String'+--+-- @since 2.0+unFlagName :: FlagName -> String+unFlagName (FlagName s) = fromShortText s++instance Binary FlagName++-- | A 'FlagAssignment' is a total or partial mapping of 'FlagName's to+-- 'Bool' flag values. It represents the flags chosen by the user or+-- discovered during configuration. For example @--flags=foo --flags=-bar@+-- becomes @[("foo", True), ("bar", False)]@+--+type FlagAssignment = [(FlagName, Bool)]++-- | String representation of a flag-value pair.+showFlagValue :: (FlagName, Bool) -> String+showFlagValue (f, True) = '+' : unFlagName f+showFlagValue (f, False) = '-' : unFlagName f++-- | Pretty-prints a flag assignment.+dispFlagAssignment :: FlagAssignment -> Disp.Doc+dispFlagAssignment = Disp.hsep . map (Disp.text . showFlagValue)++-- | Parses a flag assignment.+parseFlagAssignment :: Parse.ReadP r FlagAssignment+parseFlagAssignment = Parse.sepBy1 parseFlagValue Parse.skipSpaces1+ where+ parseFlagValue =+ (do Parse.optional (Parse.char '+')+ f <- parseFlagName+ return (f, True))+ +++ (do _ <- Parse.char '-'+ f <- parseFlagName+ return (f, False))+ parseFlagName = liftM (mkFlagName . lowercase) ident++ ident :: Parse.ReadP r String+ ident = Parse.munch1 identChar >>= \s -> check s >> return s+ where+ identChar c = isAlphaNum c || c == '_' || c == '-'+ check ('-':_) = Parse.pfail+ check _ = return ()++-- | A @ConfVar@ represents the variable type used.+data ConfVar = OS OS+ | Arch Arch+ | Flag FlagName+ | Impl CompilerFlavor VersionRange+ deriving (Eq, Show, Typeable, Data, Generic)++instance Binary ConfVar
+ Distribution/Types/HookedBuildInfo.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.HookedBuildInfo (+ HookedBuildInfo,+ emptyHookedBuildInfo,+ ) where++-- import Distribution.Compat.Prelude+import Distribution.Types.BuildInfo+import Distribution.Types.UnqualComponentName++-- | 'HookedBuildInfo' is mechanism that hooks can use to+-- override the 'BuildInfo's inside packages. One example+-- use-case (which is used in core libraries today) is as+-- a way of passing flags which are computed by a configure+-- script into Cabal. In this case, the autoconf build type adds+-- hooks to read in a textual 'HookedBuildInfo' format prior+-- to doing any operations.+--+-- Quite honestly, this mechanism is a massive hack since we shouldn't+-- be editing the 'PackageDescription' data structure (it's easy+-- to assume that this data structure shouldn't change and+-- run into bugs, see for example 1c20a6328579af9e37677d507e2e9836ef70ab9d).+-- But it's a bit convenient, because there isn't another data+-- structure that allows adding extra 'BuildInfo' style things.+--+-- In any case, a lot of care has to be taken to make sure the+-- 'HookedBuildInfo' is applied to the 'PackageDescription'. In+-- general this process occurs in "Distribution.Simple", which is+-- responsible for orchestrating the hooks mechanism. The+-- general strategy:+--+-- 1. We run the pre-hook, which produces a 'HookedBuildInfo'+-- (e.g., in the Autoconf case, it reads it out from a file).+-- 2. We sanity-check the hooked build info with+-- 'sanityCheckHookedBuildInfo'.+-- 3. We update our 'PackageDescription' (either freshly read+-- or cached from 'LocalBuildInfo') with 'updatePackageDescription'.+--+-- In principle, we are also supposed to update the copy of+-- the 'PackageDescription' stored in 'LocalBuildInfo'+-- at 'localPkgDescr'. Unfortunately, in practice, there+-- are lots of Custom setup scripts which fail to update+-- 'localPkgDescr' so you really shouldn't rely on it.+-- It's not DEPRECATED because there are legitimate uses+-- for it, but... yeah. Sharp knife. See+-- <https://github.com/haskell/cabal/issues/3606>+-- for more information on the issue.+--+-- It is not well-specified whether or not a 'HookedBuildInfo' applied+-- at configure time is persistent to the 'LocalBuildInfo'. The+-- fact that 'HookedBuildInfo' is passed to 'confHook' MIGHT SUGGEST+-- that the 'HookedBuildInfo' is applied at this time, but actually+-- since 9317b67e6122ab14e53f81b573bd0ecb388eca5a it has been ONLY used+-- to create a modified package description that we check for problems:+-- it is never actually saved to the LBI. Since 'HookedBuildInfo' is+-- applied monoidally to the existing build infos (and it is not an+-- idempotent monoid), it could break things to save it, since we+-- are obligated to apply any new 'HookedBuildInfo' and then we'd+-- get the effect twice. But this does mean we have to re-apply+-- it every time. Hey, it's more flexibility.+type HookedBuildInfo = (Maybe BuildInfo, [(UnqualComponentName, BuildInfo)])++emptyHookedBuildInfo :: HookedBuildInfo+emptyHookedBuildInfo = (Nothing, [])
+ Distribution/Types/IncludeRenaming.hs view
@@ -0,0 +1,59 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.IncludeRenaming (+ IncludeRenaming(..),+ defaultIncludeRenaming,+ isDefaultIncludeRenaming,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.ModuleRenaming++import Distribution.Text++import qualified Text.PrettyPrint as Disp+import Text.PrettyPrint ((<+>), text)+import Distribution.Compat.ReadP++-- ---------------------------------------------------------------------------+-- Module renaming++-- | A renaming on an include: (provides renaming, requires renaming)+data IncludeRenaming+ = IncludeRenaming {+ includeProvidesRn :: ModuleRenaming,+ includeRequiresRn :: ModuleRenaming+ }+ deriving (Show, Read, Eq, Ord, Typeable, Data, Generic)++instance Binary IncludeRenaming++-- | The 'defaultIncludeRenaming' applied when you only @build-depends@+-- on a package.+defaultIncludeRenaming :: IncludeRenaming+defaultIncludeRenaming = IncludeRenaming defaultRenaming defaultRenaming++-- | Is an 'IncludeRenaming' the default one?+isDefaultIncludeRenaming :: IncludeRenaming -> Bool+isDefaultIncludeRenaming (IncludeRenaming p r) = isDefaultRenaming p && isDefaultRenaming r++instance Text IncludeRenaming where+ disp (IncludeRenaming prov_rn req_rn) =+ disp prov_rn+ <+> (if isDefaultRenaming req_rn+ then Disp.empty+ else text "requires" <+> disp req_rn)+ parse = do+ prov_rn <- parse+ req_rn <- (string "requires" >> skipSpaces >> parse) <++ return defaultRenaming+ -- Requirements don't really care if they're mentioned+ -- or not (since you can't thin a requirement.) But+ -- we have a little hack in Configure to combine+ -- the provisions and requirements together before passing+ -- them to GHC, and so the most neutral choice for a requirement+ -- is for the "with" field to be False, so we correctly+ -- thin provisions.+ return (IncludeRenaming prov_rn req_rn)
+ Distribution/Types/LegacyExeDependency.hs view
@@ -0,0 +1,51 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.LegacyExeDependency+ ( LegacyExeDependency(..)+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Version ( VersionRange, anyVersion )++import qualified Distribution.Compat.ReadP as Parse+import Distribution.Compat.ReadP+import Distribution.Text++import Text.PrettyPrint ((<+>), text)++import Distribution.ParseUtils (parseMaybeQuoted)++-- | Describes a legacy `build-tools`-style dependency on an executable+--+-- It is "legacy" because we do not know what the build-tool referred to. It+-- could refer to a pkg-config executable (PkgconfigName), or an internal+-- executable (UnqualComponentName). Thus the name is stringly typed.+--+-- @since 2.0+data LegacyExeDependency = LegacyExeDependency+ String+ VersionRange+ deriving (Generic, Read, Show, Eq, Typeable, Data)++instance Binary LegacyExeDependency+instance NFData LegacyExeDependency where rnf = genericRnf++instance Text LegacyExeDependency where+ disp (LegacyExeDependency name ver) =+ text name <+> disp ver++ parse = do name <- parseMaybeQuoted parseBuildToolName+ Parse.skipSpaces+ ver <- parse <++ return anyVersion+ Parse.skipSpaces+ return $ LegacyExeDependency name ver+ where+ -- like parsePackageName but accepts symbols in components+ parseBuildToolName :: Parse.ReadP r String+ parseBuildToolName = do ns <- sepBy1 component (Parse.char '-')+ return (intercalate "-" ns)+ where component = do+ cs <- munch1 (\c -> isAlphaNum c || c == '+' || c == '_')+ if all isDigit cs then pfail else return cs
+ Distribution/Types/Library.hs view
@@ -0,0 +1,80 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.Library (+ Library(..),+ emptyLibrary,+ explicitLibModules,+ libModulesAutogen,+ libModules,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.BuildInfo+import Distribution.Types.ModuleReexport+import Distribution.Types.UnqualComponentName+import Distribution.ModuleName++data Library = Library {+ libName :: Maybe UnqualComponentName,+ exposedModules :: [ModuleName],+ reexportedModules :: [ModuleReexport],+ signatures:: [ModuleName], -- ^ What sigs need implementations?+ libExposed :: Bool, -- ^ Is the lib to be exposed by default?+ libBuildInfo :: BuildInfo+ }+ deriving (Generic, Show, Eq, Read, Typeable, Data)++instance Binary Library++instance Monoid Library where+ mempty = Library {+ libName = mempty,+ exposedModules = mempty,+ reexportedModules = mempty,+ signatures = mempty,+ libExposed = True,+ libBuildInfo = mempty+ }+ mappend = (<>)++instance Semigroup Library where+ a <> b = Library {+ libName = combine libName,+ exposedModules = combine exposedModules,+ reexportedModules = combine reexportedModules,+ signatures = combine signatures,+ libExposed = libExposed a && libExposed b, -- so False propagates+ libBuildInfo = combine libBuildInfo+ }+ where combine field = field a `mappend` field b++emptyLibrary :: Library+emptyLibrary = mempty++-- | Get all the module names from the library (exposed and internal modules)+-- which are explicitly listed in the package description which would+-- need to be compiled. (This does not include reexports, which+-- do not need to be compiled.) This may not include all modules for which+-- GHC generated interface files (i.e., implicit modules.)+explicitLibModules :: Library -> [ModuleName]+explicitLibModules lib = exposedModules lib+ ++ otherModules (libBuildInfo lib)+ ++ signatures lib++-- | Get all the auto generated module names from the library, exposed or not.+-- This are a subset of 'libModules'.+libModulesAutogen :: Library -> [ModuleName]+libModulesAutogen lib = autogenModules (libBuildInfo lib)++-- | Backwards-compatibility shim for 'explicitLibModules'. In most cases,+-- you actually want 'allLibModules', which returns all modules that will+-- actually be compiled, as opposed to those which are explicitly listed+-- in the package description ('explicitLibModules'); unfortunately, the+-- type signature for 'allLibModules' is incompatible since we need a+-- 'ComponentLocalBuildInfo'.+{-# DEPRECATED libModules "If you want all modules that are built with a library, use 'allLibModules'. Otherwise, use 'explicitLibModules' for ONLY the modules explicitly mentioned in the package description." #-}+libModules :: Library -> [ModuleName]+libModules = explicitLibModules
+ Distribution/Types/LocalBuildInfo.hs view
@@ -0,0 +1,332 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}++module Distribution.Types.LocalBuildInfo (+ -- * The type++ LocalBuildInfo(..),++ -- * Convenience accessors++ localComponentId,+ localUnitId,+ localCompatPackageKey,+ localPackage,++ -- * Build targets of the 'LocalBuildInfo'.++ componentNameCLBIs,++ -- NB: the primes mean that they take a 'PackageDescription'+ -- which may not match 'localPkgDescr' in 'LocalBuildInfo'.+ -- More logical types would drop this argument, but+ -- at the moment, this is the ONLY supported function, because+ -- 'localPkgDescr' is not guaranteed to match. At some point+ -- we will fix it and then we can use the (free) unprimed+ -- namespace for the correct commands.+ --+ -- See https://github.com/haskell/cabal/issues/3606 for more+ -- details.++ componentNameTargets',+ unitIdTarget',+ allTargetsInBuildOrder',+ withAllTargetsInBuildOrder',+ neededTargetsInBuildOrder',+ withNeededTargetsInBuildOrder',+ testCoverage,++ -- * Functions you SHOULD NOT USE (yet), but are defined here to+ -- prevent someone from accidentally defining them++ componentNameTargets,+ unitIdTarget,+ allTargetsInBuildOrder,+ withAllTargetsInBuildOrder,+ neededTargetsInBuildOrder,+ withNeededTargetsInBuildOrder,++ -- * Backwards compatibility.++ componentsConfigs,+ externalPackageDeps,+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.PackageDescription+import Distribution.Types.ComponentLocalBuildInfo+import Distribution.Types.ComponentRequestedSpec+import Distribution.Types.ComponentId+import Distribution.Types.MungedPackageId+import Distribution.Types.PackageId+import Distribution.Types.UnitId+import Distribution.Types.TargetInfo++import Distribution.Simple.InstallDirs hiding (absoluteInstallDirs,+ prefixRelativeInstallDirs,+ substPathTemplate, )+import Distribution.Simple.Program+import Distribution.PackageDescription+import Distribution.Simple.Compiler+import Distribution.Simple.PackageIndex+import Distribution.Simple.Setup+import Distribution.Text+import Distribution.System++import Distribution.Compat.Graph (Graph)+import qualified Distribution.Compat.Graph as Graph+import qualified Data.Map as Map++-- | Data cached after configuration step. See also+-- 'Distribution.Simple.Setup.ConfigFlags'.+data LocalBuildInfo = LocalBuildInfo {+ configFlags :: ConfigFlags,+ -- ^ Options passed to the configuration step.+ -- Needed to re-run configuration when .cabal is out of date+ flagAssignment :: FlagAssignment,+ -- ^ The final set of flags which were picked for this package+ componentEnabledSpec :: ComponentRequestedSpec,+ -- ^ What components were enabled during configuration, and why.+ extraConfigArgs :: [String],+ -- ^ Extra args on the command line for the configuration step.+ -- Needed to re-run configuration when .cabal is out of date+ installDirTemplates :: InstallDirTemplates,+ -- ^ The installation directories for the various different+ -- kinds of files+ --TODO: inplaceDirTemplates :: InstallDirs FilePath+ compiler :: Compiler,+ -- ^ The compiler we're building with+ hostPlatform :: Platform,+ -- ^ The platform we're building for+ buildDir :: FilePath,+ -- ^ Where to build the package.+ componentGraph :: Graph ComponentLocalBuildInfo,+ -- ^ All the components to build, ordered by topological+ -- sort, and with their INTERNAL dependencies over the+ -- intrapackage dependency graph.+ -- TODO: this is assumed to be short; otherwise we want+ -- some sort of ordered map.+ componentNameMap :: Map ComponentName [ComponentLocalBuildInfo],+ -- ^ A map from component name to all matching+ -- components. These coincide with 'componentGraph'+ installedPkgs :: InstalledPackageIndex,+ -- ^ All the info about the installed packages that the+ -- current package depends on (directly or indirectly).+ -- The copy saved on disk does NOT include internal+ -- dependencies (because we just don't have enough+ -- information at this point to have an+ -- 'InstalledPackageInfo' for an internal dep), but we+ -- will often update it with the internal dependencies;+ -- see for example 'Distribution.Simple.Build.build'.+ -- (This admonition doesn't apply for per-component builds.)+ pkgDescrFile :: Maybe FilePath,+ -- ^ the filename containing the .cabal file, if available+ localPkgDescr :: PackageDescription,+ -- ^ WARNING WARNING WARNING Be VERY careful about using+ -- this function; we haven't deprecated it but using it+ -- could introduce subtle bugs related to+ -- 'HookedBuildInfo'.+ --+ -- In principle, this is supposed to contain the+ -- resolved package description, that does not contain+ -- any conditionals. However, it MAY NOT contain+ -- the description wtih a 'HookedBuildInfo' applied+ -- to it; see 'HookedBuildInfo' for the whole sordid saga.+ -- As much as possible, Cabal library should avoid using+ -- this parameter.+ withPrograms :: ProgramDb, -- ^Location and args for all programs+ withPackageDB :: PackageDBStack, -- ^What package database to use, global\/user+ withVanillaLib:: Bool, -- ^Whether to build normal libs.+ withProfLib :: Bool, -- ^Whether to build profiling versions of libs.+ withSharedLib :: Bool, -- ^Whether to build shared versions of libs.+ withDynExe :: Bool, -- ^Whether to link executables dynamically+ withProfExe :: Bool, -- ^Whether to build executables for profiling.+ withProfLibDetail :: ProfDetailLevel, -- ^Level of automatic profile detail.+ withProfExeDetail :: ProfDetailLevel, -- ^Level of automatic profile detail.+ withOptimization :: OptimisationLevel, -- ^Whether to build with optimization (if available).+ withDebugInfo :: DebugInfoLevel, -- ^Whether to emit debug info (if available).+ withGHCiLib :: Bool, -- ^Whether to build libs suitable for use with GHCi.+ splitObjs :: Bool, -- ^Use -split-objs with GHC, if available+ stripExes :: Bool, -- ^Whether to strip executables during install+ stripLibs :: Bool, -- ^Whether to strip libraries during install+ exeCoverage :: Bool, -- ^Whether to enable executable program coverage+ libCoverage :: Bool, -- ^Whether to enable library program coverage+ progPrefix :: PathTemplate, -- ^Prefix to be prepended to installed executables+ progSuffix :: PathTemplate, -- ^Suffix to be appended to installed executables+ relocatable :: Bool -- ^Whether to build a relocatable package+ } deriving (Generic, Read, Show)++instance Binary LocalBuildInfo++-------------------------------------------------------------------------------+-- Accessor functions++-- TODO: Get rid of these functions, as much as possible. They are+-- a bit useful in some cases, but you should be very careful!++-- | Extract the 'ComponentId' from the public library component of a+-- 'LocalBuildInfo' if it exists, or make a fake component ID based+-- on the package ID.+localComponentId :: LocalBuildInfo -> ComponentId+localComponentId lbi =+ case componentNameCLBIs lbi CLibName of+ [LibComponentLocalBuildInfo { componentComponentId = cid }]+ -> cid+ _ -> mkComponentId (display (localPackage lbi))++-- | Extract the 'PackageIdentifier' of a 'LocalBuildInfo'.+-- This is a "safe" use of 'localPkgDescr'+localPackage :: LocalBuildInfo -> PackageId+localPackage lbi = package (localPkgDescr lbi)++-- | Extract the 'UnitId' from the library component of a+-- 'LocalBuildInfo' if it exists, or make a fake unit ID based on+-- the package ID.+localUnitId :: LocalBuildInfo -> UnitId+localUnitId lbi =+ case componentNameCLBIs lbi CLibName of+ [LibComponentLocalBuildInfo { componentUnitId = uid }]+ -> uid+ _ -> mkLegacyUnitId $ localPackage lbi++-- | Extract the compatibility package key from the public library component of a+-- 'LocalBuildInfo' if it exists, or make a fake package key based+-- on the package ID.+localCompatPackageKey :: LocalBuildInfo -> String+localCompatPackageKey lbi =+ case componentNameCLBIs lbi CLibName of+ [LibComponentLocalBuildInfo { componentCompatPackageKey = pk }]+ -> pk+ _ -> display (localPackage lbi)++-- | Convenience function to generate a default 'TargetInfo' from a+-- 'ComponentLocalBuildInfo'. The idea is to call this once, and then+-- use 'TargetInfo' everywhere else. Private to this module.+mkTargetInfo :: PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> TargetInfo+mkTargetInfo pkg_descr _lbi clbi =+ TargetInfo {+ targetCLBI = clbi,+ -- NB: @pkg_descr@, not @localPkgDescr lbi@!+ targetComponent = getComponent pkg_descr+ (componentLocalName clbi)+ }++-- | Return all 'TargetInfo's associated with 'ComponentName'.+-- In the presence of Backpack there may be more than one!+-- Has a prime because it takes a 'PackageDescription' argument+-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.+componentNameTargets' :: PackageDescription -> LocalBuildInfo -> ComponentName -> [TargetInfo]+componentNameTargets' pkg_descr lbi cname =+ case Map.lookup cname (componentNameMap lbi) of+ Just clbis -> map (mkTargetInfo pkg_descr lbi) clbis+ Nothing -> []++unitIdTarget' :: PackageDescription -> LocalBuildInfo -> UnitId -> Maybe TargetInfo+unitIdTarget' pkg_descr lbi uid =+ case Graph.lookup uid (componentGraph lbi) of+ Just clbi -> Just (mkTargetInfo pkg_descr lbi clbi)+ Nothing -> Nothing++-- | Return all 'ComponentLocalBuildInfo's associated with 'ComponentName'.+-- In the presence of Backpack there may be more than one!+componentNameCLBIs :: LocalBuildInfo -> ComponentName -> [ComponentLocalBuildInfo]+componentNameCLBIs lbi cname =+ case Map.lookup cname (componentNameMap lbi) of+ Just clbis -> clbis+ Nothing -> []++-- TODO: Maybe cache topsort (Graph can do this)++-- | Return the list of default 'TargetInfo's associated with a+-- configured package, in the order they need to be built.+-- Has a prime because it takes a 'PackageDescription' argument+-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.+allTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [TargetInfo]+allTargetsInBuildOrder' pkg_descr lbi+ = map (mkTargetInfo pkg_descr lbi) (Graph.revTopSort (componentGraph lbi))++-- | Execute @f@ for every 'TargetInfo' in the package, respecting the+-- build dependency order. (TODO: We should use Shake!)+-- Has a prime because it takes a 'PackageDescription' argument+-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.+withAllTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> (TargetInfo -> IO ()) -> IO ()+withAllTargetsInBuildOrder' pkg_descr lbi f+ = sequence_ [ f target | target <- allTargetsInBuildOrder' pkg_descr lbi ]++-- | Return the list of all targets needed to build the @uids@, in+-- the order they need to be built.+-- Has a prime because it takes a 'PackageDescription' argument+-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.+neededTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [UnitId] -> [TargetInfo]+neededTargetsInBuildOrder' pkg_descr lbi uids =+ case Graph.closure (componentGraph lbi) uids of+ Nothing -> error $ "localBuildPlan: missing uids " ++ intercalate ", " (map display uids)+ Just clos -> map (mkTargetInfo pkg_descr lbi) (Graph.revTopSort (Graph.fromDistinctList clos))++-- | Execute @f@ for every 'TargetInfo' needed to build @uid@s, respecting+-- the build dependency order.+-- Has a prime because it takes a 'PackageDescription' argument+-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.+withNeededTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [UnitId] -> (TargetInfo -> IO ()) -> IO ()+withNeededTargetsInBuildOrder' pkg_descr lbi uids f+ = sequence_ [ f target | target <- neededTargetsInBuildOrder' pkg_descr lbi uids ]++-- | Is coverage enabled for test suites? In practice, this requires library+-- and executable profiling to be enabled.+testCoverage :: LocalBuildInfo -> Bool+testCoverage lbi = exeCoverage lbi && libCoverage lbi++-------------------------------------------------------------------------------+-- Stub functions to prevent someone from accidentally defining them++{-# WARNING componentNameTargets, unitIdTarget, allTargetsInBuildOrder, withAllTargetsInBuildOrder, neededTargetsInBuildOrder, withNeededTargetsInBuildOrder "By using this function, you may be introducing a bug where you retrieve a 'Component' which does not have 'HookedBuildInfo' applied to it. See the documentation for 'HookedBuildInfo' for an explanation of the issue. If you have a 'PakcageDescription' handy (NOT from the 'LocalBuildInfo'), try using the primed version of the function, which takes it as an extra argument." #-}++componentNameTargets :: LocalBuildInfo -> ComponentName -> [TargetInfo]+componentNameTargets lbi = componentNameTargets' (localPkgDescr lbi) lbi++unitIdTarget :: LocalBuildInfo -> UnitId -> Maybe TargetInfo+unitIdTarget lbi = unitIdTarget' (localPkgDescr lbi) lbi++allTargetsInBuildOrder :: LocalBuildInfo -> [TargetInfo]+allTargetsInBuildOrder lbi = allTargetsInBuildOrder' (localPkgDescr lbi) lbi++withAllTargetsInBuildOrder :: LocalBuildInfo -> (TargetInfo -> IO ()) -> IO ()+withAllTargetsInBuildOrder lbi = withAllTargetsInBuildOrder' (localPkgDescr lbi) lbi++neededTargetsInBuildOrder :: LocalBuildInfo -> [UnitId] -> [TargetInfo]+neededTargetsInBuildOrder lbi = neededTargetsInBuildOrder' (localPkgDescr lbi) lbi++withNeededTargetsInBuildOrder :: LocalBuildInfo -> [UnitId] -> (TargetInfo -> IO ()) -> IO ()+withNeededTargetsInBuildOrder lbi = withNeededTargetsInBuildOrder' (localPkgDescr lbi) lbi++-------------------------------------------------------------------------------+-- Backwards compatibility++{-# DEPRECATED componentsConfigs "Use 'componentGraph' instead; you can get a list of 'ComponentLocalBuildInfo' with 'Distribution.Compat.Graph.toList'. There's not a good way to get the list of 'ComponentName's the 'ComponentLocalBuildInfo' depends on because this query doesn't make sense; the graph is indexed by 'UnitId' not 'ComponentName'. Given a 'UnitId' you can lookup the 'ComponentLocalBuildInfo' ('getCLBI') and then get the 'ComponentName' ('componentLocalName]). To be removed in Cabal 2.2" #-}+componentsConfigs :: LocalBuildInfo -> [(ComponentName, ComponentLocalBuildInfo, [ComponentName])]+componentsConfigs lbi =+ [ (componentLocalName clbi,+ clbi,+ mapMaybe (fmap componentLocalName . flip Graph.lookup g)+ (componentInternalDeps clbi))+ | clbi <- Graph.toList g ]+ where+ g = componentGraph lbi++-- | External package dependencies for the package as a whole. This is the+-- union of the individual 'componentPackageDeps', less any internal deps.+{-# DEPRECATED externalPackageDeps "You almost certainly don't want this function, which agglomerates the dependencies of ALL enabled components. If you're using this to write out information on your dependencies, read off the dependencies directly from the actual component in question. To be removed in Cabal 2.2" #-}+externalPackageDeps :: LocalBuildInfo -> [(UnitId, MungedPackageId)]+externalPackageDeps lbi =+ -- TODO: what about non-buildable components?+ nub [ (ipkgid, pkgid)+ | clbi <- Graph.toList (componentGraph lbi)+ , (ipkgid, pkgid) <- componentPackageDeps clbi+ , not (internal ipkgid) ]+ where+ -- True if this dependency is an internal one (depends on the library+ -- defined in the same package).+ internal ipkgid = any ((==ipkgid) . componentUnitId) (Graph.toList (componentGraph lbi))
+ Distribution/Types/Mixin.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.Mixin (+ Mixin(..),+) where++import Prelude ()+import Distribution.Compat.Prelude++import Text.PrettyPrint ((<+>))+import Distribution.Compat.ReadP+import Distribution.Text++import Distribution.Types.PackageName+import Distribution.Types.IncludeRenaming++data Mixin = Mixin { mixinPackageName :: PackageName+ , mixinIncludeRenaming :: IncludeRenaming }+ deriving (Show, Read, Eq, Ord, Typeable, Data, Generic)++instance Binary Mixin++instance Text Mixin where+ disp (Mixin pkg_name incl) =+ disp pkg_name <+> disp incl++ parse = do+ pkg_name <- parse+ skipSpaces+ incl <- parse+ return (Mixin pkg_name incl)
+ Distribution/Types/Module.hs view
@@ -0,0 +1,42 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}++module Distribution.Types.Module+ ( Module(..)+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import qualified Distribution.Compat.ReadP as Parse+import qualified Text.PrettyPrint as Disp+import Distribution.Text+import Distribution.Types.UnitId+import Distribution.ModuleName++-- | A module identity uniquely identifies a Haskell module by+-- qualifying a 'ModuleName' with the 'UnitId' which defined+-- it. This type distinguishes between two packages+-- which provide a module with the same name, or a module+-- from the same package compiled with different dependencies.+-- There are a few cases where Cabal needs to know about+-- module identities, e.g., when writing out reexported modules in+-- the 'InstalledPackageInfo'.+data Module =+ Module DefUnitId ModuleName+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)++instance Binary Module++instance Text Module where+ disp (Module uid mod_name) =+ disp uid <<>> Disp.text ":" <<>> disp mod_name+ parse = do+ uid <- parse+ _ <- Parse.char ':'+ mod_name <- parse+ return (Module uid mod_name)++instance NFData Module where+ rnf (Module uid mod_name) = rnf uid `seq` rnf mod_name
+ Distribution/Types/ModuleReexport.hs view
@@ -0,0 +1,49 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.ModuleReexport (+ ModuleReexport(..)+) where++import Prelude ()+import Distribution.Compat.Prelude++import qualified Distribution.Compat.ReadP as Parse+import Distribution.ModuleName+import Distribution.Text+import Distribution.Types.PackageName++import Text.PrettyPrint as Disp++-- -----------------------------------------------------------------------------+-- Module re-exports++data ModuleReexport = ModuleReexport {+ moduleReexportOriginalPackage :: Maybe PackageName,+ moduleReexportOriginalName :: ModuleName,+ moduleReexportName :: ModuleName+ }+ deriving (Eq, Generic, Read, Show, Typeable, Data)++instance Binary ModuleReexport++instance Text ModuleReexport where+ disp (ModuleReexport mpkgname origname newname) =+ maybe Disp.empty (\pkgname -> disp pkgname <<>> Disp.char ':') mpkgname+ <<>> disp origname+ <+> if newname == origname+ then Disp.empty+ else Disp.text "as" <+> disp newname++ parse = do+ mpkgname <- Parse.option Nothing $ do+ pkgname <- parse+ _ <- Parse.char ':'+ return (Just pkgname)+ origname <- parse+ newname <- Parse.option origname $ do+ Parse.skipSpaces+ _ <- Parse.string "as"+ Parse.skipSpaces+ parse+ return (ModuleReexport mpkgname origname newname)
+ Distribution/Types/ModuleRenaming.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.ModuleRenaming (+ ModuleRenaming(..),+ defaultRenaming,+ isDefaultRenaming,+) where++import Prelude ()+import Distribution.Compat.Prelude hiding (empty)++import qualified Distribution.Compat.ReadP as Parse+import Distribution.Compat.ReadP ((<++))+import Distribution.ModuleName+import Distribution.Text++import Text.PrettyPrint++-- | Renaming applied to the modules provided by a package.+-- The boolean indicates whether or not to also include all of the+-- original names of modules. Thus, @ModuleRenaming False []@ is+-- "don't expose any modules, and @ModuleRenaming True [("Data.Bool", "Bool")]@+-- is, "expose all modules, but also expose @Data.Bool@ as @Bool@".+-- If a renaming is omitted you get the 'DefaultRenaming'.+--+-- (NB: This is a list not a map so that we can preserve order.)+--+data ModuleRenaming+ -- | A module renaming/thinning; e.g., @(A as B, C as C)@+ -- brings @B@ and @C@ into scope.+ = ModuleRenaming [(ModuleName, ModuleName)]+ -- | The default renaming, bringing all exported modules+ -- into scope.+ | DefaultRenaming+ -- | Hiding renaming, e.g., @hiding (A, B)@, bringing all+ -- exported modules into scope except the hidden ones.+ | HidingRenaming [ModuleName]+ deriving (Show, Read, Eq, Ord, Typeable, Data, Generic)++-- | The default renaming, if something is specified in @build-depends@+-- only.+defaultRenaming :: ModuleRenaming+defaultRenaming = DefaultRenaming++-- | Tests if its the default renaming; we can use a more compact syntax+-- in 'Distribution.Types.IncludeRenaming.IncludeRenaming' in this case.+isDefaultRenaming :: ModuleRenaming -> Bool+isDefaultRenaming DefaultRenaming = True+isDefaultRenaming _ = False++instance Binary ModuleRenaming where++-- NB: parentheses are mandatory, because later we may extend this syntax+-- to allow "hiding (A, B)" or other modifier words.+instance Text ModuleRenaming where+ disp DefaultRenaming = empty+ disp (HidingRenaming hides)+ = text "hiding" <+> parens (hsep (punctuate comma (map disp hides)))+ disp (ModuleRenaming rns)+ = parens . hsep $ punctuate comma (map dispEntry rns)+ where dispEntry (orig, new)+ | orig == new = disp orig+ | otherwise = disp orig <+> text "as" <+> disp new++ parse = do fmap ModuleRenaming parseRns+ <++ parseHidingRenaming+ <++ return DefaultRenaming+ where parseRns = do+ rns <- Parse.between (Parse.char '(') (Parse.char ')') parseList+ Parse.skipSpaces+ return rns+ parseHidingRenaming = do+ _ <- Parse.string "hiding"+ Parse.skipSpaces+ hides <- Parse.between (Parse.char '(') (Parse.char ')')+ (Parse.sepBy parse (Parse.char ',' >> Parse.skipSpaces))+ return (HidingRenaming hides)+ parseList =+ Parse.sepBy parseEntry (Parse.char ',' >> Parse.skipSpaces)+ parseEntry :: Parse.ReadP r (ModuleName, ModuleName)+ parseEntry = do+ orig <- parse+ Parse.skipSpaces+ (do _ <- Parse.string "as"+ Parse.skipSpaces+ new <- parse+ Parse.skipSpaces+ return (orig, new)+ <+++ return (orig, orig))
+ Distribution/Types/MungedPackageId.hs view
@@ -0,0 +1,55 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.MungedPackageId+ ( MungedPackageId(..)+ , computeCompatPackageId+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Version+ ( Version, nullVersion )++import qualified Distribution.Compat.ReadP as Parse+import qualified Text.PrettyPrint as Disp+import Distribution.Compat.ReadP+import Distribution.Text+import Distribution.Types.PackageId+import Distribution.Types.UnqualComponentName+import Distribution.Types.MungedPackageName++-- | A simple pair of a 'MungedPackageName' and 'Version'. 'MungedPackageName' is to+-- 'MungedPackageId' as 'PackageName' is to 'PackageId'. See 'MungedPackageName' for more+-- info.+data MungedPackageId+ = MungedPackageId {+ -- | The combined package and component name. see documentation for+ -- 'MungedPackageName'.+ mungedName :: MungedPackageName,+ -- | The version of this package / component, eg 1.2+ mungedVersion :: Version+ }+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)++instance Binary MungedPackageId++instance Text MungedPackageId where+ disp (MungedPackageId n v)+ | v == nullVersion = disp n -- if no version, don't show version.+ | otherwise = disp n <<>> Disp.char '-' <<>> disp v++ parse = do+ n <- parse+ v <- (Parse.char '-' >> parse) <++ return nullVersion+ return (MungedPackageId n v)++instance NFData MungedPackageId where+ rnf (MungedPackageId name version) = rnf name `seq` rnf version++-- | See docs for 'Distribution.Types.MungedPackageName.computeCompatPackageId'. this+-- is a thin wrapper around that.+computeCompatPackageId :: PackageId -> Maybe UnqualComponentName -> MungedPackageId+computeCompatPackageId (PackageIdentifier pn vr) mb_uqn = MungedPackageId pn' vr+ where pn' = computeCompatPackageName pn mb_uqn
+ Distribution/Types/MungedPackageName.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.MungedPackageName+ ( MungedPackageName, unMungedPackageName, mkMungedPackageName+ , computeCompatPackageName+ , decodeCompatPackageName+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Utils.ShortText++import qualified Text.PrettyPrint as Disp+import qualified Distribution.Compat.ReadP as Parse+import Distribution.ParseUtils+import Distribution.Text+import Distribution.Types.PackageName+import Distribution.Types.UnqualComponentName++-- | A combination of a package and component name used in various legacy+-- interfaces, chiefly bundled with a version as 'MungedPackageId'. It's generally+-- better to use a 'UnitId' to opaquely refer to some compilation/packing unit,+-- but that doesn't always work, e.g. where a "name" is needed, in which case+-- this can be used as a fallback.+--+-- Use 'mkMungedPackageName' and 'unMungedPackageName' to convert from/to a 'String'.+--+-- @since 2.0+newtype MungedPackageName = MungedPackageName ShortText+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)++-- | Convert 'MungedPackageName' to 'String'+unMungedPackageName :: MungedPackageName -> String+unMungedPackageName (MungedPackageName s) = fromShortText s++-- | Construct a 'MungedPackageName' from a 'String'+--+-- 'mkMungedPackageName' is the inverse to 'unMungedPackageName'+--+-- Note: No validations are performed to ensure that the resulting+-- 'MungedPackageName' is valid+--+-- @since 2.0+mkMungedPackageName :: String -> MungedPackageName+mkMungedPackageName = MungedPackageName . toShortText++-- | 'mkMungedPackageName'+--+-- @since 2.0+instance IsString MungedPackageName where+ fromString = mkMungedPackageName++instance Binary MungedPackageName++instance Text MungedPackageName where+ disp = Disp.text . unMungedPackageName+ parse = mkMungedPackageName <$> parsePackageName++instance NFData MungedPackageName where+ rnf (MungedPackageName pkg) = rnf pkg++-- | Computes the package name for a library. If this is the public+-- library, it will just be the original package name; otherwise,+-- it will be a munged package name recording the original package+-- name as well as the name of the internal library.+--+-- A lot of tooling in the Haskell ecosystem assumes that if something+-- is installed to the package database with the package name 'foo',+-- then it actually is an entry for the (only public) library in package+-- 'foo'. With internal packages, this is not necessarily true:+-- a public library as well as arbitrarily many internal libraries may+-- come from the same package. To prevent tools from getting confused+-- in this case, the package name of these internal libraries is munged+-- so that they do not conflict the public library proper. A particular+-- case where this matters is ghc-pkg: if we don't munge the package+-- name, the inplace registration will OVERRIDE a different internal+-- library.+--+-- We munge into a reserved namespace, "z-", and encode both the+-- component name and the package name of an internal library using the+-- following format:+--+-- compat-pkg-name ::= "z-" package-name "-z-" library-name+--+-- where package-name and library-name have "-" ( "z" + ) "-"+-- segments encoded by adding an extra "z".+--+-- When we have the public library, the compat-pkg-name is just the+-- package-name, no surprises there!+--+computeCompatPackageName :: PackageName -> Maybe UnqualComponentName -> MungedPackageName+-- First handle the cases where we can just use the original 'PackageName'.+-- This is for the PRIMARY library, and it is non-Backpack, or the+-- indefinite package for us.+computeCompatPackageName pkg_name Nothing+ = mkMungedPackageName $ unPackageName pkg_name+computeCompatPackageName pkg_name (Just uqn)+ = mkMungedPackageName $+ "z-" ++ zdashcode (unPackageName pkg_name) +++ "-z-" ++ zdashcode (unUnqualComponentName uqn)++decodeCompatPackageName :: MungedPackageName -> (PackageName, Maybe UnqualComponentName)+decodeCompatPackageName m =+ case unMungedPackageName m of+ 'z':'-':rest | [([pn, cn], "")] <- Parse.readP_to_S parseZDashCode rest+ -> (mkPackageName pn, Just (mkUnqualComponentName cn))+ s -> (mkPackageName s, Nothing)++zdashcode :: String -> String+zdashcode s = go s (Nothing :: Maybe Int) []+ where go [] _ r = reverse r+ go ('-':z) (Just n) r | n > 0 = go z (Just 0) ('-':'z':r)+ go ('-':z) _ r = go z (Just 0) ('-':r)+ go ('z':z) (Just n) r = go z (Just (n+1)) ('z':r)+ go (c:z) _ r = go z Nothing (c:r)++parseZDashCode :: Parse.ReadP r [String]+parseZDashCode = do+ ns <- Parse.sepBy1 (Parse.many1 (Parse.satisfy (/= '-'))) (Parse.char '-')+ Parse.eof+ return (go ns)+ where+ go ns = case break (=="z") ns of+ (_, []) -> [paste ns]+ (as, "z":bs) -> paste as : go bs+ _ -> error "parseZDashCode: go"+ unZ :: String -> String+ unZ "" = error "parseZDashCode: unZ"+ unZ r@('z':zs) | all (=='z') zs = zs+ | otherwise = r+ unZ r = r+ paste :: [String] -> String+ paste = intercalate "-" . map unZ
+ Distribution/Types/PackageDescription.hs view
@@ -0,0 +1,415 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}++-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Types.PackageDescription+-- Copyright : Isaac Jones 2003-2005+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+-- This defines the data structure for the @.cabal@ file format. There are+-- several parts to this structure. It has top level info and then 'Library',+-- 'Executable', 'TestSuite', and 'Benchmark' sections each of which have+-- associated 'BuildInfo' data that's used to build the library, exe, test, or+-- benchmark. To further complicate things there is both a 'PackageDescription'+-- and a 'GenericPackageDescription'. This distinction relates to cabal+-- configurations. When we initially read a @.cabal@ file we get a+-- 'GenericPackageDescription' which has all the conditional sections.+-- Before actually building a package we have to decide+-- on each conditional. Once we've done that we get a 'PackageDescription'.+-- It was done this way initially to avoid breaking too much stuff when the+-- feature was introduced. It could probably do with being rationalised at some+-- point to make it simpler.++module Distribution.Types.PackageDescription (+ PackageDescription(..),+ specVersion,+ descCabalVersion,+ emptyPackageDescription,+ hasPublicLib,+ hasLibs,+ allLibraries,+ withLib,+ hasExes,+ withExe,+ hasTests,+ withTest,+ hasBenchmarks,+ withBenchmark,+ hasForeignLibs,+ withForeignLib,+ allBuildInfo,+ enabledBuildInfos,+ updatePackageDescription,+ pkgComponents,+ pkgBuildableComponents,+ enabledComponents,+ lookupComponent,+ getComponent,+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.Library+import Distribution.Types.TestSuite+import Distribution.Types.Executable+import Distribution.Types.Benchmark+import Distribution.Types.ForeignLib++import Distribution.Types.Component+import Distribution.Types.ComponentRequestedSpec+import Distribution.Types.Dependency+import Distribution.Types.PackageId+import Distribution.Types.ComponentName+import Distribution.Types.PackageName+import Distribution.Types.UnqualComponentName+import Distribution.Types.SetupBuildInfo+import Distribution.Types.BuildInfo+import Distribution.Types.BuildType+import Distribution.Types.SourceRepo+import Distribution.Types.HookedBuildInfo++import Distribution.Package+import Distribution.Version+import Distribution.License+import Distribution.Compiler++-- -----------------------------------------------------------------------------+-- The PackageDescription type++-- | This data type is the internal representation of the file @pkg.cabal@.+-- It contains two kinds of information about the package: information+-- which is needed for all packages, such as the package name and version, and+-- information which is needed for the simple build system only, such as+-- the compiler options and library name.+--+data PackageDescription+ = PackageDescription {+ -- the following are required by all packages:+ package :: PackageIdentifier,+ license :: License,+ licenseFiles :: [FilePath],+ copyright :: String,+ maintainer :: String,+ author :: String,+ stability :: String,+ testedWith :: [(CompilerFlavor,VersionRange)],+ homepage :: String,+ pkgUrl :: String,+ bugReports :: String,+ sourceRepos :: [SourceRepo],+ synopsis :: String, -- ^A one-line summary of this package+ description :: String, -- ^A more verbose description of this package+ category :: String,+ customFieldsPD :: [(String,String)], -- ^Custom fields starting+ -- with x-, stored in a+ -- simple assoc-list.++ -- | YOU PROBABLY DON'T WANT TO USE THIS FIELD. This field is+ -- special! Depending on how far along processing the+ -- PackageDescription we are, the contents of this field are+ -- either nonsense, or the collected dependencies of *all* the+ -- components in this package. buildDepends is initialized by+ -- 'finalizePD' and 'flattenPackageDescription';+ -- prior to that, dependency info is stored in the 'CondTree'+ -- built around a 'GenericPackageDescription'. When this+ -- resolution is done, dependency info is written to the inner+ -- 'BuildInfo' and this field. This is all horrible, and #2066+ -- tracks progress to get rid of this field.+ buildDepends :: [Dependency],+ -- | The version of the Cabal spec that this package description uses.+ -- For historical reasons this is specified with a version range but+ -- only ranges of the form @>= v@ make sense. We are in the process of+ -- transitioning to specifying just a single version, not a range.+ specVersionRaw :: Either Version VersionRange,+ buildType :: Maybe BuildType,+ setupBuildInfo :: Maybe SetupBuildInfo,+ -- components+ library :: Maybe Library,+ subLibraries :: [Library],+ executables :: [Executable],+ foreignLibs :: [ForeignLib],+ testSuites :: [TestSuite],+ benchmarks :: [Benchmark],+ dataFiles :: [FilePath],+ dataDir :: FilePath,+ extraSrcFiles :: [FilePath],+ extraTmpFiles :: [FilePath],+ extraDocFiles :: [FilePath]+ }+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Binary PackageDescription++instance Package PackageDescription where+ packageId = package++-- | The version of the Cabal spec that this package should be interpreted+-- against.+--+-- Historically we used a version range but we are switching to using a single+-- version. Currently we accept either. This function converts into a single+-- version by ignoring upper bounds in the version range.+--+specVersion :: PackageDescription -> Version+specVersion pkg = case specVersionRaw pkg of+ Left version -> version+ Right versionRange -> case asVersionIntervals versionRange of+ [] -> mkVersion [0]+ ((LowerBound version _, _):_) -> version++-- | The range of versions of the Cabal tools that this package is intended to+-- work with.+--+-- This function is deprecated and should not be used for new purposes, only to+-- support old packages that rely on the old interpretation.+--+descCabalVersion :: PackageDescription -> VersionRange+descCabalVersion pkg = case specVersionRaw pkg of+ Left version -> orLaterVersion version+ Right versionRange -> versionRange+{-# DEPRECATED descCabalVersion "Use specVersion instead" #-}++emptyPackageDescription :: PackageDescription+emptyPackageDescription+ = PackageDescription {+ package = PackageIdentifier (mkPackageName "")+ nullVersion,+ license = UnspecifiedLicense,+ licenseFiles = [],+ specVersionRaw = Right anyVersion,+ buildType = Nothing,+ copyright = "",+ maintainer = "",+ author = "",+ stability = "",+ testedWith = [],+ buildDepends = [],+ homepage = "",+ pkgUrl = "",+ bugReports = "",+ sourceRepos = [],+ synopsis = "",+ description = "",+ category = "",+ customFieldsPD = [],+ setupBuildInfo = Nothing,+ library = Nothing,+ subLibraries = [],+ foreignLibs = [],+ executables = [],+ testSuites = [],+ benchmarks = [],+ dataFiles = [],+ dataDir = "",+ extraSrcFiles = [],+ extraTmpFiles = [],+ extraDocFiles = []+ }++-- ---------------------------------------------------------------------------+-- The Library type++-- | Does this package have a buildable PUBLIC library?+hasPublicLib :: PackageDescription -> Bool+hasPublicLib p =+ case library p of+ Just lib -> buildable (libBuildInfo lib)+ Nothing -> False++-- | Does this package have any libraries?+hasLibs :: PackageDescription -> Bool+hasLibs p = any (buildable . libBuildInfo) (allLibraries p)++allLibraries :: PackageDescription -> [Library]+allLibraries p = maybeToList (library p) ++ subLibraries p++-- | If the package description has a buildable library section,+-- call the given function with the library build info as argument.+-- You probably want 'withLibLBI' if you have a 'LocalBuildInfo',+-- see the note in+-- "Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components"+-- for more information.+withLib :: PackageDescription -> (Library -> IO ()) -> IO ()+withLib pkg_descr f =+ sequence_ [f lib | lib <- allLibraries pkg_descr, buildable (libBuildInfo lib)]++-- ---------------------------------------------------------------------------+-- The Executable type++-- |does this package have any executables?+hasExes :: PackageDescription -> Bool+hasExes p = any (buildable . buildInfo) (executables p)++-- | Perform the action on each buildable 'Executable' in the package+-- description. You probably want 'withExeLBI' if you have a+-- 'LocalBuildInfo', see the note in+-- "Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components"+-- for more information.+withExe :: PackageDescription -> (Executable -> IO ()) -> IO ()+withExe pkg_descr f =+ sequence_ [f exe | exe <- executables pkg_descr, buildable (buildInfo exe)]++-- ---------------------------------------------------------------------------+-- The TestSuite type++-- | Does this package have any test suites?+hasTests :: PackageDescription -> Bool+hasTests = any (buildable . testBuildInfo) . testSuites++-- | Perform an action on each buildable 'TestSuite' in a package.+-- You probably want 'withTestLBI' if you have a 'LocalBuildInfo', see the note in+-- "Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components"+-- for more information.++withTest :: PackageDescription -> (TestSuite -> IO ()) -> IO ()+withTest pkg_descr f =+ sequence_ [ f test | test <- testSuites pkg_descr, buildable (testBuildInfo test) ]++-- ---------------------------------------------------------------------------+-- The Benchmark type++-- | Does this package have any benchmarks?+hasBenchmarks :: PackageDescription -> Bool+hasBenchmarks = any (buildable . benchmarkBuildInfo) . benchmarks++-- | Perform an action on each buildable 'Benchmark' in a package.+-- You probably want 'withBenchLBI' if you have a 'LocalBuildInfo', see the note in+-- "Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components"+-- for more information.++withBenchmark :: PackageDescription -> (Benchmark -> IO ()) -> IO ()+withBenchmark pkg_descr f =+ sequence_ [f bench | bench <- benchmarks pkg_descr, buildable (benchmarkBuildInfo bench)]++-- ---------------------------------------------------------------------------+-- The ForeignLib type++-- | Does this package have any foreign libraries?+hasForeignLibs :: PackageDescription -> Bool+hasForeignLibs p = any (buildable . foreignLibBuildInfo) (foreignLibs p)++-- | Perform the action on each buildable 'ForeignLib' in the package+-- description.+withForeignLib :: PackageDescription -> (ForeignLib -> IO ()) -> IO ()+withForeignLib pkg_descr f =+ sequence_ [ f flib+ | flib <- foreignLibs pkg_descr+ , buildable (foreignLibBuildInfo flib)+ ]++-- ---------------------------------------------------------------------------+-- The BuildInfo type++-- | The 'BuildInfo' for the library (if there is one and it's buildable), and+-- all buildable executables, test suites and benchmarks. Useful for gathering+-- dependencies.+allBuildInfo :: PackageDescription -> [BuildInfo]+allBuildInfo pkg_descr = [ bi | lib <- allLibraries pkg_descr+ , let bi = libBuildInfo lib+ , buildable bi ]+ ++ [ bi | exe <- executables pkg_descr+ , let bi = buildInfo exe+ , buildable bi ]+ ++ [ bi | tst <- testSuites pkg_descr+ , let bi = testBuildInfo tst+ , buildable bi ]+ ++ [ bi | tst <- benchmarks pkg_descr+ , let bi = benchmarkBuildInfo tst+ , buildable bi ]+ --FIXME: many of the places where this is used, we actually want to look at+ -- unbuildable bits too, probably need separate functions++-- | Return all of the 'BuildInfo's of enabled components, i.e., all of+-- the ones that would be built if you run @./Setup build@.+enabledBuildInfos :: PackageDescription -> ComponentRequestedSpec -> [BuildInfo]+enabledBuildInfos pkg enabled =+ [ componentBuildInfo comp+ | comp <- enabledComponents pkg enabled ]+++-- ------------------------------------------------------------+-- * Utils+-- ------------------------------------------------------------++updatePackageDescription :: HookedBuildInfo -> PackageDescription -> PackageDescription+updatePackageDescription (mb_lib_bi, exe_bi) p+ = p{ executables = updateExecutables exe_bi (executables p)+ , library = updateLibrary mb_lib_bi (library p) }+ where+ updateLibrary :: Maybe BuildInfo -> Maybe Library -> Maybe Library+ updateLibrary (Just bi) (Just lib) = Just (lib{libBuildInfo = bi `mappend` libBuildInfo lib})+ updateLibrary Nothing mb_lib = mb_lib+ updateLibrary (Just _) Nothing = Nothing++ updateExecutables :: [(UnqualComponentName, BuildInfo)] -- ^[(exeName, new buildinfo)]+ -> [Executable] -- ^list of executables to update+ -> [Executable] -- ^list with exeNames updated+ updateExecutables exe_bi' executables' = foldr updateExecutable executables' exe_bi'++ updateExecutable :: (UnqualComponentName, BuildInfo) -- ^(exeName, new buildinfo)+ -> [Executable] -- ^list of executables to update+ -> [Executable] -- ^list with exeName updated+ updateExecutable _ [] = []+ updateExecutable exe_bi'@(name,bi) (exe:exes)+ | exeName exe == name = exe{buildInfo = bi `mappend` buildInfo exe} : exes+ | otherwise = exe : updateExecutable exe_bi' exes++-- -----------------------------------------------------------------------------+-- Source-representation of buildable components++-- | All the components in the package.+--+pkgComponents :: PackageDescription -> [Component]+pkgComponents pkg =+ [ CLib lib | lib <- allLibraries pkg ]+ ++ [ CFLib flib | flib <- foreignLibs pkg ]+ ++ [ CExe exe | exe <- executables pkg ]+ ++ [ CTest tst | tst <- testSuites pkg ]+ ++ [ CBench bm | bm <- benchmarks pkg ]++-- | A list of all components in the package that are buildable,+-- i.e., were not marked with @buildable: False@. This does NOT+-- indicate if we are actually going to build the component,+-- see 'enabledComponents' instead.+--+-- @since 2.0.0.0+--+pkgBuildableComponents :: PackageDescription -> [Component]+pkgBuildableComponents = filter componentBuildable . pkgComponents++-- | A list of all components in the package that are enabled.+--+-- @since 2.0.0.0+--+enabledComponents :: PackageDescription -> ComponentRequestedSpec -> [Component]+enabledComponents pkg enabled = filter (componentEnabled enabled) $ pkgBuildableComponents pkg++lookupComponent :: PackageDescription -> ComponentName -> Maybe Component+lookupComponent pkg CLibName = fmap CLib (library pkg)+lookupComponent pkg (CSubLibName name) =+ fmap CLib $ find ((Just name ==) . libName) (subLibraries pkg)+lookupComponent pkg (CFLibName name) =+ fmap CFLib $ find ((name ==) . foreignLibName) (foreignLibs pkg)+lookupComponent pkg (CExeName name) =+ fmap CExe $ find ((name ==) . exeName) (executables pkg)+lookupComponent pkg (CTestName name) =+ fmap CTest $ find ((name ==) . testName) (testSuites pkg)+lookupComponent pkg (CBenchName name) =+ fmap CBench $ find ((name ==) . benchmarkName) (benchmarks pkg)++getComponent :: PackageDescription -> ComponentName -> Component+getComponent pkg cname =+ case lookupComponent pkg cname of+ Just cpnt -> cpnt+ Nothing -> missingComponent+ where+ missingComponent =+ error $ "internal error: the package description contains no "+ ++ "component corresponding to " ++ show cname
+ Distribution/Types/PackageId.hs view
@@ -0,0 +1,45 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.PackageId+ ( PackageIdentifier(..)+ , PackageId+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Version+ ( Version, nullVersion )++import qualified Distribution.Compat.ReadP as Parse+import qualified Text.PrettyPrint as Disp+import Distribution.Compat.ReadP+import Distribution.Text+import Distribution.Types.PackageName++-- | Type alias so we can use the shorter name PackageId.+type PackageId = PackageIdentifier++-- | The name and version of a package.+data PackageIdentifier+ = PackageIdentifier {+ pkgName :: PackageName, -- ^The name of this package, eg. foo+ pkgVersion :: Version -- ^the version of this package, eg 1.2+ }+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)++instance Binary PackageIdentifier++instance Text PackageIdentifier where+ disp (PackageIdentifier n v)+ | v == nullVersion = disp n -- if no version, don't show version.+ | otherwise = disp n <<>> Disp.char '-' <<>> disp v++ parse = do+ n <- parse+ v <- (Parse.char '-' >> parse) <++ return nullVersion+ return (PackageIdentifier n v)++instance NFData PackageIdentifier where+ rnf (PackageIdentifier name version) = rnf name `seq` rnf version
+ Distribution/Types/PackageName.hs view
@@ -0,0 +1,55 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.PackageName+ ( PackageName, unPackageName, mkPackageName+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Utils.ShortText++import qualified Text.PrettyPrint as Disp+import Distribution.ParseUtils+import Distribution.Text++-- | A package name.+--+-- Use 'mkPackageName' and 'unPackageName' to convert from/to a+-- 'String'.+--+-- This type is opaque since @Cabal-2.0@+--+-- @since 2.0+newtype PackageName = PackageName ShortText+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)++-- | Convert 'PackageName' to 'String'+unPackageName :: PackageName -> String+unPackageName (PackageName s) = fromShortText s++-- | Construct a 'PackageName' from a 'String'+--+-- 'mkPackageName' is the inverse to 'unPackageName'+--+-- Note: No validations are performed to ensure that the resulting+-- 'PackageName' is valid+--+-- @since 2.0+mkPackageName :: String -> PackageName+mkPackageName = PackageName . toShortText++-- | 'mkPackageName'+--+-- @since 2.0+instance IsString PackageName where+ fromString = mkPackageName++instance Binary PackageName++instance Text PackageName where+ disp = Disp.text . unPackageName+ parse = mkPackageName <$> parsePackageName++instance NFData PackageName where+ rnf (PackageName pkg) = rnf pkg
+ Distribution/Types/PkgconfigDependency.hs view
@@ -0,0 +1,38 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.PkgconfigDependency+ ( PkgconfigDependency(..)+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Version ( VersionRange, anyVersion )++import qualified Distribution.Compat.ReadP as Parse+import Distribution.Compat.ReadP+import Distribution.Text+import Distribution.Types.PkgconfigName++import Text.PrettyPrint ((<+>))++-- | Describes a dependency on a pkg-config library+--+-- @since 2.0+data PkgconfigDependency = PkgconfigDependency+ PkgconfigName+ VersionRange+ deriving (Generic, Read, Show, Eq, Typeable, Data)++instance Binary PkgconfigDependency+instance NFData PkgconfigDependency where rnf = genericRnf++instance Text PkgconfigDependency where+ disp (PkgconfigDependency name ver) =+ disp name <+> disp ver++ parse = do name <- parse+ Parse.skipSpaces+ ver <- parse <++ return anyVersion+ Parse.skipSpaces+ return $ PkgconfigDependency name ver
+ Distribution/Types/PkgconfigName.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.PkgconfigName+ ( PkgconfigName, unPkgconfigName, mkPkgconfigName+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Utils.ShortText++import qualified Text.PrettyPrint as Disp+import Distribution.Compat.ReadP+import Distribution.Text++-- | A pkg-config library name+--+-- This is parsed as any valid argument to the pkg-config utility.+--+-- @since 2.0+newtype PkgconfigName = PkgconfigName ShortText+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data)++-- | Convert 'PkgconfigName' to 'String'+--+-- @since 2.0+unPkgconfigName :: PkgconfigName -> String+unPkgconfigName (PkgconfigName s) = fromShortText s++-- | Construct a 'PkgconfigName' from a 'String'+--+-- 'mkPkgconfigName' is the inverse to 'unPkgconfigName'+--+-- Note: No validations are performed to ensure that the resulting+-- 'PkgconfigName' is valid+--+-- @since 2.0+mkPkgconfigName :: String -> PkgconfigName+mkPkgconfigName = PkgconfigName . toShortText++-- | 'mkPkgconfigName'+--+-- @since 2.0+instance IsString PkgconfigName where+ fromString = mkPkgconfigName++instance Binary PkgconfigName++-- pkg-config allows versions and other letters in package names, eg+-- "gtk+-2.0" is a valid pkg-config package _name_. It then has a package+-- version number like 2.10.13+instance Text PkgconfigName where+ disp = Disp.text . unPkgconfigName+ parse = mkPkgconfigName+ <$> munch1 (\c -> isAlphaNum c || c `elem` "+-._")++instance NFData PkgconfigName where+ rnf (PkgconfigName pkg) = rnf pkg
+ Distribution/Types/SetupBuildInfo.hs view
@@ -0,0 +1,38 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.SetupBuildInfo (+ SetupBuildInfo(..)+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.Dependency++-- ---------------------------------------------------------------------------+-- The SetupBuildInfo type++-- One can see this as a very cut-down version of BuildInfo below.+-- To keep things simple for tools that compile Setup.hs we limit the+-- options authors can specify to just Haskell package dependencies.++data SetupBuildInfo = SetupBuildInfo {+ setupDepends :: [Dependency],+ defaultSetupDepends :: Bool+ -- ^ Is this a default 'custom-setup' section added by the cabal-install+ -- code (as opposed to user-provided)? This field is only used+ -- internally, and doesn't correspond to anything in the .cabal+ -- file. See #3199.+ }+ deriving (Generic, Show, Eq, Read, Typeable, Data)++instance Binary SetupBuildInfo++instance Monoid SetupBuildInfo where+ mempty = SetupBuildInfo [] False+ mappend = (<>)++instance Semigroup SetupBuildInfo where+ a <> b = SetupBuildInfo (setupDepends a <> setupDepends b)+ (defaultSetupDepends a || defaultSetupDepends b)
+ Distribution/Types/SourceRepo.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.SourceRepo (+ SourceRepo(..),+ RepoKind(..),+ RepoType(..),+ knownRepoTypes,+ emptySourceRepo,+ classifyRepoType,+ classifyRepoKind,+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import qualified Distribution.Compat.ReadP as Parse+import Distribution.Text++import Text.PrettyPrint as Disp++-- ------------------------------------------------------------+-- * Source repos+-- ------------------------------------------------------------++-- | Information about the source revision control system for a package.+--+-- When specifying a repo it is useful to know the meaning or intention of the+-- information as doing so enables automation. There are two obvious common+-- purposes: one is to find the repo for the latest development version, the+-- other is to find the repo for this specific release. The 'ReopKind'+-- specifies which one we mean (or another custom one).+--+-- A package can specify one or the other kind or both. Most will specify just+-- a head repo but some may want to specify a repo to reconstruct the sources+-- for this package release.+--+-- The required information is the 'RepoType' which tells us if it's using+-- 'Darcs', 'Git' for example. The 'repoLocation' and other details are+-- interpreted according to the repo type.+--+data SourceRepo = SourceRepo {+ -- | The kind of repo. This field is required.+ repoKind :: RepoKind,++ -- | The type of the source repository system for this repo, eg 'Darcs' or+ -- 'Git'. This field is required.+ repoType :: Maybe RepoType,++ -- | The location of the repository. For most 'RepoType's this is a URL.+ -- This field is required.+ repoLocation :: Maybe String,++ -- | 'CVS' can put multiple \"modules\" on one server and requires a+ -- module name in addition to the location to identify a particular repo.+ -- Logically this is part of the location but unfortunately has to be+ -- specified separately. This field is required for the 'CVS' 'RepoType' and+ -- should not be given otherwise.+ repoModule :: Maybe String,++ -- | The name or identifier of the branch, if any. Many source control+ -- systems have the notion of multiple branches in a repo that exist in the+ -- same location. For example 'Git' and 'CVS' use this while systems like+ -- 'Darcs' use different locations for different branches. This field is+ -- optional but should be used if necessary to identify the sources,+ -- especially for the 'RepoThis' repo kind.+ repoBranch :: Maybe String,++ -- | The tag identify a particular state of the repository. This should be+ -- given for the 'RepoThis' repo kind and not for 'RepoHead' kind.+ --+ repoTag :: Maybe String,++ -- | Some repositories contain multiple projects in different subdirectories+ -- This field specifies the subdirectory where this packages sources can be+ -- found, eg the subdirectory containing the @.cabal@ file. It is interpreted+ -- relative to the root of the repository. This field is optional. If not+ -- given the default is \".\" ie no subdirectory.+ repoSubdir :: Maybe FilePath+}+ deriving (Eq, Generic, Read, Show, Typeable, Data)++emptySourceRepo :: RepoKind -> SourceRepo+emptySourceRepo kind = SourceRepo+ { repoKind = kind+ , repoType = Nothing+ , repoLocation = Nothing+ , repoModule = Nothing+ , repoBranch = Nothing+ , repoTag = Nothing+ , repoSubdir = Nothing+ }++instance Binary SourceRepo++-- | What this repo info is for, what it represents.+--+data RepoKind =+ -- | The repository for the \"head\" or development version of the project.+ -- This repo is where we should track the latest development activity or+ -- the usual repo people should get to contribute patches.+ RepoHead++ -- | The repository containing the sources for this exact package version+ -- or release. For this kind of repo a tag should be given to give enough+ -- information to re-create the exact sources.+ | RepoThis++ | RepoKindUnknown String+ deriving (Eq, Generic, Ord, Read, Show, Typeable, Data)++instance Binary RepoKind++-- | An enumeration of common source control systems. The fields used in the+-- 'SourceRepo' depend on the type of repo. The tools and methods used to+-- obtain and track the repo depend on the repo type.+--+data RepoType = Darcs | Git | SVN | CVS+ | Mercurial | GnuArch | Bazaar | Monotone+ | OtherRepoType String+ deriving (Eq, Generic, Ord, Read, Show, Typeable, Data)++instance Binary RepoType++knownRepoTypes :: [RepoType]+knownRepoTypes = [Darcs, Git, SVN, CVS+ ,Mercurial, GnuArch, Bazaar, Monotone]++repoTypeAliases :: RepoType -> [String]+repoTypeAliases Bazaar = ["bzr"]+repoTypeAliases Mercurial = ["hg"]+repoTypeAliases GnuArch = ["arch"]+repoTypeAliases _ = []++instance Text RepoKind where+ disp RepoHead = Disp.text "head"+ disp RepoThis = Disp.text "this"+ disp (RepoKindUnknown other) = Disp.text other++ parse = fmap classifyRepoKind ident++classifyRepoKind :: String -> RepoKind+classifyRepoKind name = case lowercase name of+ "head" -> RepoHead+ "this" -> RepoThis+ _ -> RepoKindUnknown name++instance Text RepoType where+ disp (OtherRepoType other) = Disp.text other+ disp other = Disp.text (lowercase (show other))+ parse = fmap classifyRepoType ident++classifyRepoType :: String -> RepoType+classifyRepoType s =+ fromMaybe (OtherRepoType s) $ lookup (lowercase s) repoTypeMap+ where+ repoTypeMap = [ (name, repoType')+ | repoType' <- knownRepoTypes+ , name <- display repoType' : repoTypeAliases repoType' ]++ident :: Parse.ReadP r String+ident = Parse.munch1 (\c -> isAlphaNum c || c == '_' || c == '-')++lowercase :: String -> String+lowercase = map toLower+
+ Distribution/Types/TargetInfo.hs view
@@ -0,0 +1,33 @@+{-# LANGUAGE TypeFamilies #-}+module Distribution.Types.TargetInfo (+ TargetInfo(..)+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.ComponentLocalBuildInfo+import Distribution.Types.Component+import Distribution.Types.UnitId++import Distribution.Compat.Graph (IsNode(..))++-- | The 'TargetInfo' contains all the information necessary to build a+-- specific target (e.g., component/module/file) in a package. In+-- principle, one can get the 'Component' from a+-- 'ComponentLocalBuildInfo' and 'LocalBuildInfo', but it is much more+-- convenient to have the component in hand.+data TargetInfo = TargetInfo {+ targetCLBI :: ComponentLocalBuildInfo,+ targetComponent :: Component+ -- TODO: BuildTargets supporting parsing these is dumb,+ -- we don't have support for compiling single modules or+ -- file paths. Accommodating it now is premature+ -- generalization. Figure it out later.+ -- targetSub :: Maybe (Either ModuleName FilePath)+ }++instance IsNode TargetInfo where+ type Key TargetInfo = UnitId+ nodeKey = nodeKey . targetCLBI+ nodeNeighbors = nodeNeighbors . targetCLBI
+ Distribution/Types/TestSuite.hs view
@@ -0,0 +1,75 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.TestSuite (+ TestSuite(..),+ emptyTestSuite,+ testType,+ testModules,+ testModulesAutogen+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.BuildInfo+import Distribution.Types.TestType+import Distribution.Types.TestSuiteInterface+import Distribution.Types.UnqualComponentName++import Distribution.ModuleName++-- | A \"test-suite\" stanza in a cabal file.+--+data TestSuite = TestSuite {+ testName :: UnqualComponentName,+ testInterface :: TestSuiteInterface,+ testBuildInfo :: BuildInfo+ }+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Binary TestSuite++instance Monoid TestSuite where+ mempty = TestSuite {+ testName = mempty,+ testInterface = mempty,+ testBuildInfo = mempty+ }+ mappend = (<>)++instance Semigroup TestSuite where+ a <> b = TestSuite {+ testName = combine' testName,+ testInterface = combine testInterface,+ testBuildInfo = combine testBuildInfo+ }+ where combine field = field a `mappend` field b+ combine' field = case ( unUnqualComponentName $ field a+ , unUnqualComponentName $ field b) of+ ("", _) -> field b+ (_, "") -> field a+ (x, y) -> error $ "Ambiguous values for test field: '"+ ++ x ++ "' and '" ++ y ++ "'"++emptyTestSuite :: TestSuite+emptyTestSuite = mempty+++testType :: TestSuite -> TestType+testType test = case testInterface test of+ TestSuiteExeV10 ver _ -> TestTypeExe ver+ TestSuiteLibV09 ver _ -> TestTypeLib ver+ TestSuiteUnsupported testtype -> testtype++-- | Get all the module names from a test suite.+testModules :: TestSuite -> [ModuleName]+testModules test = (case testInterface test of+ TestSuiteLibV09 _ m -> [m]+ _ -> [])+ ++ otherModules (testBuildInfo test)++-- | Get all the auto generated module names from a test suite.+-- This are a subset of 'testModules'.+testModulesAutogen :: TestSuite -> [ModuleName]+testModulesAutogen test = autogenModules (testBuildInfo test)
+ Distribution/Types/TestSuiteInterface.hs view
@@ -0,0 +1,50 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.TestSuiteInterface (+ TestSuiteInterface(..),+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Types.TestType+import Distribution.ModuleName+import Distribution.Version++-- | The test suite interfaces that are currently defined. Each test suite must+-- specify which interface it supports.+--+-- More interfaces may be defined in future, either new revisions or totally+-- new interfaces.+--+data TestSuiteInterface =++ -- | Test interface \"exitcode-stdio-1.0\". The test-suite takes the form+ -- of an executable. It returns a zero exit code for success, non-zero for+ -- failure. The stdout and stderr channels may be logged. It takes no+ -- command line parameters and nothing on stdin.+ --+ TestSuiteExeV10 Version FilePath++ -- | Test interface \"detailed-0.9\". The test-suite takes the form of a+ -- library containing a designated module that exports \"tests :: [Test]\".+ --+ | TestSuiteLibV09 Version ModuleName++ -- | A test suite that does not conform to one of the above interfaces for+ -- the given reason (e.g. unknown test type).+ --+ | TestSuiteUnsupported TestType+ deriving (Eq, Generic, Read, Show, Typeable, Data)++instance Binary TestSuiteInterface+++instance Monoid TestSuiteInterface where+ mempty = TestSuiteUnsupported (TestTypeUnknown mempty nullVersion)+ mappend = (<>)++instance Semigroup TestSuiteInterface where+ a <> (TestSuiteUnsupported _) = a+ _ <> b = b
+ Distribution/Types/TestType.hs view
@@ -0,0 +1,38 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Types.TestType (+ TestType(..),+ knownTestTypes,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Version+import Distribution.Text++import Text.PrettyPrint as Disp++-- | The \"test-type\" field in the test suite stanza.+--+data TestType = TestTypeExe Version -- ^ \"type: exitcode-stdio-x.y\"+ | TestTypeLib Version -- ^ \"type: detailed-x.y\"+ | TestTypeUnknown String Version -- ^ Some unknown test type e.g. \"type: foo\"+ deriving (Generic, Show, Read, Eq, Typeable, Data)++instance Binary TestType++knownTestTypes :: [TestType]+knownTestTypes = [ TestTypeExe (mkVersion [1,0])+ , TestTypeLib (mkVersion [0,9]) ]++instance Text TestType where+ disp (TestTypeExe ver) = text "exitcode-stdio-" <<>> disp ver+ disp (TestTypeLib ver) = text "detailed-" <<>> disp ver+ disp (TestTypeUnknown name ver) = text name <<>> char '-' <<>> disp ver++ parse = stdParse $ \ver name -> case name of+ "exitcode-stdio" -> TestTypeExe ver+ "detailed" -> TestTypeLib ver+ _ -> TestTypeUnknown name ver
+ Distribution/Types/UnitId.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}++module Distribution.Types.UnitId+ ( UnitId, unUnitId, mkUnitId+ , DefUnitId+ , unsafeMkDefUnitId+ , unDefUnitId+ , newSimpleUnitId+ , mkLegacyUnitId+ , getHSLibraryName+ , InstalledPackageId -- backwards compat+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Utils.ShortText++import qualified Distribution.Compat.ReadP as Parse+import Distribution.Text+import Distribution.Types.ComponentId+import Distribution.Types.PackageId++import Text.PrettyPrint (text)++-- | A unit identifier identifies a (possibly instantiated)+-- package/component that can be installed the installed package+-- database. There are several types of components that can be+-- installed:+--+-- * A traditional library with no holes, so that 'unitIdHash'+-- is @Nothing@. In the absence of Backpack, 'UnitId'+-- is the same as a 'ComponentId'.+--+-- * An indefinite, Backpack library with holes. In this case,+-- 'unitIdHash' is still @Nothing@, but in the install,+-- there are only interfaces, no compiled objects.+--+-- * An instantiated Backpack library with all the holes+-- filled in. 'unitIdHash' is a @Just@ a hash of the+-- instantiating mapping.+--+-- A unit is a component plus the additional information on how the+-- holes are filled in. Thus there is a one to many relationship: for a+-- particular component there are many different ways of filling in the+-- holes, and each different combination is a unit (and has a separate+-- 'UnitId').+--+-- 'UnitId' is distinct from 'OpenUnitId', in that it is always+-- installed, whereas 'OpenUnitId' are intermediate unit identities+-- that arise during mixin linking, and don't necessarily correspond+-- to any actually installed unit. Since the mapping is not actually+-- recorded in a 'UnitId', you can't actually substitute over them+-- (but you can substitute over 'OpenUnitId'). See also+-- "Distribution.Backpack.FullUnitId" for a mechanism for expanding an+-- instantiated 'UnitId' to retrieve its mapping.+--+-- Backwards compatibility note: if you need to get the string+-- representation of a UnitId to pass, e.g., as a @-package-id@+-- flag, use the 'display' function, which will work on all+-- versions of Cabal.+--+newtype UnitId = UnitId ShortText+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data, NFData)++{-# DEPRECATED InstalledPackageId "Use UnitId instead" #-}+type InstalledPackageId = UnitId++instance Binary UnitId++-- | The textual format for 'UnitId' coincides with the format+-- GHC accepts for @-package-id@.+--+instance Text UnitId where+ disp = text . unUnitId+ parse = mkUnitId <$> Parse.munch1 (\c -> isAlphaNum c || c `elem` "-_.+")++-- | If you need backwards compatibility, consider using 'display'+-- instead, which is supported by all versions of Cabal.+--+unUnitId :: UnitId -> String+unUnitId (UnitId s) = fromShortText s++mkUnitId :: String -> UnitId+mkUnitId = UnitId . toShortText++-- | 'mkUnitId'+--+-- @since 2.0+instance IsString UnitId where+ fromString = mkUnitId++-- | Create a unit identity with no associated hash directly+-- from a 'ComponentId'.+newSimpleUnitId :: ComponentId -> UnitId+newSimpleUnitId = mkUnitId . unComponentId++-- | Make an old-style UnitId from a package identifier.+-- Assumed to be for the public library+mkLegacyUnitId :: PackageId -> UnitId+mkLegacyUnitId = newSimpleUnitId . mkComponentId . display++-- | Returns library name prefixed with HS, suitable for filenames+getHSLibraryName :: UnitId -> String+getHSLibraryName uid = "HS" ++ display uid++-- | A 'UnitId' for a definite package. The 'DefUnitId' invariant says+-- that a 'UnitId' identified this way is definite; i.e., it has no+-- unfilled holes.+newtype DefUnitId = DefUnitId { unDefUnitId :: UnitId }+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data, Binary, NFData, Text)++-- | Unsafely create a 'DefUnitId' from a 'UnitId'. Your responsibility+-- is to ensure that the 'DefUnitId' invariant holds.+unsafeMkDefUnitId :: UnitId -> DefUnitId+unsafeMkDefUnitId = DefUnitId
+ Distribution/Types/UnqualComponentName.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+module Distribution.Types.UnqualComponentName+ ( UnqualComponentName, unUnqualComponentName, mkUnqualComponentName+ , packageNameToUnqualComponentName, unqualComponentNameToPackageName+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Utils.ShortText++import Distribution.Text+import Distribution.ParseUtils (parsePackageName)+import Distribution.Types.PackageName++import Text.PrettyPrint (text)++-- | An unqualified component name, for any kind of component.+--+-- This is distinguished from a 'ComponentName' and 'ComponentId'. The former+-- also states which of a library, executable, etc the name refers too. The+-- later uniquely identifiers a component and its closure.+--+-- @since 2.0+newtype UnqualComponentName = UnqualComponentName ShortText+ deriving (Generic, Read, Show, Eq, Ord, Typeable, Data,+ Semigroup, Monoid) -- TODO: bad enabler of bad monoids++-- | Convert 'UnqualComponentName' to 'String'+--+-- @since 2.0+unUnqualComponentName :: UnqualComponentName -> String+unUnqualComponentName (UnqualComponentName s) = fromShortText s++-- | Construct a 'UnqualComponentName' from a 'String'+--+-- 'mkUnqualComponentName' is the inverse to 'unUnqualComponentName'+--+-- Note: No validations are performed to ensure that the resulting+-- 'UnqualComponentName' is valid+--+-- @since 2.0+mkUnqualComponentName :: String -> UnqualComponentName+mkUnqualComponentName = UnqualComponentName . toShortText++-- | 'mkUnqualComponentName'+--+-- @since 2.0+instance IsString UnqualComponentName where+ fromString = mkUnqualComponentName++instance Binary UnqualComponentName++instance Text UnqualComponentName where+ disp = text . unUnqualComponentName+ parse = mkUnqualComponentName <$> parsePackageName++instance NFData UnqualComponentName where+ rnf (UnqualComponentName pkg) = rnf pkg++-- TODO avoid String round trip with these PackageName <->+-- UnqualComponentName converters.++-- | Converts a package name to an unqualified component name+--+-- Useful in legacy situations where a package name may refer to an internal+-- component, if one is defined with that name.+--+-- @since 2.0+packageNameToUnqualComponentName :: PackageName -> UnqualComponentName+packageNameToUnqualComponentName = mkUnqualComponentName . unPackageName++-- | Converts an unqualified component name to a package name+--+-- `packageNameToUnqualComponentName` is the inverse of+-- `unqualComponentNameToPackageName`.+--+-- Useful in legacy situations where a package name may refer to an internal+-- component, if one is defined with that name.+--+-- @since 2.0+unqualComponentNameToPackageName :: UnqualComponentName -> PackageName+unqualComponentNameToPackageName = mkPackageName . unUnqualComponentName
+ Distribution/Utils/Base62.hs view
@@ -0,0 +1,22 @@++-- | Implementation of base-62 encoding, which we use when computing hashes+-- for fully instantiated unit ids.+module Distribution.Utils.Base62 (hashToBase62) where++import GHC.Fingerprint ( Fingerprint(..), fingerprintString )+import Numeric ( showIntAtBase )+import Data.Char ( chr )++-- | Hash a string using GHC's fingerprinting algorithm (a 128-bit+-- MD5 hash) and then encode the resulting hash in base 62.+hashToBase62 :: String -> String+hashToBase62 s = showFingerprint $ fingerprintString s+ where+ showIntAtBase62 x = showIntAtBase 62 representBase62 x ""+ representBase62 x+ | x < 10 = chr (48 + x)+ | x < 36 = chr (65 + x - 10)+ | x < 62 = chr (97 + x - 36)+ | otherwise = '@'+ showFingerprint (Fingerprint a b) = showIntAtBase62 a ++ showIntAtBase62 b+
+ Distribution/Utils/Generic.hs view
@@ -0,0 +1,420 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE BangPatterns #-}++-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Simple.Utils+-- Copyright : Isaac Jones, Simon Marlow 2003-2004+-- License : BSD3+-- portions Copyright (c) 2007, Galois Inc.+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+-- A large and somewhat miscellaneous collection of utility functions used+-- throughout the rest of the Cabal lib and in other tools that use the Cabal+-- lib like @cabal-install@. It has a very simple set of logging actions. It+-- has low level functions for running programs, a bunch of wrappers for+-- various directory and file functions that do extra logging.++module Distribution.Utils.Generic (+ -- * reading and writing files safely+ withFileContents,+ writeFileAtomic,++ -- * Unicode+ fromUTF8,+ fromUTF8BS,+ fromUTF8LBS,+ toUTF8,+ readUTF8File,+ withUTF8FileContents,+ writeUTF8File,+ normaliseLineEndings,++ -- * BOM+ startsWithBOM,+ fileHasBOM,+ ignoreBOM,++ -- * generic utils+ dropWhileEndLE,+ takeWhileEndLE,+ equating,+ comparing,+ isInfixOf,+ intercalate,+ lowercase,+ listUnion,+ listUnionRight,+ ordNub,+ ordNubBy,+ ordNubRight,+ safeTail,+ unintersperse,+ wrapText,+ wrapLine,++ -- * FilePath stuff+ isAbsoluteOnAnyPlatform,+ isRelativeOnAnyPlatform,+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Utils.String++import Data.Bits+ ( Bits((.|.), (.&.), shiftL, shiftR) )+import Data.List+ ( isInfixOf )+import Data.Ord+ ( comparing )+import qualified Data.ByteString.Lazy as BS+import qualified Data.Set as Set++import qualified Data.ByteString as SBS++import System.Directory+ ( removeFile )+import System.FilePath+ ( (<.>), splitFileName )+import System.Directory+ ( renameFile )+import System.IO+ ( openFile, openBinaryFile, openBinaryTempFileWithDefaultPermissions+ , IOMode(ReadMode), hGetContents, hClose )+import qualified Control.Exception as Exception++-- -----------------------------------------------------------------------------+-- Helper functions++-- | Wraps text to the default line width. Existing newlines are preserved.+wrapText :: String -> String+wrapText = unlines+ . map (intercalate "\n"+ . map unwords+ . wrapLine 79+ . words)+ . lines++-- | Wraps a list of words to a list of lines of words of a particular width.+wrapLine :: Int -> [String] -> [[String]]+wrapLine width = wrap 0 []+ where wrap :: Int -> [String] -> [String] -> [[String]]+ wrap 0 [] (w:ws)+ | length w + 1 > width+ = wrap (length w) [w] ws+ wrap col line (w:ws)+ | col + length w + 1 > width+ = reverse line : wrap 0 [] (w:ws)+ wrap col line (w:ws)+ = let col' = col + length w + 1+ in wrap col' (w:line) ws+ wrap _ [] [] = []+ wrap _ line [] = [reverse line]++-----------------------------------+-- Safely reading and writing files++-- | Gets the contents of a file, but guarantee that it gets closed.+--+-- The file is read lazily but if it is not fully consumed by the action then+-- the remaining input is truncated and the file is closed.+--+withFileContents :: FilePath -> (String -> NoCallStackIO a) -> NoCallStackIO a+withFileContents name action =+ Exception.bracket (openFile name ReadMode) hClose+ (\hnd -> hGetContents hnd >>= action)++-- | Writes a file atomically.+--+-- The file is either written successfully or an IO exception is raised and+-- the original file is left unchanged.+--+-- On windows it is not possible to delete a file that is open by a process.+-- This case will give an IO exception but the atomic property is not affected.+--+writeFileAtomic :: FilePath -> BS.ByteString -> NoCallStackIO ()+writeFileAtomic targetPath content = do+ let (targetDir, targetFile) = splitFileName targetPath+ Exception.bracketOnError+ (openBinaryTempFileWithDefaultPermissions targetDir $ targetFile <.> "tmp")+ (\(tmpPath, handle) -> hClose handle >> removeFile tmpPath)+ (\(tmpPath, handle) -> do+ BS.hPut handle content+ hClose handle+ renameFile tmpPath targetPath)++-- ------------------------------------------------------------+-- * Unicode stuff+-- ------------------------------------------------------------++-- This is a modification of the UTF8 code from gtk2hs and the+-- utf8-string package.++fromUTF8 :: String -> String+fromUTF8 [] = []+fromUTF8 (c:cs)+ | c <= '\x7F' = c : fromUTF8 cs+ | c <= '\xBF' = replacementChar : fromUTF8 cs+ | c <= '\xDF' = twoBytes c cs+ | c <= '\xEF' = moreBytes 3 0x800 cs (ord c .&. 0xF)+ | c <= '\xF7' = moreBytes 4 0x10000 cs (ord c .&. 0x7)+ | c <= '\xFB' = moreBytes 5 0x200000 cs (ord c .&. 0x3)+ | c <= '\xFD' = moreBytes 6 0x4000000 cs (ord c .&. 0x1)+ | otherwise = replacementChar : fromUTF8 cs+ where+ twoBytes c0 (c1:cs')+ | ord c1 .&. 0xC0 == 0x80+ = let d = ((ord c0 .&. 0x1F) `shiftL` 6)+ .|. (ord c1 .&. 0x3F)+ in if d >= 0x80+ then chr d : fromUTF8 cs'+ else replacementChar : fromUTF8 cs'+ twoBytes _ cs' = replacementChar : fromUTF8 cs'++ moreBytes :: Int -> Int -> [Char] -> Int -> [Char]+ moreBytes 1 overlong cs' acc+ | overlong <= acc && acc <= 0x10FFFF+ && (acc < 0xD800 || 0xDFFF < acc)+ && (acc < 0xFFFE || 0xFFFF < acc)+ = chr acc : fromUTF8 cs'++ | otherwise+ = replacementChar : fromUTF8 cs'++ moreBytes byteCount overlong (cn:cs') acc+ | ord cn .&. 0xC0 == 0x80+ = moreBytes (byteCount-1) overlong cs'+ ((acc `shiftL` 6) .|. ord cn .&. 0x3F)++ moreBytes _ _ cs' _+ = replacementChar : fromUTF8 cs'++ replacementChar = '\xfffd'++fromUTF8BS :: SBS.ByteString -> String+fromUTF8BS = decodeStringUtf8 . SBS.unpack++fromUTF8LBS :: BS.ByteString -> String+fromUTF8LBS = decodeStringUtf8 . BS.unpack++toUTF8 :: String -> String+toUTF8 [] = []+toUTF8 (c:cs)+ | c <= '\x07F' = c+ : toUTF8 cs+ | c <= '\x7FF' = chr (0xC0 .|. (w `shiftR` 6))+ : chr (0x80 .|. (w .&. 0x3F))+ : toUTF8 cs+ | c <= '\xFFFF'= chr (0xE0 .|. (w `shiftR` 12))+ : chr (0x80 .|. ((w `shiftR` 6) .&. 0x3F))+ : chr (0x80 .|. (w .&. 0x3F))+ : toUTF8 cs+ | otherwise = chr (0xf0 .|. (w `shiftR` 18))+ : chr (0x80 .|. ((w `shiftR` 12) .&. 0x3F))+ : chr (0x80 .|. ((w `shiftR` 6) .&. 0x3F))+ : chr (0x80 .|. (w .&. 0x3F))+ : toUTF8 cs+ where w = ord c++-- | Whether BOM is at the beginning of the input+startsWithBOM :: String -> Bool+startsWithBOM ('\xFEFF':_) = True+startsWithBOM _ = False++-- | Check whether a file has Unicode byte order mark (BOM).+fileHasBOM :: FilePath -> NoCallStackIO Bool+fileHasBOM f = fmap (startsWithBOM . fromUTF8)+ . hGetContents =<< openBinaryFile f ReadMode++-- | Ignore a Unicode byte order mark (BOM) at the beginning of the input+--+ignoreBOM :: String -> String+ignoreBOM ('\xFEFF':string) = string+ignoreBOM string = string++-- | Reads a UTF8 encoded text file as a Unicode String+--+-- Reads lazily using ordinary 'readFile'.+--+readUTF8File :: FilePath -> NoCallStackIO String+readUTF8File f = fmap (ignoreBOM . fromUTF8)+ . hGetContents =<< openBinaryFile f ReadMode++-- | Reads a UTF8 encoded text file as a Unicode String+--+-- Same behaviour as 'withFileContents'.+--+withUTF8FileContents :: FilePath -> (String -> IO a) -> IO a+withUTF8FileContents name action =+ Exception.bracket+ (openBinaryFile name ReadMode)+ hClose+ (\hnd -> hGetContents hnd >>= action . ignoreBOM . fromUTF8)++-- | Writes a Unicode String as a UTF8 encoded text file.+--+-- Uses 'writeFileAtomic', so provides the same guarantees.+--+writeUTF8File :: FilePath -> String -> NoCallStackIO ()+writeUTF8File path = writeFileAtomic path . BS.pack . encodeStringUtf8++-- | Fix different systems silly line ending conventions+normaliseLineEndings :: String -> String+normaliseLineEndings [] = []+normaliseLineEndings ('\r':'\n':s) = '\n' : normaliseLineEndings s -- windows+normaliseLineEndings ('\r':s) = '\n' : normaliseLineEndings s -- old OS X+normaliseLineEndings ( c :s) = c : normaliseLineEndings s++-- ------------------------------------------------------------+-- * Common utils+-- ------------------------------------------------------------++-- | @dropWhileEndLE p@ is equivalent to @reverse . dropWhile p . reverse@, but+-- quite a bit faster. The difference between "Data.List.dropWhileEnd" and this+-- version is that the one in "Data.List" is strict in elements, but spine-lazy,+-- while this one is spine-strict but lazy in elements. That's what @LE@ stands+-- for - "lazy in elements".+--+-- Example:+--+-- @+-- > tail $ Data.List.dropWhileEnd (<3) [undefined, 5, 4, 3, 2, 1]+-- *** Exception: Prelude.undefined+-- > tail $ dropWhileEndLE (<3) [undefined, 5, 4, 3, 2, 1]+-- [5,4,3]+-- > take 3 $ Data.List.dropWhileEnd (<3) [5, 4, 3, 2, 1, undefined]+-- [5,4,3]+-- > take 3 $ dropWhileEndLE (<3) [5, 4, 3, 2, 1, undefined]+-- *** Exception: Prelude.undefined+-- @+dropWhileEndLE :: (a -> Bool) -> [a] -> [a]+dropWhileEndLE p = foldr (\x r -> if null r && p x then [] else x:r) []++-- | @takeWhileEndLE p@ is equivalent to @reverse . takeWhile p . reverse@, but+-- is usually faster (as well as being easier to read).+takeWhileEndLE :: (a -> Bool) -> [a] -> [a]+takeWhileEndLE p = fst . foldr go ([], False)+ where+ go x (rest, done)+ | not done && p x = (x:rest, False)+ | otherwise = (rest, True)++-- | Like 'Data.List.nub', but has @O(n log n)@ complexity instead of+-- @O(n^2)@. Code for 'ordNub' and 'listUnion' taken from Niklas Hambüchen's+-- <http://github.com/nh2/haskell-ordnub ordnub> package.+ordNub :: Ord a => [a] -> [a]+ordNub = ordNubBy id++-- | Like 'ordNub' and 'Data.List.nubBy'. Selects a key for each element and+-- takes the nub based on that key.+ordNubBy :: Ord b => (a -> b) -> [a] -> [a]+ordNubBy f l = go Set.empty l+ where+ go !_ [] = []+ go !s (x:xs)+ | y `Set.member` s = go s xs+ | otherwise = let !s' = Set.insert y s+ in x : go s' xs+ where+ y = f x++-- | Like "Data.List.union", but has @O(n log n)@ complexity instead of+-- @O(n^2)@.+listUnion :: (Ord a) => [a] -> [a] -> [a]+listUnion a b = a ++ ordNub (filter (`Set.notMember` aSet) b)+ where+ aSet = Set.fromList a++-- | A right-biased version of 'ordNub'.+--+-- Example:+--+-- @+-- > ordNub [1,2,1]+-- [1,2]+-- > ordNubRight [1,2,1]+-- [2,1]+-- @+ordNubRight :: (Ord a) => [a] -> [a]+ordNubRight = fst . foldr go ([], Set.empty)+ where+ go x p@(l, s) = if x `Set.member` s then p+ else (x:l, Set.insert x s)++-- | A right-biased version of 'listUnion'.+--+-- Example:+--+-- @+-- > listUnion [1,2,3,4,3] [2,1,1]+-- [1,2,3,4,3]+-- > listUnionRight [1,2,3,4,3] [2,1,1]+-- [4,3,2,1,1]+-- @+listUnionRight :: (Ord a) => [a] -> [a] -> [a]+listUnionRight a b = ordNubRight (filter (`Set.notMember` bSet) a) ++ b+ where+ bSet = Set.fromList b++-- | A total variant of 'tail'.+safeTail :: [a] -> [a]+safeTail [] = []+safeTail (_:xs) = xs++equating :: Eq a => (b -> a) -> b -> b -> Bool+equating p x y = p x == p y++lowercase :: String -> String+lowercase = map toLower++unintersperse :: Char -> String -> [String]+unintersperse mark = unfoldr unintersperse1 where+ unintersperse1 str+ | null str = Nothing+ | otherwise =+ let (this, rest) = break (== mark) str in+ Just (this, safeTail rest)++-- ------------------------------------------------------------+-- * FilePath stuff+-- ------------------------------------------------------------++-- | 'isAbsoluteOnAnyPlatform' and 'isRelativeOnAnyPlatform' are like+-- 'System.FilePath.isAbsolute' and 'System.FilePath.isRelative' but have+-- platform independent heuristics.+-- The System.FilePath exists in two versions, Windows and Posix. The two+-- versions don't agree on what is a relative path and we don't know if we're+-- given Windows or Posix paths.+-- This results in false positives when running on Posix and inspecting+-- Windows paths, like the hackage server does.+-- System.FilePath.Posix.isAbsolute \"C:\\hello\" == False+-- System.FilePath.Windows.isAbsolute \"/hello\" == False+-- This means that we would treat paths that start with \"/\" to be absolute.+-- On Posix they are indeed absolute, while on Windows they are not.+--+-- The portable versions should be used when we might deal with paths that+-- are from another OS than the host OS. For example, the Hackage Server+-- deals with both Windows and Posix paths while performing the+-- PackageDescription checks. In contrast, when we run 'cabal configure' we+-- do expect the paths to be correct for our OS and we should not have to use+-- the platform independent heuristics.+isAbsoluteOnAnyPlatform :: FilePath -> Bool+-- C:\\directory+isAbsoluteOnAnyPlatform (drive:':':'\\':_) = isAlpha drive+-- UNC+isAbsoluteOnAnyPlatform ('\\':'\\':_) = True+-- Posix root+isAbsoluteOnAnyPlatform ('/':_) = True+isAbsoluteOnAnyPlatform _ = False++-- | @isRelativeOnAnyPlatform = not . 'isAbsoluteOnAnyPlatform'@+isRelativeOnAnyPlatform :: FilePath -> Bool+isRelativeOnAnyPlatform = not . isAbsoluteOnAnyPlatform
+ Distribution/Utils/LogProgress.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE Rank2Types #-}+{-# LANGUAGE FlexibleContexts #-}+module Distribution.Utils.LogProgress (+ LogProgress,+ runLogProgress,+ warnProgress,+ infoProgress,+ dieProgress,+ addProgressCtx,+) where++import Prelude ()+import Distribution.Compat.Prelude++import Distribution.Utils.Progress+import Distribution.Verbosity+import Distribution.Simple.Utils+import Text.PrettyPrint++type CtxMsg = Doc+type LogMsg = Doc+type ErrMsg = Doc++data LogEnv = LogEnv {+ le_verbosity :: Verbosity,+ le_context :: [CtxMsg]+ }++-- | The 'Progress' monad with specialized logging and+-- error messages.+newtype LogProgress a = LogProgress { unLogProgress :: LogEnv -> Progress LogMsg ErrMsg a }++instance Functor LogProgress where+ fmap f (LogProgress m) = LogProgress (fmap (fmap f) m)++instance Applicative LogProgress where+ pure x = LogProgress (pure (pure x))+ LogProgress f <*> LogProgress x = LogProgress $ \r -> f r `ap` x r++instance Monad LogProgress where+ return = pure+ LogProgress m >>= f = LogProgress $ \r -> m r >>= \x -> unLogProgress (f x) r++-- | Run 'LogProgress', outputting traces according to 'Verbosity',+-- 'die' if there is an error.+runLogProgress :: Verbosity -> LogProgress a -> NoCallStackIO a+runLogProgress verbosity (LogProgress m) =+ foldProgress step_fn fail_fn return (m env)+ where+ env = LogEnv {+ le_verbosity = verbosity,+ le_context = []+ }+ step_fn :: LogMsg -> NoCallStackIO a -> NoCallStackIO a+ step_fn doc go = do+ putStrLn (render doc)+ go+ fail_fn :: Doc -> NoCallStackIO a+ fail_fn doc = do+ dieNoWrap verbosity (render doc)++-- | Output a warning trace message in 'LogProgress'.+warnProgress :: Doc -> LogProgress ()+warnProgress s = LogProgress $ \env ->+ when (le_verbosity env >= normal) $+ stepProgress $+ hang (text "Warning:") 4 (formatMsg (le_context env) s)++-- | Output an informational trace message in 'LogProgress'.+infoProgress :: Doc -> LogProgress ()+infoProgress s = LogProgress $ \env ->+ when (le_verbosity env >= verbose) $+ stepProgress s++-- | Fail the computation with an error message.+dieProgress :: Doc -> LogProgress a+dieProgress s = LogProgress $ \env ->+ failProgress $+ hang (text "Error:") 4 (formatMsg (le_context env) s)++-- | Format a message with context. (Something simple for now.)+formatMsg :: [CtxMsg] -> Doc -> Doc+formatMsg ctx doc = doc $$ vcat ctx++-- | Add a message to the error/warning context.+addProgressCtx :: CtxMsg -> LogProgress a -> LogProgress a+addProgressCtx s (LogProgress m) = LogProgress $ \env ->+ m env { le_context = s : le_context env }
+ Distribution/Utils/MapAccum.hs view
@@ -0,0 +1,34 @@+{-# LANGUAGE CPP #-}+module Distribution.Utils.MapAccum (mapAccumM) where++import Distribution.Compat.Prelude+import Prelude ()++-- Like StateT but with return tuple swapped+newtype StateM s m a = StateM { runStateM :: s -> m (s, a) }++instance Functor m => Functor (StateM s m) where+ fmap f (StateM x) = StateM $ \s -> fmap (\(s', a) -> (s', f a)) (x s)++instance+#if __GLASGOW_HASKELL__ < 709+ (Functor m, Monad m)+#else+ Monad m+#endif+ => Applicative (StateM s m) where+ pure x = StateM $ \s -> return (s, x)+ StateM f <*> StateM x = StateM $ \s -> do (s', f') <- f s+ (s'', x') <- x s'+ return (s'', f' x')++-- | Monadic variant of 'mapAccumL'.+mapAccumM ::+#if __GLASGOW_HASKELL__ < 709+ (Functor m, Monad m, Traversable t)+#else+ (Monad m, Traversable t)+#endif+ => (a -> b -> m (a, c)) -> a -> t b -> m (a, t c)+mapAccumM f s t = runStateM (traverse (\x -> StateM (\s' -> f s' x)) t) s+
Distribution/Utils/NubList.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveDataTypeable #-} module Distribution.Utils.NubList ( NubList -- opaque , toNubList -- smart construtor@@ -10,8 +11,9 @@ , overNubListR ) where -import Distribution.Compat.Semigroup as Semi-import Distribution.Compat.Binary+import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Simple.Utils import qualified Text.Read as R@@ -19,7 +21,7 @@ -- | NubList : A de-duplicated list that maintains the original order. newtype NubList a = NubList { fromNubList :: [a] }- deriving Eq+ deriving (Eq, Typeable) -- NubList assumes that nub retains the list order while removing duplicate -- elements (keeping the first occurence). Documentation for "Data.List.nub"@@ -50,7 +52,7 @@ instance Ord a => Monoid (NubList a) where mempty = NubList []- mappend = (Semi.<>)+ mappend = (<>) instance Ord a => Semigroup (NubList a) where (NubList xs) <> (NubList ys) = NubList $ xs `listUnion` ys@@ -90,7 +92,7 @@ instance Ord a => Monoid (NubListR a) where mempty = NubListR []- mappend = (Semi.<>)+ mappend = (<>) instance Ord a => Semigroup (NubListR a) where (NubListR xs) <> (NubListR ys) = NubListR $ xs `listUnionRight` ys
+ Distribution/Utils/Progress.hs view
@@ -0,0 +1,67 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveFunctor #-}+-- Note: This module was copied from cabal-install.++-- | A progress monad, which we use to report failure and logging from+-- otherwise pure code.+module Distribution.Utils.Progress+ ( Progress+ , stepProgress+ , failProgress+ , foldProgress+ ) where++import Prelude ()+import Distribution.Compat.Prelude++import qualified Data.Monoid as Mon+++-- | A type to represent the unfolding of an expensive long running+-- calculation that may fail (or maybe not expensive, but complicated!)+-- We may get intermediate steps before the final+-- result which may be used to indicate progress and\/or logging messages.+--+-- TODO: Apply Codensity to avoid left-associativity problem.+-- See http://comonad.com/reader/2011/free-monads-for-less/ and+-- http://blog.ezyang.com/2012/01/problem-set-the-codensity-transformation/+--+data Progress step fail done = Step step (Progress step fail done)+ | Fail fail+ | Done done+ deriving (Functor)++-- | Emit a step and then continue.+--+stepProgress :: step -> Progress step fail ()+stepProgress step = Step step (Done ())++-- | Fail the computation.+failProgress :: fail -> Progress step fail done+failProgress err = Fail err++-- | Consume a 'Progress' calculation. Much like 'foldr' for lists but with two+-- base cases, one for a final result and one for failure.+--+-- Eg to convert into a simple 'Either' result use:+--+-- > foldProgress (flip const) Left Right+--+foldProgress :: (step -> a -> a) -> (fail -> a) -> (done -> a)+ -> Progress step fail done -> a+foldProgress step err done = fold+ where fold (Step s p) = step s (fold p)+ fold (Fail f) = err f+ fold (Done r) = done r++instance Monad (Progress step fail) where+ return = pure+ p >>= f = foldProgress Step Fail f p++instance Applicative (Progress step fail) where+ pure a = Done a+ p <*> x = foldProgress Step Fail (flip fmap x) p++instance Monoid fail => Alternative (Progress step fail) where+ empty = Fail Mon.mempty+ p <|> q = foldProgress Step (const q) Done p
+ Distribution/Utils/ShortText.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++module Distribution.Utils.ShortText+ ( -- * 'ShortText' type+ ShortText+ , toShortText+ , fromShortText++ -- * internal utilities+ , decodeStringUtf8+ , encodeStringUtf8+ ) where++import Prelude ()+import Distribution.Compat.Prelude+import Distribution.Utils.String++#if defined(MIN_VERSION_bytestring)+# if MIN_VERSION_bytestring(0,10,4)+# define HAVE_SHORTBYTESTRING 1+# endif+#endif++-- Hack for GHC bootstrapping+--+-- Currently (as of GHC 8.1), GHC bootstraps Cabal by building+-- binary and Cabal in one giant ghc --make command. This+-- means no MIN_VERSION_binary macro is available.+--+-- We could try to cleverly figure something out in this case,+-- but there is a better plan: just use the unoptimized version+-- of the Binary instance. We're not going to use it for anything+-- real in any case.+--+-- WARNING: Don't use MIN_VERSION_binary to smooth over a BC-break!+--+#ifndef MIN_VERSION_binary+#define MIN_VERSION_binary(x, y, z) 0+#endif++#if HAVE_SHORTBYTESTRING+import qualified Data.ByteString.Short as BS.Short+#endif++-- | Construct 'ShortText' from 'String'+toShortText :: String -> ShortText++-- | Convert 'ShortText' to 'String'+fromShortText :: ShortText -> String++-- | Compact representation of short 'Strings'+--+-- The data is stored internally as UTF8 in an+-- 'BS.Short.ShortByteString' when compiled against @bytestring >=+-- 0.10.4@, and otherwise the fallback is to use plain old non-compat+-- '[Char]'.+--+-- Note: This type is for internal uses (such as e.g. 'PackageName')+-- and shall not be exposed in Cabal's API+--+-- @since 2.0.0+#if HAVE_SHORTBYTESTRING+newtype ShortText = ST { unST :: BS.Short.ShortByteString }+ deriving (Eq,Ord,Generic,Data,Typeable)++# if MIN_VERSION_binary(0,8,1)+instance Binary ShortText where+ put = put . unST+ get = fmap ST get+# else+instance Binary ShortText where+ put = put . BS.Short.fromShort . unST+ get = fmap (ST . BS.Short.toShort) get+# endif++toShortText = ST . BS.Short.pack . encodeStringUtf8++fromShortText = decodeStringUtf8 . BS.Short.unpack . unST+#else+newtype ShortText = ST { unST :: String }+ deriving (Eq,Ord,Generic,Data,Typeable)++instance Binary ShortText where+ put = put . encodeStringUtf8 . unST+ get = fmap (ST . decodeStringUtf8) get++toShortText = ST++fromShortText = unST+#endif++instance NFData ShortText where+ rnf = rnf . unST++instance Show ShortText where+ show = show . fromShortText++instance Read ShortText where+ readsPrec p = map (first toShortText) . readsPrec p++instance Semigroup ShortText where+ ST a <> ST b = ST (mappend a b)++instance Monoid ShortText where+ mempty = ST mempty+ mappend = (<>)++instance IsString ShortText where+ fromString = toShortText
+ Distribution/Utils/String.hs view
@@ -0,0 +1,85 @@+module Distribution.Utils.String+ ( -- * Encode to/from UTF8+ decodeStringUtf8+ , encodeStringUtf8+ ) where++import Data.Word+import Data.Bits+import Data.Char (chr,ord)++-- | Decode 'String' from UTF8-encoded octets.+--+-- Invalid data will be decoded as the replacement character (@U+FFFD@)+--+-- See also 'encodeStringUtf8'+decodeStringUtf8 :: [Word8] -> String+decodeStringUtf8 = go+ where+ go :: [Word8] -> String+ go [] = []+ go (c : cs)+ | c <= 0x7F = chr (fromIntegral c) : go cs+ | c <= 0xBF = replacementChar : go cs+ | c <= 0xDF = twoBytes c cs+ | c <= 0xEF = moreBytes 3 0x800 cs (fromIntegral $ c .&. 0xF)+ | c <= 0xF7 = moreBytes 4 0x10000 cs (fromIntegral $ c .&. 0x7)+ | c <= 0xFB = moreBytes 5 0x200000 cs (fromIntegral $ c .&. 0x3)+ | c <= 0xFD = moreBytes 6 0x4000000 cs (fromIntegral $ c .&. 0x1)+ | otherwise = replacementChar : go cs++ twoBytes :: Word8 -> [Word8] -> String+ twoBytes c0 (c1:cs')+ | c1 .&. 0xC0 == 0x80+ = let d = (fromIntegral (c0 .&. 0x1F) `shiftL` 6)+ .|. fromIntegral (c1 .&. 0x3F)+ in if d >= 0x80+ then chr d : go cs'+ else replacementChar : go cs'+ twoBytes _ cs' = replacementChar : go cs'++ moreBytes :: Int -> Int -> [Word8] -> Int -> [Char]+ moreBytes 1 overlong cs' acc+ | overlong <= acc && acc <= 0x10FFFF+ && (acc < 0xD800 || 0xDFFF < acc)+ && (acc < 0xFFFE || 0xFFFF < acc)+ = chr acc : go cs'++ | otherwise+ = replacementChar : go cs'++ moreBytes byteCount overlong (cn:cs') acc+ | cn .&. 0xC0 == 0x80+ = moreBytes (byteCount-1) overlong cs'+ ((acc `shiftL` 6) .|. fromIntegral cn .&. 0x3F)++ moreBytes _ _ cs' _+ = replacementChar : go cs'++ replacementChar = '\xfffd'+++-- | Encode 'String' to a list of UTF8-encoded octets+--+-- See also 'decodeUtf8'+encodeStringUtf8 :: String -> [Word8]+encodeStringUtf8 [] = []+encodeStringUtf8 (c:cs)+ | c <= '\x07F' = w8+ : encodeStringUtf8 cs+ | c <= '\x7FF' = (0xC0 .|. w8ShiftR 6 )+ : (0x80 .|. (w8 .&. 0x3F))+ : encodeStringUtf8 cs+ | c <= '\xFFFF'= (0xE0 .|. w8ShiftR 12 )+ : (0x80 .|. (w8ShiftR 6 .&. 0x3F))+ : (0x80 .|. (w8 .&. 0x3F))+ : encodeStringUtf8 cs+ | otherwise = (0xf0 .|. w8ShiftR 18 )+ : (0x80 .|. (w8ShiftR 12 .&. 0x3F))+ : (0x80 .|. (w8ShiftR 6 .&. 0x3F))+ : (0x80 .|. (w8 .&. 0x3F))+ : encodeStringUtf8 cs+ where+ w8 = fromIntegral (ord c) :: Word8+ w8ShiftR :: Int -> Word8+ w8ShiftR = fromIntegral . shiftR (ord c)
+ Distribution/Utils/UnionFind.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE NondecreasingIndentation #-}+-- | A simple mutable union-find data structure.+--+-- It is used in a unification algorithm for backpack mix-in linking.+--+-- This implementation is based off of the one in \"The Essence of ML Type+-- Inference\". (N.B. the union-find package is also based off of this.)+--+module Distribution.Utils.UnionFind (+ Point,+ fresh,+ find,+ union,+ equivalent,+) where++import Data.STRef+import Control.Monad+import Control.Monad.ST++-- | A variable which can be unified; alternately, this can be thought+-- of as an equivalence class with a distinguished representative.+newtype Point s a = Point (STRef s (Link s a))+ deriving (Eq)++-- | Mutable write to a 'Point'+writePoint :: Point s a -> Link s a -> ST s ()+writePoint (Point v) = writeSTRef v++-- | Read the current value of 'Point'.+readPoint :: Point s a -> ST s (Link s a)+readPoint (Point v) = readSTRef v++-- | The internal data structure for a 'Point', which either records+-- the representative element of an equivalence class, or a link to+-- the 'Point' that actually stores the representative type.+data Link s a+ -- NB: it is too bad we can't say STRef Int#; the weights remain boxed+ = Info {-# UNPACK #-} !(STRef s Int) {-# UNPACK #-} !(STRef s a)+ | Link {-# UNPACK #-} !(Point s a)++-- | Create a fresh equivalence class with one element.+fresh :: a -> ST s (Point s a)+fresh desc = do+ weight <- newSTRef 1+ descriptor <- newSTRef desc+ Point `fmap` newSTRef (Info weight descriptor)++-- | Flatten any chains of links, returning a 'Point'+-- which points directly to the canonical representation.+repr :: Point s a -> ST s (Point s a)+repr point = readPoint point >>= \r ->+ case r of+ Link point' -> do+ point'' <- repr point'+ when (point'' /= point') $ do+ writePoint point =<< readPoint point'+ return point''+ Info _ _ -> return point++-- | Return the canonical element of an equivalence+-- class 'Point'.+find :: Point s a -> ST s a+find point =+ -- Optimize length 0 and 1 case at expense of+ -- general case+ readPoint point >>= \r ->+ case r of+ Info _ d_ref -> readSTRef d_ref+ Link point' -> readPoint point' >>= \r' ->+ case r' of+ Info _ d_ref -> readSTRef d_ref+ Link _ -> repr point >>= find++-- | Unify two equivalence classes, so that they share+-- a canonical element. Keeps the descriptor of point2.+union :: Point s a -> Point s a -> ST s ()+union refpoint1 refpoint2 = do+ point1 <- repr refpoint1+ point2 <- repr refpoint2+ when (point1 /= point2) $ do+ l1 <- readPoint point1+ l2 <- readPoint point2+ case (l1, l2) of+ (Info wref1 dref1, Info wref2 dref2) -> do+ weight1 <- readSTRef wref1+ weight2 <- readSTRef wref2+ -- Should be able to optimize the == case separately+ if weight1 >= weight2+ then do+ writePoint point2 (Link point1)+ -- The weight calculation here seems a bit dodgy+ writeSTRef wref1 (weight1 + weight2)+ writeSTRef dref1 =<< readSTRef dref2+ else do+ writePoint point1 (Link point2)+ writeSTRef wref2 (weight1 + weight2)+ _ -> error "UnionFind.union: repr invariant broken"++-- | Test if two points are in the same equivalence class.+equivalent :: Point s a -> Point s a -> ST s Bool+equivalent point1 point2 = liftM2 (==) (repr point1) (repr point2)
Distribution/Verbosity.hs view
@@ -9,9 +9,17 @@ -- Maintainer : cabal-devel@haskell.org -- Portability : portable ----- A simple 'Verbosity' type with associated utilities. There are 4 standard--- verbosity levels from 'silent', 'normal', 'verbose' up to 'deafening'. This--- is used for deciding what logging messages to print.+-- A 'Verbosity' type with associated utilities.+--+-- There are 4 standard verbosity levels from 'silent', 'normal',+-- 'verbose' up to 'deafening'. This is used for deciding what logging+-- messages to print.+--+-- Verbosity also is equipped with some internal settings which can be+-- used to control at a fine granularity the verbosity of specific+-- settings (e.g., so that you can trace only particular things you+-- are interested in.) It's important to note that the instances+-- for 'Verbosity' assume that this does not exist. -- Verbosity for Cabal functions. @@ -19,72 +27,230 @@ -- * Verbosity Verbosity, silent, normal, verbose, deafening,- moreVerbose, lessVerbose,+ moreVerbose, lessVerbose, isVerboseQuiet, intToVerbosity, flagToVerbosity,- showForCabal, showForGHC+ showForCabal, showForGHC,+ verboseNoFlags, verboseHasFlags,++ -- * Call stacks+ verboseCallSite, verboseCallStack,+ isVerboseCallSite, isVerboseCallStack,++ -- * Output markets+ verboseMarkOutput, isVerboseMarkOutput,+ verboseUnmarkOutput,++ -- * line-wrapping+ verboseNoWrap, isVerboseNoWrap, ) where -import Distribution.Compat.Binary+import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.ReadE+import Distribution.Compat.ReadP import Data.List (elemIndex)-import GHC.Generics+import Data.Set (Set)+import qualified Data.Set as Set -data Verbosity = Silent | Normal | Verbose | Deafening- deriving (Generic, Show, Read, Eq, Ord, Enum, Bounded)+data Verbosity = Verbosity {+ vLevel :: VerbosityLevel,+ vFlags :: Set VerbosityFlag,+ vQuiet :: Bool+ } deriving (Generic) +mkVerbosity :: VerbosityLevel -> Verbosity+mkVerbosity l = Verbosity { vLevel = l, vFlags = Set.empty, vQuiet = False }++instance Show Verbosity where+ showsPrec n = showsPrec n . vLevel++instance Read Verbosity where+ readsPrec n s = map (\(x,y) -> (mkVerbosity x,y)) (readsPrec n s)++instance Eq Verbosity where+ x == y = vLevel x == vLevel y++instance Ord Verbosity where+ compare x y = compare (vLevel x) (vLevel y)++instance Enum Verbosity where+ toEnum = mkVerbosity . toEnum+ fromEnum = fromEnum . vLevel++instance Bounded Verbosity where+ minBound = mkVerbosity minBound+ maxBound = mkVerbosity maxBound+ instance Binary Verbosity +data VerbosityLevel = Silent | Normal | Verbose | Deafening+ deriving (Generic, Show, Read, Eq, Ord, Enum, Bounded)++instance Binary VerbosityLevel+ -- We shouldn't print /anything/ unless an error occurs in silent mode silent :: Verbosity-silent = Silent+silent = mkVerbosity Silent -- Print stuff we want to see by default normal :: Verbosity-normal = Normal+normal = mkVerbosity Normal -- Be more verbose about what's going on verbose :: Verbosity-verbose = Verbose+verbose = mkVerbosity Verbose -- Not only are we verbose ourselves (perhaps even noisier than when -- being "verbose"), but we tell everything we run to be verbose too deafening :: Verbosity-deafening = Deafening+deafening = mkVerbosity Deafening moreVerbose :: Verbosity -> Verbosity-moreVerbose Silent = Silent --silent should stay silent-moreVerbose Normal = Verbose-moreVerbose Verbose = Deafening-moreVerbose Deafening = Deafening+moreVerbose v =+ case vLevel v of+ Silent -> v -- silent should stay silent+ Normal -> v { vLevel = Verbose }+ Verbose -> v { vLevel = Deafening }+ Deafening -> v lessVerbose :: Verbosity -> Verbosity-lessVerbose Deafening = Deafening-lessVerbose Verbose = Normal-lessVerbose Normal = Silent-lessVerbose Silent = Silent+lessVerbose v =+ verboseQuiet $+ case vLevel v of+ Deafening -> v -- deafening stays deafening+ Verbose -> v { vLevel = Normal }+ Normal -> v { vLevel = Silent }+ Silent -> v intToVerbosity :: Int -> Maybe Verbosity-intToVerbosity 0 = Just Silent-intToVerbosity 1 = Just Normal-intToVerbosity 2 = Just Verbose-intToVerbosity 3 = Just Deafening+intToVerbosity 0 = Just (mkVerbosity Silent)+intToVerbosity 1 = Just (mkVerbosity Normal)+intToVerbosity 2 = Just (mkVerbosity Verbose)+intToVerbosity 3 = Just (mkVerbosity Deafening) intToVerbosity _ = Nothing +parseVerbosity :: ReadP r (Either Int Verbosity)+parseVerbosity = parseIntVerbosity <++ parseStringVerbosity+ where+ parseIntVerbosity = fmap Left (readS_to_P reads)+ parseStringVerbosity = fmap Right $ do+ level <- parseVerbosityLevel+ _ <- skipSpaces+ extras <- sepBy parseExtra skipSpaces+ return (foldr (.) id extras (mkVerbosity level))+ parseVerbosityLevel = choice+ [ string "silent" >> return Silent+ , string "normal" >> return Normal+ , string "verbose" >> return Verbose+ , string "debug" >> return Deafening+ , string "deafening" >> return Deafening+ ]+ parseExtra = char '+' >> choice+ [ string "callsite" >> return verboseCallSite+ , string "callstack" >> return verboseCallStack+ , string "nowrap" >> return verboseNoWrap+ , string "markoutput" >> return verboseMarkOutput+ ]+ flagToVerbosity :: ReadE Verbosity flagToVerbosity = ReadE $ \s ->- case reads s of- [(i, "")] ->+ case readP_to_S (parseVerbosity >>= \r -> eof >> return r) s of+ [(Left i, "")] -> case intToVerbosity i of Just v -> Right v Nothing -> Left ("Bad verbosity: " ++ show i ++ ". Valid values are 0..3")+ [(Right v, "")] -> Right v _ -> Left ("Can't parse verbosity " ++ s) showForCabal, showForGHC :: Verbosity -> String -showForCabal v = maybe (error "unknown verbosity") show $- elemIndex v [silent,normal,verbose,deafening]+showForCabal v+ | Set.null (vFlags v)+ = maybe (error "unknown verbosity") show $+ elemIndex v [silent,normal,verbose,deafening]+ | otherwise+ = unwords $ (case vLevel v of+ Silent -> "silent"+ Normal -> "normal"+ Verbose -> "verbose"+ Deafening -> "debug")+ : concatMap showFlag (Set.toList (vFlags v))+ where+ showFlag VCallSite = ["+callsite"]+ showFlag VCallStack = ["+callstack"]+ showFlag VNoWrap = ["+nowrap"]+ showFlag VMarkOutput = ["+markoutput"] showForGHC v = maybe (error "unknown verbosity") show $ elemIndex v [silent,normal,__,verbose,deafening] where __ = silent -- this will be always ignored by elemIndex++data VerbosityFlag+ = VCallStack+ | VCallSite+ | VNoWrap+ | VMarkOutput+ deriving (Generic, Show, Read, Eq, Ord, Enum, Bounded)++instance Binary VerbosityFlag++-- | Turn on verbose call-site printing when we log.+verboseCallSite :: Verbosity -> Verbosity+verboseCallSite = verboseFlag VCallSite++-- | Turn on verbose call-stack printing when we log.+verboseCallStack :: Verbosity -> Verbosity+verboseCallStack = verboseFlag VCallStack++-- | Turn on @-----BEGIN CABAL OUTPUT-----@ markers for output+-- from Cabal (as opposed to GHC, or system dependent).+verboseMarkOutput :: Verbosity -> Verbosity+verboseMarkOutput = verboseFlag VMarkOutput++-- | Turn off marking; useful for suppressing nondeterministic output.+verboseUnmarkOutput :: Verbosity -> Verbosity+verboseUnmarkOutput v = v { vFlags = Set.delete VMarkOutput (vFlags v) }++-- | Disable line-wrapping for log messages.+verboseNoWrap :: Verbosity -> Verbosity+verboseNoWrap = verboseFlag VNoWrap++-- | Mark the verbosity as quiet+verboseQuiet :: Verbosity -> Verbosity+verboseQuiet v = v { vQuiet = True }++-- | Helper function for flag toggling functions+verboseFlag :: VerbosityFlag -> (Verbosity -> Verbosity)+verboseFlag flag v = v { vFlags = Set.insert flag (vFlags v) }++verboseNoFlags :: Verbosity -> Verbosity+verboseNoFlags v = v { vFlags = Set.empty }++verboseHasFlags :: Verbosity -> Bool+verboseHasFlags = not . Set.null . vFlags++-- | Test if we should output call sites when we log.+isVerboseCallSite :: Verbosity -> Bool+isVerboseCallSite = isVerboseFlag VCallSite++-- | Test if we should output call stacks when we log.+isVerboseCallStack :: Verbosity -> Bool+isVerboseCallStack = isVerboseFlag VCallStack++-- | Test if we should output markets.+isVerboseMarkOutput :: Verbosity -> Bool+isVerboseMarkOutput = isVerboseFlag VMarkOutput++-- | Test if line-wrapping is disabled for log messages.+isVerboseNoWrap :: Verbosity -> Bool+isVerboseNoWrap = isVerboseFlag VNoWrap++-- | Test if we had called 'lessVerbose' on the verbosity+isVerboseQuiet :: Verbosity -> Bool+isVerboseQuiet = vQuiet++-- | Helper function for flag testing functions.+isVerboseFlag :: VerbosityFlag -> Verbosity -> Bool+isVerboseFlag flag = (Set.member flag) . vFlags
Distribution/Version.hs view
@@ -1,31 +1,6 @@-{-# LANGUAGE CPP, DeriveDataTypeable #-}+{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-}-#if __GLASGOW_HASKELL__ < 707-{-# LANGUAGE StandaloneDeriving #-}-#endif --- Hack approach to support bootstrapping.--- When MIN_VERSION_binary macro is available, use it. But it's not available--- during bootstrapping (or anyone else building Setup.hs directly). If the--- builder specifies -DMIN_VERSION_binary_0_8_0=1 or =0 then we respect that.--- Otherwise we pick a default based on GHC version: assume binary <0.8 when--- GHC < 8.0, and binary >=0.8 when GHC >= 8.0.-#ifdef MIN_VERSION_binary-#define MIN_VERSION_binary_0_8_0 MIN_VERSION_binary(0,8,0)-#else-#ifndef MIN_VERSION_binary_0_8_0-#if __GLASGOW_HASKELL__ >= 800-#define MIN_VERSION_binary_0_8_0 1-#else-#define MIN_VERSION_binary_0_8_0 0-#endif-#endif-#endif--#if !MIN_VERSION_binary_0_8_0-{-# OPTIONS_GHC -fno-warn-orphans #-}-#endif- ----------------------------------------------------------------------------- -- | -- Module : Distribution.Version@@ -42,8 +17,16 @@ module Distribution.Version ( -- * Package versions- Version(..),+ Version,+ mkVersion,+ mkVersion',+ versionNumbers,+ nullVersion,+ alterVersion, + -- ** Backwards compatibility+ showVersion,+ -- * Version ranges VersionRange(..), @@ -56,6 +39,7 @@ differenceVersionRanges, invertVersionRange, withinVersion,+ majorBoundVersion, betweenVersionsInclusive, -- ** Inspection@@ -71,6 +55,7 @@ -- ** Modification removeUpperBound,+ removeLowerBound, -- * Version intervals view asVersionIntervals,@@ -97,22 +82,216 @@ ) where -import Distribution.Compat.Binary ( Binary(..) )-import Data.Data ( Data )-import Data.Typeable ( Typeable )-import Data.Version ( Version(..) )-import GHC.Generics ( Generic )+import Prelude ()+import Distribution.Compat.Prelude+import qualified Data.Version as Base+import Data.Bits (shiftL, shiftR, (.|.), (.&.)) import Distribution.Text import qualified Distribution.Compat.ReadP as Parse import Distribution.Compat.ReadP hiding (get) import qualified Text.PrettyPrint as Disp-import Text.PrettyPrint ((<>), (<+>))-import qualified Data.Char as Char (isDigit)+import Text.PrettyPrint ((<+>)) import Control.Exception (assert) +import qualified Text.Read as Read+ -- -----------------------------------------------------------------------------+-- Versions++-- | A 'Version' represents the version of a software entity.+--+-- Instances of 'Eq' and 'Ord' are provided, which gives exact+-- equality and lexicographic ordering of the version number+-- components (i.e. 2.1 > 2.0, 1.2.3 > 1.2.2, etc.).+--+-- This type is opaque and distinct from the 'Base.Version' type in+-- "Data.Version" since @Cabal-2.0@. The difference extends to the+-- 'Binary' instance using a different (and more compact) encoding.+--+-- @since 2.0+data Version = PV0 {-# UNPACK #-} !Word64+ | PV1 !Int [Int]+ -- NOTE: If a version fits into the packed Word64+ -- representation (i.e. at most four version components+ -- which all fall into the [0..0xfffe] range), then PV0+ -- MUST be used. This is essential for the 'Eq' instance+ -- to work.+ deriving (Data,Eq,Generic,Typeable)++instance Ord Version where+ compare (PV0 x) (PV0 y) = compare x y+ compare (PV1 x xs) (PV1 y ys) = case compare x y of+ EQ -> compare xs ys+ c -> c+ compare (PV0 w) (PV1 y ys) = case compare x y of+ EQ -> compare [x2,x3,x4] ys+ c -> c+ where+ x = fromIntegral ((w `shiftR` 48) .&. 0xffff) - 1+ x2 = fromIntegral ((w `shiftR` 32) .&. 0xffff) - 1+ x3 = fromIntegral ((w `shiftR` 16) .&. 0xffff) - 1+ x4 = fromIntegral (w .&. 0xffff) - 1+ compare (PV1 x xs) (PV0 w) = case compare x y of+ EQ -> compare xs [y2,y3,y4]+ c -> c+ where+ y = fromIntegral ((w `shiftR` 48) .&. 0xffff) - 1+ y2 = fromIntegral ((w `shiftR` 32) .&. 0xffff) - 1+ y3 = fromIntegral ((w `shiftR` 16) .&. 0xffff) - 1+ y4 = fromIntegral (w .&. 0xffff) - 1++instance Show Version where+ showsPrec d v = showParen (d > 10)+ $ showString "mkVersion "+ . showsPrec 11 (versionNumbers v)++instance Read Version where+ readPrec = Read.parens $ do+ Read.Ident "mkVersion" <- Read.lexP+ v <- Read.step Read.readPrec+ return (mkVersion v)++instance Binary Version++instance NFData Version where+ rnf (PV0 _) = ()+ rnf (PV1 _ ns) = rnf ns++instance Text Version where+ disp ver+ = Disp.hcat (Disp.punctuate (Disp.char '.')+ (map Disp.int $ versionNumbers ver))++ parse = do+ branch <- Parse.sepBy1 parseNat (Parse.char '.')+ -- allow but ignore tags:+ _tags <- Parse.many (Parse.char '-' >> Parse.munch1 isAlphaNum)+ return (mkVersion branch)+ where+ parseNat = read `fmap` Parse.munch1 isDigit++-- | Construct 'Version' from list of version number components.+--+-- For instance, @mkVersion [3,2,1]@ constructs a 'Version'+-- representing the version @3.2.1@.+--+-- All version components must be non-negative. @mkVersion []@+-- currently represents the special /null/ version; see also 'nullVersion'.+--+-- @since 2.0+mkVersion :: [Int] -> Version+-- TODO: add validity check; disallow 'mkVersion []' (we have+-- 'nullVersion' for that)+mkVersion [] = nullVersion+mkVersion (v1:[])+ | inWord16VerRep1 v1 = PV0 (mkWord64VerRep1 v1)+ | otherwise = PV1 v1 []+ where+ inWord16VerRep1 x1 = inWord16 (x1 .|. (x1+1))+ mkWord64VerRep1 y1 = mkWord64VerRep (y1+1) 0 0 0++mkVersion (v1:vs@(v2:[]))+ | inWord16VerRep2 v1 v2 = PV0 (mkWord64VerRep2 v1 v2)+ | otherwise = PV1 v1 vs+ where+ inWord16VerRep2 x1 x2 = inWord16 (x1 .|. (x1+1)+ .|. x2 .|. (x2+1))+ mkWord64VerRep2 y1 y2 = mkWord64VerRep (y1+1) (y2+1) 0 0++mkVersion (v1:vs@(v2:v3:[]))+ | inWord16VerRep3 v1 v2 v3 = PV0 (mkWord64VerRep3 v1 v2 v3)+ | otherwise = PV1 v1 vs+ where+ inWord16VerRep3 x1 x2 x3 = inWord16 (x1 .|. (x1+1)+ .|. x2 .|. (x2+1)+ .|. x3 .|. (x3+1))+ mkWord64VerRep3 y1 y2 y3 = mkWord64VerRep (y1+1) (y2+1) (y3+1) 0++mkVersion (v1:vs@(v2:v3:v4:[]))+ | inWord16VerRep4 v1 v2 v3 v4 = PV0 (mkWord64VerRep4 v1 v2 v3 v4)+ | otherwise = PV1 v1 vs+ where+ inWord16VerRep4 x1 x2 x3 x4 = inWord16 (x1 .|. (x1+1)+ .|. x2 .|. (x2+1)+ .|. x3 .|. (x3+1)+ .|. x4 .|. (x4+1))+ mkWord64VerRep4 y1 y2 y3 y4 = mkWord64VerRep (y1+1) (y2+1) (y3+1) (y4+1)++mkVersion (v1:vs) = PV1 v1 vs+++{-# INLINE mkWord64VerRep #-}+mkWord64VerRep :: Int -> Int -> Int -> Int -> Word64+mkWord64VerRep v1 v2 v3 v4 =+ (fromIntegral v1 `shiftL` 48)+ .|. (fromIntegral v2 `shiftL` 32)+ .|. (fromIntegral v3 `shiftL` 16)+ .|. fromIntegral v4++{-# INLINE inWord16 #-}+inWord16 :: Int -> Bool+inWord16 x = (fromIntegral x :: Word) <= 0xffff++-- | Variant of 'Version' which converts a "Data.Version" 'Version'+-- into Cabal's 'Version' type.+--+-- @since 2.0+mkVersion' :: Base.Version -> Version+mkVersion' = mkVersion . Base.versionBranch++-- | Unpack 'Version' into list of version number components.+--+-- This is the inverse to 'mkVersion', so the following holds:+--+-- > (versionNumbers . mkVersion) vs == vs+--+-- @since 2.0+versionNumbers :: Version -> [Int]+versionNumbers (PV1 n ns) = n:ns+versionNumbers (PV0 w)+ | v1 < 0 = []+ | v2 < 0 = [v1]+ | v3 < 0 = [v1,v2]+ | v4 < 0 = [v1,v2,v3]+ | otherwise = [v1,v2,v3,v4]+ where+ v1 = fromIntegral ((w `shiftR` 48) .&. 0xffff) - 1+ v2 = fromIntegral ((w `shiftR` 32) .&. 0xffff) - 1+ v3 = fromIntegral ((w `shiftR` 16) .&. 0xffff) - 1+ v4 = fromIntegral (w .&. 0xffff) - 1+++-- | Constant representing the special /null/ 'Version'+--+-- The 'nullVersion' compares (via 'Ord') as less than every proper+-- 'Version' value.+--+-- @since 2.0+nullVersion :: Version+-- TODO: at some point, 'mkVersion' may disallow creating /null/+-- 'Version's+nullVersion = PV0 0++-- | Apply function to list of version number components+--+-- > alterVersion f == mkVersion . f . versionNumbers+--+-- @since 2.0+alterVersion :: ([Int] -> [Int]) -> Version -> Version+alterVersion f = mkVersion . f . versionNumbers++-- internal helper+validVersion :: Version -> Bool+validVersion v = v /= nullVersion && all (>=0) (versionNumbers v)++-- BC++showVersion :: Version -> String+showVersion = display++-- ----------------------------------------------------------------------------- -- Version ranges -- Todo: maybe move this to Distribution.Package.Version?@@ -124,6 +303,7 @@ | LaterVersion Version -- > version (NB. not >=) | EarlierVersion Version -- < version | WildcardVersion Version -- == ver.* (same as >= ver && < ver+1)+ | MajorBoundVersion Version -- @^>= ver@ (same as >= ver && < MAJ(ver)+1) | UnionVersionRanges VersionRange VersionRange | IntersectVersionRanges VersionRange VersionRange | VersionRangeParens VersionRange -- just '(exp)' parentheses syntax@@ -131,23 +311,7 @@ instance Binary VersionRange -#if __GLASGOW_HASKELL__ < 707--- starting with ghc-7.7/base-4.7 this instance is provided in "Data.Data"-deriving instance Data Version-#endif--#if !(MIN_VERSION_binary_0_8_0)--- Deriving this instance from Generic gives trouble on GHC 7.2 because the--- Generic instance has to be standalone-derived. So, we hand-roll our own.--- We can't use a generic Binary instance on later versions because we must--- maintain compatibility between compiler versions.-instance Binary Version where- get = do- br <- get- tags <- get- return $ Version br tags- put (Version br tags) = put br >> put tags-#endif+instance NFData VersionRange where rnf = genericRnf {-# DeprecateD AnyVersion "Use 'anyVersion', 'foldVersionRange' or 'asVersionIntervals'" #-}@@ -181,7 +345,7 @@ -- noVersion :: VersionRange noVersion = IntersectVersionRanges (LaterVersion v) (EarlierVersion v)- where v = Version [1] []+ where v = mkVersion [1] -- | The version range @== v@ --@@ -273,8 +437,17 @@ withinVersion :: Version -> VersionRange withinVersion = WildcardVersion --- | The version range @>= v1 && <= v2@.+-- | The version range @^>= v@. --+-- For example, for version @1.2.3.4@, the version range @^>= 1.2.3.4@ is the same as+-- @>= 1.2.3.4 && < 1.3@.+--+-- Note that @^>= 1@ is equivalent to @>= 1 && < 1.1@.+--+-- @since 2.0@+majorBoundVersion :: Version -> VersionRange+majorBoundVersion = MajorBoundVersion+ -- In practice this is not very useful because we normally use inclusive lower -- bounds and exclusive upper bounds. --@@ -299,6 +472,18 @@ relaxLastInterval' [(l,_)] = [(l, NoUpperBound)] relaxLastInterval' (i:is) = i : relaxLastInterval' is +-- | Given a version range, remove the lowest lower bound.+-- Example: @(>= 1 && < 3) || (>= 4 && < 5)@ is converted to+-- @(>= 0 && < 3) || (>= 4 && < 5)@.+removeLowerBound :: VersionRange -> VersionRange+removeLowerBound = fromVersionIntervals . relaxHeadInterval . toVersionIntervals+ where+ relaxHeadInterval (VersionIntervals intervals) =+ VersionIntervals (relaxHeadInterval' intervals)++ relaxHeadInterval' [] = []+ relaxHeadInterval' ((_,u):is) = (minLowerBound,u) : is+ -- | Fold over the basic syntactic structure of a 'VersionRange'. -- -- This provides a syntactic view of the expression defining the version range.@@ -321,6 +506,7 @@ fold (LaterVersion v) = later v fold (EarlierVersion v) = earlier v fold (WildcardVersion v) = fold (wildcard v)+ fold (MajorBoundVersion v) = fold (majorBound v) fold (UnionVersionRanges v1 v2) = union (fold v1) (fold v2) fold (IntersectVersionRanges v1 v2) = intersect (fold v1) (fold v2) fold (VersionRangeParens v) = fold v@@ -329,6 +515,10 @@ (orLaterVersion v) (earlierVersion (wildcardUpperBound v)) + majorBound v = intersectVersionRanges+ (orLaterVersion v)+ (earlierVersion (majorUpperBound v))+ -- | An extended variant of 'foldVersionRange' that also provides a view of the -- expression in which the syntactic sugar @\">= v\"@, @\"<= v\"@ and @\"== -- v.*\"@ is presented explicitly rather than in terms of the other basic@@ -345,12 +535,18 @@ -- inclusive lower bound and the -- exclusive upper bounds of the -- range defined by the wildcard.+ -> (Version -> Version -> a) -- ^ @\"^>= v\"@ major upper bound+ -- The function is passed the+ -- inclusive lower bound and the+ -- exclusive major upper bounds+ -- of the range defined by this+ -- operator. -> (a -> a -> a) -- ^ @\"_ || _\"@ union -> (a -> a -> a) -- ^ @\"_ && _\"@ intersection -> (a -> a) -- ^ @\"(_)\"@ parentheses -> VersionRange -> a foldVersionRange' anyv this later earlier orLater orEarlier- wildcard union intersect parens = fold+ wildcard major union intersect parens = fold where fold AnyVersion = anyv fold (ThisVersion v) = this v@@ -367,6 +563,7 @@ (ThisVersion v')) | v==v' = orEarlier v fold (WildcardVersion v) = wildcard v (wildcardUpperBound v)+ fold (MajorBoundVersion v) = major v (majorUpperBound v) fold (UnionVersionRanges v1 v2) = union (fold v1) (fold v2) fold (IntersectVersionRanges v1 v2) = intersect (fold v1) (fold v2) fold (VersionRangeParens v) = parens (fold v)@@ -379,9 +576,9 @@ withinRange :: Version -> VersionRange -> Bool withinRange v = foldVersionRange True- (\v' -> versionBranch v == versionBranch v')- (\v' -> versionBranch v > versionBranch v')- (\v' -> versionBranch v < versionBranch v')+ (\v' -> v == v')+ (\v' -> v > v')+ (\v' -> v < v') (||) (&&) @@ -478,16 +675,25 @@ -- wildcardUpperBound :: Version -> Version-wildcardUpperBound (Version lowerBound ts) = Version upperBound ts- where- upperBound = init lowerBound ++ [last lowerBound + 1]+wildcardUpperBound = alterVersion $+ \lowerBound -> init lowerBound ++ [last lowerBound + 1] isWildcardRange :: Version -> Version -> Bool-isWildcardRange (Version branch1 _) (Version branch2 _) = check branch1 branch2+isWildcardRange ver1 ver2 = check (versionNumbers ver1) (versionNumbers ver2) where check (n:[]) (m:[]) | n+1 == m = True check (n:ns) (m:ms) | n == m = check ns ms check _ _ = False +-- | Compute next greater major version to be used as upper bound+--+-- Example: @0.4.1@ produces the version @0.5@ which then can be used+-- to construct a range @>= 0.4.1 && < 0.5@+majorUpperBound :: Version -> Version+majorUpperBound = alterVersion $ \numbers -> case numbers of+ [] -> [0,1] -- should not happen+ [m1] -> [m1,1] -- e.g. version '1'+ (m1:m2:_) -> [m1,m2+1]+ ------------------ -- Intervals view --@@ -518,11 +724,10 @@ data Bound = ExclusiveBound | InclusiveBound deriving (Eq, Show) minLowerBound :: LowerBound-minLowerBound = LowerBound (Version [0] []) InclusiveBound+minLowerBound = LowerBound (mkVersion [0]) InclusiveBound isVersion0 :: Version -> Bool-isVersion0 (Version [0] _) = True-isVersion0 _ = False+isVersion0 = (== mkVersion [0]) instance Ord LowerBound where LowerBound ver bound <= LowerBound ver' bound' = case compare ver ver' of@@ -564,10 +769,6 @@ | invariant (VersionIntervals intervals) = Just (VersionIntervals intervals) | otherwise = Nothing -validVersion :: Version -> Bool-validVersion (Version [] _) = False-validVersion (Version vs _) = all (>=0) vs- validInterval :: (LowerBound, UpperBound) -> Bool validInterval i@(l, u) = validLower l && validUpper u && nonEmpty i where@@ -773,7 +974,7 @@ invertBound InclusiveBound = ExclusiveBound noLowerBound :: LowerBound- noLowerBound = LowerBound (Version [0] []) InclusiveBound+ noLowerBound = LowerBound (mkVersion [0]) InclusiveBound ------------------------------- -- Parsing and pretty printing@@ -783,21 +984,23 @@ disp = fst . foldVersionRange' -- precedence: ( Disp.text "-any" , 0 :: Int)- (\v -> (Disp.text "==" <> disp v , 0))- (\v -> (Disp.char '>' <> disp v , 0))- (\v -> (Disp.char '<' <> disp v , 0))- (\v -> (Disp.text ">=" <> disp v , 0))- (\v -> (Disp.text "<=" <> disp v , 0))- (\v _ -> (Disp.text "==" <> dispWild v , 0))+ (\v -> (Disp.text "==" <<>> disp v , 0))+ (\v -> (Disp.char '>' <<>> disp v , 0))+ (\v -> (Disp.char '<' <<>> disp v , 0))+ (\v -> (Disp.text ">=" <<>> disp v , 0))+ (\v -> (Disp.text "<=" <<>> disp v , 0))+ (\v _ -> (Disp.text "==" <<>> dispWild v , 0))+ (\v _ -> (Disp.text "^>=" <<>> disp v , 0)) (\(r1, p1) (r2, p2) -> (punct 2 p1 r1 <+> Disp.text "||" <+> punct 2 p2 r2 , 2)) (\(r1, p1) (r2, p2) -> (punct 1 p1 r1 <+> Disp.text "&&" <+> punct 1 p2 r2 , 1)) (\(r, _) -> (Disp.parens r, 0)) - where dispWild (Version b _) =- Disp.hcat (Disp.punctuate (Disp.char '.') (map Disp.int b))- <> Disp.text ".*"+ where dispWild ver =+ Disp.hcat (Disp.punctuate (Disp.char '.')+ (map Disp.int $ versionNumbers ver))+ <<>> Disp.text ".*" punct p p' | p < p' = Disp.parens | otherwise = id @@ -834,7 +1037,7 @@ branch <- Parse.sepBy1 digits (Parse.char '.') _ <- Parse.char '.' _ <- Parse.char '*'- return (WildcardVersion (Version branch []))+ return (WildcardVersion (mkVersion branch)) parens p = Parse.between (Parse.char '(' >> Parse.skipSpaces) (Parse.char ')' >> Parse.skipSpaces)@@ -843,17 +1046,18 @@ return (VersionRangeParens a)) digits = do- first <- Parse.satisfy Char.isDigit- if first == '0'+ firstDigit <- Parse.satisfy isDigit+ if firstDigit == '0' then return 0- else do rest <- Parse.munch Char.isDigit- return (read (first : rest))+ else do rest <- Parse.munch isDigit+ return (read (firstDigit : rest)) -- TODO: eradicateNoParse parseRangeOp (s,f) = Parse.string s >> Parse.skipSpaces >> fmap f parse rangeOps = [ ("<", EarlierVersion), ("<=", orEarlierVersion), (">", LaterVersion), (">=", orLaterVersion),+ ("^>=", MajorBoundVersion), ("==", ThisVersion) ] -- | Does the version range have an upper bound?
LICENSE view
@@ -1,8 +1,5 @@-Copyright (c) 2003-2014, Isaac Jones, Simon Marlow, Martin Sjögren,- Bjorn Bringert, Krasimir Angelov,- Malcolm Wallace, Ross Patterson, Ian Lynagh,- Duncan Coutts, Thomas Schilling,- Johan Tibell, Mikhail Glushenkov+Copyright (c) 2003-2017, Cabal Development Team.+See the AUTHORS file for the full list of copyright holders. All rights reserved. Redistribution and use in source and binary forms, with or without
Language/Haskell/Extension.hs view
@@ -15,23 +15,23 @@ module Language.Haskell.Extension ( Language(..), knownLanguages,+ classifyLanguage, Extension(..), KnownExtension(..), knownExtensions,- deprecatedExtensions+ deprecatedExtensions,+ classifyExtension, ) where +import Prelude ()+import Distribution.Compat.Prelude+ import Distribution.Text import qualified Distribution.Compat.ReadP as Parse-import Distribution.Compat.Binary import qualified Text.PrettyPrint as Disp-import qualified Data.Char as Char (isAlphaNum) import Data.Array (Array, accumArray, bounds, Ix(inRange), (!))-import Data.Data (Data)-import Data.Typeable (Typeable)-import GHC.Generics (Generic) -- ------------------------------------------------------------ -- * Language@@ -66,7 +66,7 @@ disp other = Disp.text (show other) parse = do- lang <- Parse.munch1 Char.isAlphaNum+ lang <- Parse.munch1 isAlphaNum return (classifyLanguage lang) classifyLanguage :: String -> Language@@ -417,7 +417,7 @@ -- | Allow default instantiation of polymorphic types in more -- situations. --- -- * <http://www.haskell.org/ghc/docs/latest/html/users_guide/interactive-evaluation.html#extended-default-rules>+ -- * <http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html#type-defaulting-in-ghci> | ExtendedDefaultRules -- | Enable unboxed tuples.@@ -766,6 +766,10 @@ -- | Allows use of the @#label@ syntax. | OverloadedLabels + -- | Allow functional dependency annotations on type families to declare them+ -- as injective.+ | TypeFamilyDependencies+ deriving (Generic, Show, Read, Eq, Ord, Enum, Bounded, Typeable, Data) instance Binary KnownExtension@@ -796,14 +800,14 @@ disp (DisableExtension ke) = Disp.text ("No" ++ show ke) parse = do- extension <- Parse.munch1 Char.isAlphaNum+ extension <- Parse.munch1 isAlphaNum return (classifyExtension extension) instance Text KnownExtension where disp ke = Disp.text (show ke) parse = do- extension <- Parse.munch1 Char.isAlphaNum+ extension <- Parse.munch1 isAlphaNum case classifyKnownExtension extension of Just ke -> return ke
changelog view
@@ -1,27 +1,135 @@ -*-change-log-*--1.24.2.0 Mikhail Glushenkov <mikhail.glushenkov@gmail.com> December 2016- * Fixed a bug in the handling of non-buildable components (#4094).- * Reverted a PVP-noncompliant API change in 1.24.1.0 (#4123).- * Bumped the directory upper bound to < 1.4 (#4158). -1.24.1.0 Ryan Thomas <ryan@ryant.org> October 2016- * API addition: 'differenceVersionRanges' (#3519).- * Fixed reexported-modules display mangling (#3928).- * Check that the correct cabal-version is specified when the- extra-doc-files field is present (#3825).- * Fixed an incorrect invocation of GetShortPathName that was- causing build failures on Windows (#3649).- * Linker flags are now set correctly on GHC >= 7.8 (#3443).+2.0.0.2 Mikhail Glushenkov <mikhail.glushenkov@gmail.com> July 2017+ * The 2.0 migration guide gives advice on adapting Custom setup+ scripts to backwards-incompatible changes in this release:+ https://github.com/haskell/cabal/wiki/2.0-migration-guide+ * Add CURRENT_PACKAGE_VERSION to cabal_macros.h (#4319)+ * Dropped support for versions of GHC earlier than 6.12 (#3111).+ * GHC compatibility window for the Cabal library has been extended+ to five years (#3838).+ * Convenience/internal libraries are now supported (#269).+ An internal library is declared using the stanza "library+ 'libname'". Packages which use internal libraries can+ result in multiple registrations; thus '--gen-pkg-config'+ can now output a directory of registration scripts rather than+ a single file.+ * Backwards incompatible change to preprocessor interface:+ the function in 'PPSuffixHandler' now takes an additional+ 'ComponentLocalBuildInfo' specifying the build information+ of the component being preprocessed.+ * Backwards incompatible change to 'cabal_macros.h' (#1893): we now+ generate a macro file for each component which contains only+ information about the direct dependencies of that component.+ Consequently, 'dist/build/autogen/cabal_macros.h' contains+ only the macros for the library, and is not generated if a+ package has no library; to find the macros for an executable+ named 'foobar', look in 'dist/build/foobar/autogen/cabal_macros.h'.+ Similarly, if you used 'autogenModulesDir' you should now+ use 'autogenComponentModulesDir', which now requires a+ 'ComponentLocalBuildInfo' argument as well in order to+ disambiguate which component the autogenerated files are for.+ * Backwards incompatible change to 'Component': 'TestSuite' and+ 'Benchmark' no longer have 'testEnabled' and+ 'benchmarkEnabled'. If you used+ 'enabledTests' or 'enabledBenchmarks', please instead use+ 'enabledTestLBIs' and 'enabledBenchLBIs'+ (you will need a 'LocalBuildInfo' for these functions.)+ Additionally, the semantics of 'withTest' and 'withBench'+ have changed: they now iterate over all buildable+ such components, regardless of whether or not they have+ been enabled; if you only want enabled components,+ use 'withTestLBI' and 'withBenchLBI'.+ 'finalizePackageDescription' is deprecated:+ its replacement 'finalizePD' now takes an extra argument+ 'ComponentRequestedSpec' which specifies what components+ are to be enabled: use this instead of modifying the+ 'Component' in a 'GenericPackageDescription'. (As+ it's not possible now, 'finalizePackageDescription'+ will assume tests/benchmarks are disabled.)+ If you only need to test if a component is buildable+ (i.e., it is marked buildable in the Cabal file)+ use the new function 'componentBuildable'.+ * Backwards incompatible change to 'PackageName' (#3896):+ 'PackageName' is now opaque; conversion to/from 'String' now works+ via (old) 'unPackageName' and (new) 'mkPackageName' functions.+ * Backwards incompatible change to 'ComponentId' (#3917):+ 'ComponentId' is now opaque; conversion to/from 'String' now works+ via 'unComponentId' and 'mkComponentId' functions.+ * Backwards incompatible change to 'AbiHash' (#3921):+ 'AbiHash' is now opaque; conversion to/from 'String' now works+ via 'unAbiHash' and 'mkAbiHash' functions.+ * Backwards incompatible change to 'FlagName' (#4062):+ 'FlagName' is now opaque; conversion to/from 'String' now works+ via 'unFlagName' and 'mkFlagName' functions.+ * Backwards incompatible change to 'Version' (#3905):+ Version is now opaque; conversion to/from '[Int]' now works+ via 'versionNumbers' and 'mkVersion' functions.+ * Add support for `--allow-older` (dual to `--allow-newer`) (#3466)+ * Improved an error message for process output decoding errors+ (#3408).+ * 'getComponentLocalBuildInfo', 'withComponentsInBuildOrder'+ and 'componentsInBuildOrder' are deprecated in favor of a+ new interface in "Distribution.Types.LocalBuildInfo".+ * New 'autogen-modules' field. Modules that are built automatically at+ setup, like Paths_PACKAGENAME or others created with a build-type+ custom, appear on 'other-modules' for the Library, Executable,+ Test-Suite or Benchmark stanzas or also on 'exposed-modules' for+ libraries but are not really on the package when distributed. This+ makes commands like sdist fail because the file is not found, so with+ this new field modules that appear there are treated the same way as+ Paths_PACKAGENAME was and there is no need to create complex build+ hooks. Just add the module names on 'other-modules' and+ 'exposed-modules' as always and on the new 'autogen-modules' besides.+ (#3656).+ * New './Setup configure' flag '--cabal-file', allowing multiple+ .cabal files in a single directory (#3553). Primarily intended for+ internal use.+ * Macros in 'cabal_macros.h' are now ifndef'd, so that they+ don't cause an error if the macro is already defined. (#3041)+ * './Setup configure' now accepts a single argument specifying+ the component to be configured. The semantics of this mode+ of operation are described in+ <https://github.com/ghc-proposals/ghc-proposals/pull/4>+ * Internal 'build-tools' dependencies are now added to PATH+ upon invocation of GHC, so that they can be conveniently+ used via `-pgmF`. (#1541)+ * Add support for new caret-style version range operator `^>=` (#3705)+ * Verbosity `-v` now takes an extended format which allows+ specifying exactly what you want to be logged. The format is+ "[silent|normal|verbose|debug] flags", where flags is a space+ separated list of flags. At the moment, only the flags+ +callsite and +callstack are supported; these report the+ call site/stack of a logging output respectively (these+ are only supported if Cabal is built with GHC 8.0/7.10.2+ or greater, respectively).+ * New `Distribution.Utils.ShortText.ShortText` type for representing+ short text strings compactly (#3898)+ * Cabal no longer supports using a version bound to disambiguate+ between an internal and external package (#4020). This should+ not affect many people, as this mode of use already did not+ work with the dependency solver.+ * Support for "foreign libraries" (#2540), which are Haskell+ libraries intended to be used by foreign languages like C.+ Foreign libraries only work with GHC 7.8 and later.+ * Added a technical preview version of integrated doctest support (#4480).+ * Added a new 'scope' field to the executable stanza. Executables+ with 'scope: private' get installed into+ $libexecdir/$libexecsubdir. Additionally $libexecdir now has a+ subdir structure similar to $lib(sub)dir to allow installing+ private executables of different packages and package versions+ alongside one another. Private executables are those that are+ expected to be run by other programs rather than users. (#3461) -1.24.0.0 Ryan Thomas <ryan@ryant.org> May 2016+1.24.0.0 Ryan Thomas <ryan@ryant.org> March 2016 * Support GHC 8. * Deal with extra C sources from preprocessors (#238). * Include cabal_macros.h when running c2hs (#2600). * Don't recompile C sources unless needed (#2601).- * Read 'builddir' option from 'CABAL_BUILDDIR' environment variable+ * Read 'builddir' option from 'CABAL_BUILDDIR' environment variable. * Add '--profiling-detail=$level' flag with a default for libraries and executables of 'exported-functions' and 'toplevel-functions'- respetively (GHC's '-fprof-auto-{exported,top}' flags) (#193).+ respectively (GHC's '-fprof-auto-{exported,top}' flags) (#193). * New 'custom-setup' stanza to specify setup deps. Setup is also built with the cabal_macros.h style macros, for conditional compilation. * Support Haddock response files (#2746).@@ -40,6 +148,11 @@ as an argument to './Setup configure' (#3158). * Macros 'VERSION_$pkgname' and 'MIN_VERSION_$pkgname' are now also generated for the current package. (#3235).+ * Backpack is supported! Two new fields supported in Cabal+ files: signatures and mixins; and a new flag+ to setup scripts, '--instantiate-with'. See+ https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst+ for more details. 1.22.0.0 Johan Tibell <johan.tibell@gmail.com> January 2015 * Support GHC 7.10.
+ dist/build/Distribution/Parsec/Lexer.hs view
@@ -0,0 +1,491 @@+{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-missing-signatures #-}+{-# LANGUAGE CPP,MagicHash #-}+{-# LINE 1 "Distribution/Parsec/Lexer.x" #-}++-----------------------------------------------------------------------------+-- |+-- Module : Distribution.Parsec.Lexer+-- License : BSD3+--+-- Maintainer : cabal-devel@haskell.org+-- Portability : portable+--+-- Lexer for the cabal files.+{-# LANGUAGE CPP #-}+{-# LANGUAGE BangPatterns #-}+#ifdef CABAL_PARSEC_DEBUG+{-# LANGUAGE PatternGuards #-}+#endif+module Distribution.Parsec.Lexer+ (ltest, lexToken, Token(..), LToken(..)+ ,bol_section, in_section, in_field_layout, in_field_braces+ ,mkLexState) where++import Prelude ()+import qualified Prelude as Prelude+import Distribution.Compat.Prelude++import Distribution.Parsec.LexerMonad+import Distribution.Parsec.Types.Common (Position (..), incPos, retPos)+import Data.ByteString (ByteString)+import qualified Data.ByteString as B+import qualified Data.ByteString.Char8 as B.Char8+import qualified Data.Word as Word++#ifdef CABAL_PARSEC_DEBUG+import Debug.Trace+import qualified Data.Vector as V+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Encoding.Error as T+#endif+++#if __GLASGOW_HASKELL__ >= 603+#include "ghcconfig.h"+#elif defined(__GLASGOW_HASKELL__)+#include "config.h"+#endif+#if __GLASGOW_HASKELL__ >= 503+import Data.Array+import Data.Array.Base (unsafeAt)+#else+import Array+#endif+#if __GLASGOW_HASKELL__ >= 503+import GHC.Exts+#else+import GlaExts+#endif+alex_tab_size :: Int+alex_tab_size = 8+alex_base :: AlexAddr+alex_base = AlexA# "\x12\xff\xff\xff\xf9\xff\xff\xff\xfb\xff\xff\xff\x01\x00\x00\x00\xa4\x00\x00\x00\x90\x01\x00\x00\x7c\x02\x00\x00\x48\xff\xff\xff\xdc\xff\xff\xff\x1e\x00\x00\x00\x51\xff\xff\xff\x7b\x02\x00\x00\xfb\x02\x00\x00\x7b\x03\x00\x00\xfb\x03\x00\x00\x7b\x04\x00\x00\xfb\x04\x00\x00\x7b\x05\x00\x00\xfb\x05\x00\x00\x7b\x06\x00\x00\xfb\x06\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\xdd\x07\x00\x00\x00\x00\x00\x00\x4e\x08\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x00\x00\x00\x00\xbf\x08\x00\x00\x00\x00\x00\x00\x30\x09\x00\x00\x00\x00\x00\x00\x50\x01\x00\x00\x00\x00\x00\x00\x71\x09\x00\x00\x71\x0a\x00\x00\x31\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x0a\x00\x00\x00\x00\x00\x00\xb3\x0a\x00\x00\x6d\xff\xff\xff\xb3\x0b\x00\x00\x73\x0b\x00\x00\x00\x00\x00\x00\x73\x0c\x00\x00\x33\x0c\x00\x00\x00\x00\x00\x00\x13\x0d\x00\x00\xe8\x0d\x00\x00\xdd\x0e\x00\x00\xd2\x0c\x00\x00\x00\x00\x00\x00\x6f\xff\xff\xff\x5d\x0f\x00\x00\xa7\x0d\x00\x00\x00\x00\x00\x00\xd4\x0f\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\xe2\x0f\x00\x00\xd6\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\xce\x10\x00\x00\x9c\x11\x00\x00\x00\x00\x00\x00\xf7\x11\x00\x00\xc5\x12\x00\x00\x1f\x13\x00\x00\x7b\x13\x00\x00\xd7\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x0a\x00\x00\x00\x36\x14\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x0d\x00\x00\x00\x22\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00"#++alex_table :: AlexAddr+alex_table = AlexA# "\x00\x00\x0a\x00\x3c\x00\x3f\x00\x02\x00\x3f\x00\x40\x00\x3e\x00\x40\x00\x41\x00\x03\x00\x3f\x00\x07\x00\x3d\x00\x40\x00\x42\x00\x3f\x00\x52\x00\x45\x00\x54\x00\x00\x00\x56\x00\x58\x00\x00\x00\x5c\x00\x3c\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x08\x00\x45\x00\x54\x00\x00\x00\x00\x00\x58\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x00\x00\x00\x00\x00\x00\x43\x00\x09\x00\x44\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x3f\x00\x58\x00\x5c\x00\x40\x00\x00\x00\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x38\x00\x58\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x5a\x00\x59\x00\x5b\x00\x59\x00\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x00\x00\x2d\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2e\x00\x0e\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x22\x00\x13\x00\x17\x00\x17\x00\x17\x00\x18\x00\x54\x00\x56\x00\x00\x00\x00\x00\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x30\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x31\x00\x0d\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x24\x00\x12\x00\x19\x00\x19\x00\x19\x00\x1a\x00\x45\x00\x52\x00\x00\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x4d\x00\x34\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x09\x00\x4e\x00\x4e\x00\x4d\x00\x4d\x00\x4d\x00\x4b\x00\x4c\x00\x4d\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4f\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x4e\x00\x4d\x00\x4e\x00\x4d\x00\x09\x00\x00\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x50\x00\x4d\x00\x51\x00\x4d\x00\x39\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x35\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x30\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x2d\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x0b\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x0c\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x25\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x0d\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x0e\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x11\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\x34\x00\x49\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x33\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x25\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x26\x00\x11\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1c\x00\x14\x00\x15\x00\x15\x00\x15\x00\x16\x00\x34\x00\x34\x00\x48\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x33\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x25\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x26\x00\x11\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1c\x00\x14\x00\x15\x00\x15\x00\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3c\x00\x3f\x00\x42\x00\x3f\x00\x40\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3b\x00\x3a\x00\x0b\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2b\x00\x0f\x00\x1f\x00\x1f\x00\x1f\x00\x20\x00\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x37\x00\x36\x00\x0c\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x29\x00\x10\x00\x1d\x00\x1d\x00\x1d\x00\x1e\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x47\x00\x00\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x34\x00\x34\x00\x48\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x33\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x26\x00\x11\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1b\x00\x1c\x00\x14\x00\x15\x00\x15\x00\x15\x00\x16\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x4a\x00\x00\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x4d\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x09\x00\x00\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x46\x00\x4c\x00\x4d\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x00\x00\x4d\x00\x00\x00\x4d\x00\x09\x00\x00\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x09\x00\x00\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x4c\x00\x4c\x00\x4d\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x00\x00\x4d\x00\x00\x00\x4d\x00\x09\x00\x00\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x47\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x4d\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x31\x00\x0d\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x24\x00\x12\x00\x19\x00\x19\x00\x19\x00\x1a\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x00\x00\x59\x00\x00\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2f\x00\x2e\x00\x0e\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x22\x00\x13\x00\x17\x00\x17\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++alex_check :: AlexAddr+alex_check = AlexA# "\xff\xff\xef\x00\x09\x00\x0a\x00\x09\x00\x0a\x00\x0d\x00\xbf\x00\x0d\x00\x2d\x00\x09\x00\x0a\x00\xbb\x00\xa0\x00\x0d\x00\xa0\x00\x0a\x00\x0a\x00\x09\x00\x09\x00\xff\xff\x0a\x00\x09\x00\xff\xff\x0a\x00\x20\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x2d\x00\x20\x00\x20\x00\xff\xff\xff\xff\x20\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\x7b\x00\x5f\x00\x7d\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\x00\x09\x00\x0a\x00\x0d\x00\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xff\xff\xc2\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xc2\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xc2\x00\xff\xff\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xff\xff\xff\xff\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xff\xff\xff\xff\xff\xff\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xff\xff\xff\xff\xff\xff\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x09\x00\x0a\x00\x09\x00\x0a\x00\x0d\x00\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xff\xff\xc2\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\xff\xff\x7e\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#++alex_deflt :: AlexAddr+alex_deflt = AlexA# "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1b\x00\x1b\x00\x21\x00\x21\x00\x23\x00\x23\x00\x27\x00\x27\x00\x28\x00\x28\x00\x2a\x00\x2a\x00\x2f\x00\x2f\x00\x32\x00\x32\x00\x34\x00\x34\x00\x34\x00\x37\x00\x37\x00\x3b\x00\x3b\x00\xff\xff\x59\x00\x59\x00\x59\x00\x55\x00\x55\x00\x55\x00\xff\xff\xff\xff\x46\x00\x46\x00\x46\x00\xff\xff\x41\x00\x41\x00\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#++alex_accept = listArray (0::Int,93) [AlexAccSkip,AlexAcc (alex_action_22),AlexAcc (alex_action_18),AlexAcc (alex_action_4),AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAcc (alex_action_0),AlexAcc (alex_action_2),AlexAcc (alex_action_2),AlexAccSkip,AlexAcc (alex_action_4),AlexAcc (alex_action_5),AlexAcc (alex_action_6),AlexAccSkip,AlexAccSkip,AlexAcc (alex_action_9),AlexAcc (alex_action_10),AlexAcc (alex_action_10),AlexAcc (alex_action_11),AlexAcc (alex_action_12),AlexAcc (alex_action_12),AlexAcc (alex_action_12),AlexAcc (alex_action_13),AlexAcc (alex_action_14),AlexAcc (alex_action_15),AlexAcc (alex_action_16),AlexAcc (alex_action_17),AlexAcc (alex_action_17),AlexAccSkip,AlexAcc (alex_action_20),AlexAcc (alex_action_21),AlexAcc (alex_action_21),AlexAccSkip,AlexAcc (alex_action_24),AlexAcc (alex_action_25),AlexAcc (alex_action_26),AlexAcc (alex_action_27),AlexAcc (alex_action_27)]+{-# LINE 140 "Distribution/Parsec/Lexer.x" #-}+++-- | Tokens of outer cabal file structure. Field values are treated opaquely.+data Token = TokSym !ByteString -- ^ Haskell-like identifier+ | TokStr !String -- ^ String in quotes+ | TokNum !ByteString -- ^ Integral+ | TokOther !ByteString -- ^ Operator like token+ | Indent !Int -- ^ Indentation token+ | TokFieldLine !ByteString -- ^ Lines after @:@+ | Colon+ | OpenBrace+ | CloseBrace+ | EOF+ | LexicalError InputStream --TODO: add separate string lexical error+ deriving Show++data LToken = L !Position !Token+ deriving Show++toki :: Monad m => (ByteString -> Token) -> Position -> Int -> ByteString -> m LToken+toki t pos len input = return $! L pos (t (B.take len input))++tok :: Monad m => Token -> Position -> t -> t1 -> m LToken+tok t pos _len _input = return $! L pos t++checkWhitespace :: Int -> ByteString -> Lex ()+checkWhitespace len bs+ | B.any (== 194) (B.take len bs) =+ addWarning LexWarningNBSP "Non-breaking space found"+ | otherwise = return ()++-- -----------------------------------------------------------------------------+-- The input type++type AlexInput = InputStream++alexInputPrevChar :: AlexInput -> Char+alexInputPrevChar _ = error "alexInputPrevChar not used"++alexGetByte :: AlexInput -> Maybe (Word.Word8,AlexInput)+alexGetByte = B.uncons++lexicalError :: Position -> InputStream -> Lex LToken+lexicalError pos inp = do+ setInput B.empty+ return $! L pos (LexicalError inp)++lexToken :: Lex LToken+lexToken = do+ pos <- getPos+ inp <- getInput+ st <- getStartCode+ case alexScan inp st of+ AlexEOF -> return (L pos EOF)+ AlexError inp' ->+ let !len_bytes = B.length inp - B.length inp' in+ --FIXME: we want len_chars here really+ -- need to decode utf8 up to this point+ lexicalError (incPos len_bytes pos) inp'+ AlexSkip inp' len_chars -> do+ checkPosition pos inp inp' len_chars+ adjustPos (incPos len_chars)+ setInput inp'+ lexToken+ AlexToken inp' len_chars action -> do+ checkPosition pos inp inp' len_chars+ adjustPos (incPos len_chars)+ setInput inp'+ let !len_bytes = B.length inp - B.length inp'+ t <- action pos len_bytes inp+ --traceShow t $ return tok+ return t+++checkPosition :: Position -> ByteString -> ByteString -> Int -> Lex ()+#ifdef CABAL_PARSEC_DEBUG+checkPosition pos@(Position lineno colno) inp inp' len_chars = do+ text_lines <- getDbgText+ let len_bytes = B.length inp - B.length inp'+ pos_txt | lineno-1 < V.length text_lines = T.take len_chars (T.drop (colno-1) (text_lines V.! (lineno-1)))+ | otherwise = T.empty+ real_txt = B.take len_bytes inp+ when (pos_txt /= T.decodeUtf8 real_txt) $+ traceShow (pos, pos_txt, T.decodeUtf8 real_txt) $+ traceShow (take 3 (V.toList text_lines)) $ return ()+ where+ getDbgText = Lex $ \s@LexState{ dbgText = txt } -> LexResult s txt+#else+checkPosition _ _ _ _ = return ()+#endif++lexAll :: Lex [LToken]+lexAll = do+ t <- lexToken+ case t of+ L _ EOF -> return [t]+ _ -> do ts <- lexAll+ return (t : ts)++ltest :: Int -> String -> Prelude.IO ()+ltest code s =+ let (ws, xs) = execLexer (setStartCode code >> lexAll) (B.Char8.pack s)+ in traverse_ print ws >> traverse_ print xs+++mkLexState :: ByteString -> LexState+mkLexState input = LexState+ { curPos = Position 1 1+ , curInput = input+ , curCode = bol_section+ , warnings = []+#ifdef CABAL_PARSEC_DEBUG+ , dbgText = V.fromList . lines' . T.decodeUtf8With T.lenientDecode $ input+#endif+ }++#ifdef CABAL_PARSEC_DEBUG+lines' :: T.Text -> [T.Text]+lines' s1+ | T.null s1 = []+ | otherwise = case T.break (\c -> c == '\r' || c == '\n') s1 of+ (l, s2) | Just (c,s3) <- T.uncons s2+ -> case T.uncons s3 of+ Just ('\n', s4) | c == '\r' -> l `T.snoc` '\r' `T.snoc` '\n' : lines' s4+ _ -> l `T.snoc` c : lines' s3++ | otherwise+ -> [l]+#endif+++bol_field_braces,bol_field_layout,bol_section,in_field_braces,in_field_layout,in_section :: Int+bol_field_braces = 1+bol_field_layout = 2+bol_section = 3+in_field_braces = 4+in_field_layout = 5+in_section = 6+alex_action_0 = \_ _ _ -> addWarning LexWarningBOM "Byte-order mark found at the beginning of the file" >> lexToken +alex_action_2 = \_pos len inp -> checkWhitespace len inp >> adjustPos retPos >> lexToken +alex_action_4 = \pos len inp -> checkWhitespace len inp >>+ if B.length inp == len+ then return (L pos EOF)+ else setStartCode in_section+ >> return (L pos (Indent len)) +alex_action_5 = tok OpenBrace +alex_action_6 = tok CloseBrace +alex_action_9 = toki TokSym +alex_action_10 = \p l i -> case reads (B.Char8.unpack (B.take l i)) of+ [(str,[])] -> return (L p (TokStr str))+ _ -> lexicalError p i +alex_action_11 = toki TokNum +alex_action_12 = toki TokOther +alex_action_13 = toki TokOther +alex_action_14 = tok Colon +alex_action_15 = tok OpenBrace +alex_action_16 = tok CloseBrace +alex_action_17 = \_ _ _ -> adjustPos retPos >> setStartCode bol_section >> lexToken +alex_action_18 = \pos len inp -> if B.length inp == len+ then return (L pos EOF)+ else setStartCode in_field_layout+ >> return (L pos (Indent len)) +alex_action_20 = toki TokFieldLine +alex_action_21 = \_ _ _ -> adjustPos retPos >> setStartCode bol_field_layout >> lexToken +alex_action_22 = \_ _ _ -> setStartCode in_field_braces >> lexToken +alex_action_24 = toki TokFieldLine +alex_action_25 = tok OpenBrace +alex_action_26 = tok CloseBrace +alex_action_27 = \_ _ _ -> adjustPos retPos >> setStartCode bol_field_braces >> lexToken +{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "<built-in>" #-}+{-# LINE 1 "<command-line>" #-}+{-# LINE 10 "<command-line>" #-}+# 1 "/usr/include/stdc-predef.h" 1 3 4++# 17 "/usr/include/stdc-predef.h" 3 4++++++++++++++++++++++++++++++++++++++++++++{-# LINE 10 "<command-line>" #-}+{-# LINE 1 "/opt/ghc/7.10.3/lib/ghc-7.10.3/include/ghcversion.h" #-}++++++++++++++++++{-# LINE 10 "<command-line>" #-}+{-# LINE 1 "templates/GenericTemplate.hs" #-}+-- -----------------------------------------------------------------------------+-- ALEX TEMPLATE+--+-- This code is in the PUBLIC DOMAIN; you may copy it freely and use+-- it for any purpose whatsoever.++-- -----------------------------------------------------------------------------+-- INTERNALS and main scanner engine++{-# LINE 21 "templates/GenericTemplate.hs" #-}++++++-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.+#if __GLASGOW_HASKELL__ > 706+#define GTE(n,m) (tagToEnum# (n >=# m))+#define EQ(n,m) (tagToEnum# (n ==# m))+#else+#define GTE(n,m) (n >=# m)+#define EQ(n,m) (n ==# m)+#endif+{-# LINE 51 "templates/GenericTemplate.hs" #-}+++data AlexAddr = AlexA# Addr#+-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.+#if __GLASGOW_HASKELL__ < 503+uncheckedShiftL# = shiftL#+#endif++{-# INLINE alexIndexInt16OffAddr #-}+alexIndexInt16OffAddr (AlexA# arr) off =+#ifdef WORDS_BIGENDIAN+ narrow16Int# i+ where+ i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)+ high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))+ low = int2Word# (ord# (indexCharOffAddr# arr off'))+ off' = off *# 2#+#else+ indexInt16OffAddr# arr off+#endif++++++{-# INLINE alexIndexInt32OffAddr #-}+alexIndexInt32OffAddr (AlexA# arr) off = +#ifdef WORDS_BIGENDIAN+ narrow32Int# i+ where+ i = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#`+ (b2 `uncheckedShiftL#` 16#) `or#`+ (b1 `uncheckedShiftL#` 8#) `or#` b0)+ b3 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))+ b2 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))+ b1 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))+ b0 = int2Word# (ord# (indexCharOffAddr# arr off'))+ off' = off *# 4#+#else+ indexInt32OffAddr# arr off+#endif+++++++#if __GLASGOW_HASKELL__ < 503+quickIndex arr i = arr ! i+#else+-- GHC >= 503, unsafeAt is available from Data.Array.Base.+quickIndex = unsafeAt+#endif+++++-- -----------------------------------------------------------------------------+-- Main lexing routines++data AlexReturn a+ = AlexEOF+ | AlexError !AlexInput+ | AlexSkip !AlexInput !Int+ | AlexToken !AlexInput !Int a++-- alexScan :: AlexInput -> StartCode -> AlexReturn a+alexScan input (I# (sc))+ = alexScanUser undefined input (I# (sc))++alexScanUser user input (I# (sc))+ = case alex_scan_tkn user input 0# input sc AlexNone of+ (AlexNone, input') ->+ case alexGetByte input of+ Nothing -> ++++ AlexEOF+ Just _ ->++++ AlexError input'++ (AlexLastSkip input'' len, _) ->++++ AlexSkip input'' len++ (AlexLastAcc k input''' len, _) ->++++ AlexToken input''' len k+++-- Push the input through the DFA, remembering the most recent accepting+-- state it encountered.++alex_scan_tkn user orig_input len input s last_acc =+ input `seq` -- strict in the input+ let + new_acc = (check_accs (alex_accept `quickIndex` (I# (s))))+ in+ new_acc `seq`+ case alexGetByte input of+ Nothing -> (new_acc, input)+ Just (c, new_input) -> ++++ case fromIntegral c of { (I# (ord_c)) ->+ let+ base = alexIndexInt32OffAddr alex_base s+ offset = (base +# ord_c)+ check = alexIndexInt16OffAddr alex_check offset+ + new_s = if GTE(offset,0#) && EQ(check,ord_c)+ then alexIndexInt16OffAddr alex_table offset+ else alexIndexInt16OffAddr alex_deflt s+ in+ case new_s of+ -1# -> (new_acc, input)+ -- on an error, we want to keep the input *before* the+ -- character that failed, not after.+ _ -> alex_scan_tkn user orig_input (if c < 0x80 || c >= 0xC0 then (len +# 1#) else len)+ -- note that the length is increased ONLY if this is the 1st byte in a char encoding)+ new_input new_s new_acc+ }+ where+ check_accs (AlexAccNone) = last_acc+ check_accs (AlexAcc a ) = AlexLastAcc a input (I# (len))+ check_accs (AlexAccSkip) = AlexLastSkip input (I# (len))+{-# LINE 198 "templates/GenericTemplate.hs" #-}++data AlexLastAcc a+ = AlexNone+ | AlexLastAcc a !AlexInput !Int+ | AlexLastSkip !AlexInput !Int++instance Functor AlexLastAcc where+ fmap _ AlexNone = AlexNone+ fmap f (AlexLastAcc x y z) = AlexLastAcc (f x) y z+ fmap _ (AlexLastSkip x y) = AlexLastSkip x y++data AlexAcc a user+ = AlexAccNone+ | AlexAcc a+ | AlexAccSkip
+ doc/API/Cabal/Cabal.haddock view
binary file changed (absent → 1113218 bytes)
+ doc/API/Cabal/Distribution-Backpack-ComponentsGraph.html view
@@ -0,0 +1,11 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Backpack.ComponentsGraph</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack.ComponentsGraph</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>See <a href="https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst">https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst</a></p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:ComponentsGraph">ComponentsGraph</a> = <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="Distribution-Types-Component.html#t:Component">Component</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:ComponentsWithDeps">ComponentsWithDeps</a> = [(<a href="Distribution-Types-Component.html#t:Component">Component</a>, [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>])]</li><li class="src short"><a href="#v:mkComponentsGraph">mkComponentsGraph</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>] <a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsGraph">ComponentsGraph</a></li><li class="src short"><a href="#v:componentsGraphToList">componentsGraphToList</a> :: <a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsGraph">ComponentsGraph</a> -> <a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsWithDeps">ComponentsWithDeps</a></li><li class="src short"><a href="#v:dispComponentsWithDeps">dispComponentsWithDeps</a> :: <a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsWithDeps">ComponentsWithDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:componentCycleMsg">componentCycleMsg</a> :: [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ComponentsGraph" class="def">ComponentsGraph</a> = <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="Distribution-Types-Component.html#t:Component">Component</a>) <a href="#t:ComponentsGraph" class="selflink">#</a></p><div class="doc"><p>A graph of source-level components by their source-level+ dependencies</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ComponentsWithDeps" class="def">ComponentsWithDeps</a> = [(<a href="Distribution-Types-Component.html#t:Component">Component</a>, [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>])] <a href="#t:ComponentsWithDeps" class="selflink">#</a></p><div class="doc"><p>A list of components associated with the source level+ dependencies between them.</p></div></div><div class="top"><p class="src"><a id="v:mkComponentsGraph" class="def">mkComponentsGraph</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>] <a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsGraph">ComponentsGraph</a> <a href="#v:mkComponentsGraph" class="selflink">#</a></p><div class="doc"><p>Create a <code><a href="Distribution-Compat-Graph.html#t:Graph">Graph</a></code> of <code><a href="Distribution-Types-Component.html#t:Component">Component</a></code>, or report a cycle if there is a+ problem.</p></div></div><div class="top"><p class="src"><a id="v:componentsGraphToList" class="def">componentsGraphToList</a> :: <a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsGraph">ComponentsGraph</a> -> <a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsWithDeps">ComponentsWithDeps</a> <a href="#v:componentsGraphToList" class="selflink">#</a></p><div class="doc"><p>Given the package description and a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code> (used+ to determine if a package name is internal or not), sort the+ components in dependency order (fewest dependencies first). This is+ NOT necessarily the build order (although it is in the absence of+ Backpack.)</p></div></div><div class="top"><p class="src"><a id="v:dispComponentsWithDeps" class="def">dispComponentsWithDeps</a> :: <a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsWithDeps">ComponentsWithDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:dispComponentsWithDeps" class="selflink">#</a></p><div class="doc"><p>Pretty-print <code><a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsWithDeps">ComponentsWithDeps</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:componentCycleMsg" class="def">componentCycleMsg</a> :: [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:componentCycleMsg" class="selflink">#</a></p><div class="doc"><p>Error message when there is a cycle; takes the SCC of components.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Backpack-Configure.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Backpack.Configure</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack.Configure</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>See <a href="https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst">https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst</a></p><p>WARNING: The contents of this module are HIGHLY experimental.+ We may refactor it under you.</p></div></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:configureComponentLocalBuildInfos" class="def">configureComponentLocalBuildInfos</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [PreExistingComponent] -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a> -> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Types-Module.html#t:Module">Module</a>)] -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> ([<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>], <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a>) <a href="#v:configureComponentLocalBuildInfos" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Backpack-ConfiguredComponent.html view
@@ -0,0 +1,16 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Backpack.ConfiguredComponent</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack.ConfiguredComponent</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>See <a href="https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst">https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst</a></p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ConfiguredComponent">ConfiguredComponent</a> = <a href="#v:ConfiguredComponent">ConfiguredComponent</a> {<ul class="subs"><li><a href="#v:cc_ann_id">cc_ann_id</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:cc_component">cc_component</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a></li><li><a href="#v:cc_public">cc_public</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:cc_exe_deps">cc_exe_deps</a> :: [<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>]</li><li><a href="#v:cc_includes">cc_includes</a> :: [<a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a>]</li></ul>}</li><li class="src short"><a href="#v:cc_name">cc_name</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li class="src short"><a href="#v:cc_cid">cc_cid</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li class="src short"><a href="#v:cc_pkgid">cc_pkgid</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></li><li class="src short"><a href="#v:toConfiguredComponent">toConfiguredComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">ConfiguredComponentMap</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a></li><li class="src short"><a href="#v:toConfiguredComponents">toConfiguredComponents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">ConfiguredComponentMap</a> -> [<a href="Distribution-Types-Component.html#t:Component">Component</a>] -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> [<a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a>]</li><li class="src short"><a href="#v:dispConfiguredComponent">dispConfiguredComponent</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ConfiguredComponentMap">ConfiguredComponentMap</a> = <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> (<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>))</li><li class="src short"><a href="#v:extendConfiguredComponentMap">extendConfiguredComponentMap</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">ConfiguredComponentMap</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">ConfiguredComponentMap</a></li><li class="src short"><a href="#v:newPackageDepsBehaviour">newPackageDepsBehaviour</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ConfiguredComponent" class="def">ConfiguredComponent</a> <a href="#t:ConfiguredComponent" class="selflink">#</a></p><div class="doc"><p>A configured component, we know exactly what its <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> is,+ and the <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code>s of the things it depends on.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ConfiguredComponent" class="def">ConfiguredComponent</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:cc_ann_id" class="def">cc_ann_id</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>Unique identifier of component, plus extra useful info.</p></div></li><li><dfn class="src"><a id="v:cc_component" class="def">cc_component</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a></dfn><div class="doc"><p>The fragment of syntax from the Cabal file describing this+ component.</p></div></li><li><dfn class="src"><a id="v:cc_public" class="def">cc_public</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Is this the public library component of the package?+ (If we invoke Setup with an instantiation, this is the+ component the instantiation applies to.)+ Note that in one-component configure mode, this is+ always True, because any component is the "public" one.)</p></div></li><li><dfn class="src"><a id="v:cc_exe_deps" class="def">cc_exe_deps</a> :: [<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>]</dfn><div class="doc"><p>Dependencies on executables from <code>build-tools</code> and+ <code>build-tool-depends</code>.</p></div></li><li><dfn class="src"><a id="v:cc_includes" class="def">cc_includes</a> :: [<a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a>]</dfn><div class="doc"><p>The mixins of this package, including both explicit (from+ the <code>mixins</code> field) and implicit (from <code>build-depends</code>). Not+ mix-in linked yet; component configuration only looks at+ <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code>s.</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:cc_name" class="def">cc_name</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:cc_name" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></code> of a component; this uniquely identifies+ a fragment of syntax within a specified Cabal file describing the+ component.</p></div></div><div class="top"><p class="src"><a id="v:cc_cid" class="def">cc_cid</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:cc_cid" class="selflink">#</a></p><div class="doc"><p>Uniquely identifies a configured component.</p></div></div><div class="top"><p class="src"><a id="v:cc_pkgid" class="def">cc_pkgid</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> <a href="#v:cc_pkgid" class="selflink">#</a></p><div class="doc"><p>The package this component came from.</p></div></div><div class="top"><p class="src"><a id="v:toConfiguredComponent" class="def">toConfiguredComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">ConfiguredComponentMap</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> <a href="#v:toConfiguredComponent" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:toConfiguredComponents" class="def">toConfiguredComponents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">ConfiguredComponentMap</a> -> [<a href="Distribution-Types-Component.html#t:Component">Component</a>] -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> [<a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a>] <a href="#v:toConfiguredComponents" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:dispConfiguredComponent" class="def">dispConfiguredComponent</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:dispConfiguredComponent" class="selflink">#</a></p><div class="doc"><p>Pretty-print a <code><a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ConfiguredComponentMap" class="def">ConfiguredComponentMap</a> = <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> (<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) <a href="#t:ConfiguredComponentMap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extendConfiguredComponentMap" class="def">extendConfiguredComponentMap</a> :: <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">ConfiguredComponentMap</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">ConfiguredComponentMap</a> <a href="#v:extendConfiguredComponentMap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newPackageDepsBehaviour" class="def">newPackageDepsBehaviour</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:newPackageDepsBehaviour" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Backpack-DescribeUnitId.html view
@@ -0,0 +1,8 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Backpack.DescribeUnitId</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack.DescribeUnitId</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:setupMessage-39-">setupMessage'</a> :: <a href="Distribution-Text.html#t:Text">Text</a> a => <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, a)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:setupMessage-39-" class="def">setupMessage'</a> <a href="#v:setupMessage-39-" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Text.html#t:Text">Text</a> a</td><td class="doc empty"> </td></tr><tr><td class="src">=> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Operation being done (capitalized), on:</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></td><td class="doc"><p>Package</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></td><td class="doc"><p>Component name</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, a)]</td><td class="doc"><p>Instantiation, if available.+ Polymorphic to take+ <code>OpenModule</code> or <code>Module</code></p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Print a Setup message stating (1) what operation we are doing,+ for (2) which component (with enough details to uniquely identify+ the build in question.)</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Backpack-FullUnitId.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Backpack.FullUnitId</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack.FullUnitId</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:FullUnitId" class="def">FullUnitId</a> <a href="#t:FullUnitId" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:FullUnitId" class="def">FullUnitId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:FullUnitId" class="caption collapser" onclick="toggleSection('i:FullUnitId')">Instances</p><div id="section.i:FullUnitId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FullUnitId:Show:1" class="instance expander" onclick="toggleSection('i:id:FullUnitId:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a></span> <a href="#t:FullUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FullUnitId:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FullUnitId:Generic:2" class="instance expander" onclick="toggleSection('i:id:FullUnitId:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a></span> <a href="#t:FullUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FullUnitId:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> x -> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FullUnitId:Rep:3" class="instance expander" onclick="toggleSection('i:id:FullUnitId:Rep:3')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a></span> <a href="#t:FullUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FullUnitId:Rep:3" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "FullUnitId" "Distribution.Backpack.FullUnitId" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FullUnitId" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:FullDb" class="def">FullDb</a> = <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> <a href="#t:FullDb" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:expandOpenUnitId" class="def">expandOpenUnitId</a> :: <a href="Distribution-Backpack-FullUnitId.html#t:FullDb">FullDb</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> <a href="#v:expandOpenUnitId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:expandUnitId" class="def">expandUnitId</a> :: <a href="Distribution-Backpack-FullUnitId.html#t:FullDb">FullDb</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">FullUnitId</a> <a href="#v:expandUnitId" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Backpack-LinkedComponent.html view
@@ -0,0 +1,20 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Backpack.LinkedComponent</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack.LinkedComponent</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>See <a href="https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst">https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst</a></p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:LinkedComponent">LinkedComponent</a> = <a href="#v:LinkedComponent">LinkedComponent</a> {<ul class="subs"><li><a href="#v:lc_ann_id">lc_ann_id</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:lc_component">lc_component</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a></li><li><a href="#v:lc_exe_deps">lc_exe_deps</a> :: [<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>]</li><li><a href="#v:lc_public">lc_public</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:lc_includes">lc_includes</a> :: [<a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>]</li><li><a href="#v:lc_sig_includes">lc_sig_includes</a> :: [<a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>]</li><li><a href="#v:lc_shape">lc_shape</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></li></ul>}</li><li class="src short"><a href="#v:lc_insts">lc_insts</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</li><li class="src short"><a href="#v:lc_uid">lc_uid</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></li><li class="src short"><a href="#v:lc_cid">lc_cid</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li class="src short"><a href="#v:lc_pkgid">lc_pkgid</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></li><li class="src short"><a href="#v:toLinkedComponent">toLinkedComponent</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Backpack-FullUnitId.html#t:FullDb">FullDb</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">LinkedComponentMap</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a></li><li class="src short"><a href="#v:toLinkedComponents">toLinkedComponents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Backpack-FullUnitId.html#t:FullDb">FullDb</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">LinkedComponentMap</a> -> [<a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a>] -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> [<a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a>]</li><li class="src short"><a href="#v:dispLinkedComponent">dispLinkedComponent</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:LinkedComponentMap">LinkedComponentMap</a> = <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> (<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a>)</li><li class="src short"><a href="#v:extendLinkedComponentMap">extendLinkedComponentMap</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">LinkedComponentMap</a> -> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">LinkedComponentMap</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LinkedComponent" class="def">LinkedComponent</a> <a href="#t:LinkedComponent" class="selflink">#</a></p><div class="doc"><p>A linked component is a component that has been mix-in linked, at+ which point we have determined how all the dependencies of the+ component are explicitly instantiated (in the form of an OpenUnitId).+ <code><a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a></code> is mix-in linked into <code><a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a></code>, which+ is then instantiated into <code>ReadyComponent</code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:LinkedComponent" class="def">LinkedComponent</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:lc_ann_id" class="def">lc_ann_id</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>Uniquely identifies linked component</p></div></li><li><dfn class="src"><a id="v:lc_component" class="def">lc_component</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a></dfn><div class="doc"><p>Corresponds to <code><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_component">cc_component</a></code>.</p></div></li><li><dfn class="src"><a id="v:lc_exe_deps" class="def">lc_exe_deps</a> :: [<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>]</dfn><div class="doc"><p><code>build-tools</code> and <code>build-tool-depends</code> dependencies.+ Corresponds to <code><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_exe_deps">cc_exe_deps</a></code>.</p></div></li><li><dfn class="src"><a id="v:lc_public" class="def">lc_public</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Is this the public library of a package? Corresponds to+ <code><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_public">cc_public</a></code>.</p></div></li><li><dfn class="src"><a id="v:lc_includes" class="def">lc_includes</a> :: [<a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>]</dfn><div class="doc"><p>Corresponds to <code><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_includes">cc_includes</a></code>, but (1) this does not contain+ includes of signature packages (packages with no exports),+ and (2) the <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> for requirements (stored in+ <code><a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></code>) has been removed, as it is reflected in+ <code><a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></code>.)</p></div></li><li><dfn class="src"><a id="v:lc_sig_includes" class="def">lc_sig_includes</a> :: [<a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>]</dfn><div class="doc"><p>Like <code><a href="Distribution-Backpack-LinkedComponent.html#v:lc_includes">lc_includes</a></code>, but this specifies includes on+ signature packages which have no exports.</p></div></li><li><dfn class="src"><a id="v:lc_shape" class="def">lc_shape</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></dfn><div class="doc"><p>The module shape computed by mix-in linking. This is+ newly computed from <code><a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a></code></p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:LinkedComponent" class="caption collapser" onclick="toggleSection('i:LinkedComponent')">Instances</p><div id="section.i:LinkedComponent" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LinkedComponent:Package:1" class="instance expander" onclick="toggleSection('i:id:LinkedComponent:Package:1')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a></span> <a href="#t:LinkedComponent" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LinkedComponent:Package:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:lc_insts" class="def">lc_insts</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)] <a href="#v:lc_insts" class="selflink">#</a></p><div class="doc"><p>The instantiation of <code><a href="Distribution-Backpack-LinkedComponent.html#v:lc_uid">lc_uid</a></code>; this always has the invariant+ that it is a mapping from a module name <code>A</code> to <code><a href="A">A</a></code> (the hole A).</p></div></div><div class="top"><p class="src"><a id="v:lc_uid" class="def">lc_uid</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:lc_uid" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></code> of this component in the "default" instantiation.+ See also <code><a href="Distribution-Backpack-LinkedComponent.html#v:lc_insts">lc_insts</a></code>. <code><a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a></code>s cannot be instantiated+ (e.g., there is no <code>ModSubst</code> instance for them).</p></div></div><div class="top"><p class="src"><a id="v:lc_cid" class="def">lc_cid</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:lc_cid" class="selflink">#</a></p><div class="doc"><p>Uniquely identifies a <code><a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a></code>. Corresponds to+ <code><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_cid">cc_cid</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:lc_pkgid" class="def">lc_pkgid</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> <a href="#v:lc_pkgid" class="selflink">#</a></p><div class="doc"><p>Corresponds to <code><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_pkgid">cc_pkgid</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:toLinkedComponent" class="def">toLinkedComponent</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Backpack-FullUnitId.html#t:FullDb">FullDb</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">LinkedComponentMap</a> -> <a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> <a href="#v:toLinkedComponent" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:toLinkedComponents" class="def">toLinkedComponents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Backpack-FullUnitId.html#t:FullDb">FullDb</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">LinkedComponentMap</a> -> [<a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">ConfiguredComponent</a>] -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> [<a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a>] <a href="#v:toLinkedComponents" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:dispLinkedComponent" class="def">dispLinkedComponent</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:dispLinkedComponent" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:LinkedComponentMap" class="def">LinkedComponentMap</a> = <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> (<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a>) <a href="#t:LinkedComponentMap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extendLinkedComponentMap" class="def">extendLinkedComponentMap</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">LinkedComponentMap</a> -> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">LinkedComponentMap</a> <a href="#v:extendLinkedComponentMap" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Backpack-ModSubst.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Backpack.ModSubst</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack.ModSubst</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A type class <code><a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a></code> for objects which can have <code>ModuleSubst</code>+ applied to them.</p><p>See also <a href="https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst">https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst</a></p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:ModSubst">ModSubst</a> a <span class="keyword">where</span><ul class="subs"></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:ModSubst" class="def">ModSubst</a> a <span class="keyword">where</span> <a href="#t:ModSubst" class="selflink">#</a></p><div class="doc"><p>Applying module substitutions to semantic objects.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Backpack-ModSubst.html#v:modSubst">modSubst</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:modSubst" class="def">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> a -> a <a href="#v:modSubst" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:ModSubst" class="caption collapser" onclick="toggleSection('i:ModSubst')">Instances</p><div id="section.i:ModSubst" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ModSubst:ModSubst:1" class="instance expander" onclick="toggleSection('i:ic:ModSubst:ModSubst:1')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:ModSubst:ModSubst:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ModSubst:ModSubst:2" class="instance expander" onclick="toggleSection('i:ic:ModSubst:ModSubst:2')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:ModSubst:ModSubst:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ModSubst:ModSubst:3" class="instance expander" onclick="toggleSection('i:ic:ModSubst:ModSubst:3')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:ModSubst:ModSubst:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ModSubst:ModSubst:4" class="instance expander" onclick="toggleSection('i:ic:ModSubst:ModSubst:4')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> a => <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> [a]</span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:ModSubst:ModSubst:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> [a] -> [a] <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ModSubst:ModSubst:5" class="instance expander" onclick="toggleSection('i:ic:ModSubst:ModSubst:5')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)</span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:ModSubst:ModSubst:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ModSubst:ModSubst:6" class="instance expander" onclick="toggleSection('i:ic:ModSubst:ModSubst:6')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> a => <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> (k, a)</span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:ModSubst:ModSubst:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> (k, a) -> (k, a) <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ModSubst:ModSubst:7" class="instance expander" onclick="toggleSection('i:ic:ModSubst:ModSubst:7')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> a => <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k a)</span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:ModSubst:ModSubst:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k a -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k a <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Backpack-ModuleShape.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Backpack.ModuleShape</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack.ModuleShape</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Module shapes</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>See <a href="https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst">https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst</a></p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ModuleShape">ModuleShape</a> = <a href="#v:ModuleShape">ModuleShape</a> {<ul class="subs"><li><a href="#v:modShapeProvides">modShapeProvides</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></li><li><a href="#v:modShapeRequires">modShapeRequires</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li></ul>}</li><li class="src short"><a href="#v:emptyModuleShape">emptyModuleShape</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></li><li class="src short"><a href="#v:shapeInstalledPackage">shapeInstalledPackage</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></li></ul></div><div id="interface"><h1 id="g:1">Module shapes</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModuleShape" class="def">ModuleShape</a> <a href="#t:ModuleShape" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></code> describes the provisions and requirements of+ a library. We can extract a <code><a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></code> from an+ <code><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModuleShape" class="def">ModuleShape</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:modShapeProvides" class="def">modShapeProvides</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:modShapeRequires" class="def">modShapeRequires</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ModuleShape" class="caption collapser" onclick="toggleSection('i:ModuleShape')">Instances</p><div id="section.i:ModuleShape" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleShape:Eq:1" class="instance expander" onclick="toggleSection('i:id:ModuleShape:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleShape:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleShape:Show:2" class="instance expander" onclick="toggleSection('i:id:ModuleShape:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleShape:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleShape:Generic:3" class="instance expander" onclick="toggleSection('i:id:ModuleShape:Generic:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleShape:Generic:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> x -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleShape:Binary:4" class="instance expander" onclick="toggleSection('i:id:ModuleShape:Binary:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleShape:Binary:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleShape:ModSubst:5" class="instance expander" onclick="toggleSection('i:id:ModuleShape:ModSubst:5')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleShape:ModSubst:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleShape:Rep:6" class="instance expander" onclick="toggleSection('i:id:ModuleShape:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a></span> <a href="#t:ModuleShape" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleShape:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ModuleShape" "Distribution.Backpack.ModuleShape" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ModuleShape" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "modShapeProvides") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "modShapeRequires") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyModuleShape" class="def">emptyModuleShape</a> :: <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> <a href="#v:emptyModuleShape" class="selflink">#</a></p><div class="doc"><p>The default module shape, with no provisions and no requirements.</p></div></div><div class="top"><p class="src"><a id="v:shapeInstalledPackage" class="def">shapeInstalledPackage</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">ModuleShape</a> <a href="#v:shapeInstalledPackage" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Backpack.html view
@@ -0,0 +1,39 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Backpack</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Backpack</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">OpenUnitId</a></li><li><a href="#g:2">DefUnitId</a></li><li><a href="#g:3">OpenModule</a></li><li><a href="#g:4">OpenModuleSubst</a></li><li><a href="#g:5">Conversions to <code>UnitId</code></a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module defines the core data types for Backpack. For more+ details, see:</p><p><a href="https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst">https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst</a></p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:OpenUnitId">OpenUnitId</a><ul class="subs"><li>= <a href="#v:IndefFullUnitId">IndefFullUnitId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></li><li>| <a href="#v:DefiniteUnitId">DefiniteUnitId</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></li></ul></li><li class="src short"><a href="#v:openUnitIdFreeHoles">openUnitIdFreeHoles</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:mkOpenUnitId">mkOpenUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:DefUnitId">DefUnitId</a></li><li class="src short"><a href="#v:unDefUnitId">unDefUnitId</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><a href="#v:mkDefUnitId">mkDefUnitId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:OpenModule">OpenModule</a><ul class="subs"><li>= <a href="#v:OpenModule">OpenModule</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li>| <a href="#v:OpenModuleVar">OpenModuleVar</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li></ul></li><li class="src short"><a href="#v:openModuleFreeHoles">openModuleFreeHoles</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:OpenModuleSubst">OpenModuleSubst</a> = <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></li><li class="src short"><a href="#v:dispOpenModuleSubst">dispOpenModuleSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:dispOpenModuleSubstEntry">dispOpenModuleSubstEntry</a> :: (<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:parseOpenModuleSubst">parseOpenModuleSubst</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></li><li class="src short"><a href="#v:parseOpenModuleSubstEntry">parseOpenModuleSubstEntry</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)</li><li class="src short"><a href="#v:openModuleSubstFreeHoles">openModuleSubstFreeHoles</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:abstractUnitId">abstractUnitId</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><a href="#v:hashModuleSubst">hashModuleSubst</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1 id="g:1">OpenUnitId</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:OpenUnitId" class="def">OpenUnitId</a> <a href="#t:OpenUnitId" class="selflink">#</a></p><div class="doc"><p>An <code><a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></code> describes a (possibly partially) instantiated+ Backpack component, with a description of how the holes are filled+ in. Unlike <code><a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></code>, the <code>ModuleSubst</code> is kept in a structured+ form that allows for substitution (which fills in holes.) This form+ of unit cannot be installed. It must first be converted to a+ <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>.</p><p>In the absence of Backpack, there are no holes to fill, so any such+ component always has an empty module substitution; thus we can lossly+ represent it as an 'OpenUnitId uid'.</p><p>For a source component using Backpack, however, there is more+ structure as components may be parametrized over some signatures, and+ these "holes" may be partially or wholly filled.</p><p>OpenUnitId plays an important role when we are mix-in linking,+ and is recorded to the installed packaged database for indefinite+ packages; however, for compiled packages that are fully instantiated,+ we instantiate <code><a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></code> into <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>.</p><p>For more details see the Backpack spec+ <a href="https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst">https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst</a></p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:IndefFullUnitId" class="def">IndefFullUnitId</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></td><td class="doc"><p>Identifies a component which may have some unfilled holes;+ specifying its <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> and its <code><a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></code>.+ TODO: Invariant that <code><a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></code> is non-empty?+ See also the Text instance.</p></td></tr><tr><td class="src"><a id="v:DefiniteUnitId" class="def">DefiniteUnitId</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></td><td class="doc"><p>Identifies a fully instantiated component, which has+ been compiled and abbreviated as a hash. The embedded <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>+ MUST NOT be for an indefinite component; an <code><a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></code>+ is guaranteed not to have any holes.</p></td></tr></table></div><div class="subs instances"><p id="control.i:OpenUnitId" class="caption collapser" onclick="toggleSection('i:OpenUnitId')">Instances</p><div id="section.i:OpenUnitId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:Eq:1" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:Data:2" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> c <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> m <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> m <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> m <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:Ord:3" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:Read:4" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:Show:5" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:Generic:6" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> x -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:Binary:7" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:NFData:8" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:NFData:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:NFData:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:Text:9" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:ModSubst:10" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:ModSubst:10')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:ModSubst:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenUnitId:Rep:11" class="instance expander" onclick="toggleSection('i:id:OpenUnitId:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:OpenUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenUnitId:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "OpenUnitId" "Distribution.Backpack" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "IndefFullUnitId" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DefiniteUnitId" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:openUnitIdFreeHoles" class="def">openUnitIdFreeHoles</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:openUnitIdFreeHoles" class="selflink">#</a></p><div class="doc"><p>Get the set of holes (<code>ModuleVar</code>) embedded in a <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:mkOpenUnitId" class="def">mkOpenUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:mkOpenUnitId" class="selflink">#</a></p><div class="doc"><p>Safe constructor from a UnitId. The only way to do this safely+ is if the instantiation is provided.</p></div></div><h1 id="g:2">DefUnitId</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DefUnitId" class="def">DefUnitId</a> <a href="#t:DefUnitId" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> for a definite package. The <code><a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></code> invariant says+ that a <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> identified this way is definite; i.e., it has no+ unfilled holes.</p></div><div class="subs instances"><p id="control.i:DefUnitId" class="caption collapser" onclick="toggleSection('i:DefUnitId')">Instances</p><div id="section.i:DefUnitId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Eq:1" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Data:2" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> c <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> m <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> m <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> m <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Ord:3" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Read:4" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Show:5" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Generic:6" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> x -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Binary:7" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:NFData:8" class="instance expander" onclick="toggleSection('i:id:DefUnitId:NFData:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:NFData:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Text:9" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Rep:10" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Rep:10')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Rep:10" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "DefUnitId" "Distribution.Types.UnitId" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DefUnitId" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "unDefUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unDefUnitId" class="def">unDefUnitId</a> :: <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:unDefUnitId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mkDefUnitId" class="def">mkDefUnitId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a> <a href="#v:mkDefUnitId" class="selflink">#</a></p><div class="doc"><p>Create a <code><a href="Distribution-Backpack.html#t:DefUnitId">DefUnitId</a></code> from a <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> and an instantiation+ with no holes.</p></div></div><h1 id="g:3">OpenModule</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:OpenModule" class="def">OpenModule</a> <a href="#t:OpenModule" class="selflink">#</a></p><div class="doc"><p>Unlike a <code><a href="Distribution-Types-Module.html#t:Module">Module</a></code>, an <code><a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></code> is either an ordinary+ module from some unit, OR an <code><a href="Distribution-Backpack.html#v:OpenModuleVar">OpenModuleVar</a></code>, representing a+ hole that needs to be filled in. Substitutions are over+ module variables.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:OpenModule" class="def">OpenModule</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OpenModuleVar" class="def">OpenModuleVar</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:OpenModule" class="caption collapser" onclick="toggleSection('i:OpenModule')">Instances</p><div id="section.i:OpenModule" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:Eq:1" class="instance expander" onclick="toggleSection('i:id:OpenModule:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:Data:2" class="instance expander" onclick="toggleSection('i:id:OpenModule:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> c <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> m <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> m <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> m <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:Ord:3" class="instance expander" onclick="toggleSection('i:id:OpenModule:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:Read:4" class="instance expander" onclick="toggleSection('i:id:OpenModule:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:Show:5" class="instance expander" onclick="toggleSection('i:id:OpenModule:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:Generic:6" class="instance expander" onclick="toggleSection('i:id:OpenModule:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> x -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:Binary:7" class="instance expander" onclick="toggleSection('i:id:OpenModule:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:NFData:8" class="instance expander" onclick="toggleSection('i:id:OpenModule:NFData:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:NFData:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:Text:9" class="instance expander" onclick="toggleSection('i:id:OpenModule:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:ModSubst:10" class="instance expander" onclick="toggleSection('i:id:OpenModule:ModSubst:10')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:ModSubst:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OpenModule:Rep:11" class="instance expander" onclick="toggleSection('i:id:OpenModule:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:OpenModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OpenModule:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "OpenModule" "Distribution.Backpack" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OpenModule" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OpenModuleVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:openModuleFreeHoles" class="def">openModuleFreeHoles</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:openModuleFreeHoles" class="selflink">#</a></p><div class="doc"><p>Get the set of holes (<code>ModuleVar</code>) embedded in a <code><a href="Distribution-Types-Module.html#t:Module">Module</a></code>.</p></div></div><h1 id="g:4">OpenModuleSubst</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:OpenModuleSubst" class="def">OpenModuleSubst</a> = <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#t:OpenModuleSubst" class="selflink">#</a></p><div class="doc"><p>An explicit substitution on modules.</p><p>NB: These substitutions are NOT idempotent, for example, a+ valid substitution is (A -> B, B -> A).</p></div></div><div class="top"><p class="src"><a id="v:dispOpenModuleSubst" class="def">dispOpenModuleSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:dispOpenModuleSubst" class="selflink">#</a></p><div class="doc"><p>Pretty-print the entries of a module substitution, suitable+ for embedding into a <code><a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></code> or passing to GHC via <code>--instantiate-with</code>.</p></div></div><div class="top"><p class="src"><a id="v:dispOpenModuleSubstEntry" class="def">dispOpenModuleSubstEntry</a> :: (<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:dispOpenModuleSubstEntry" class="selflink">#</a></p><div class="doc"><p>Pretty-print a single entry of a module substitution.</p></div></div><div class="top"><p class="src"><a id="v:parseOpenModuleSubst" class="def">parseOpenModuleSubst</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> <a href="#v:parseOpenModuleSubst" class="selflink">#</a></p><div class="doc"><p>Inverse to <code>dispModSubst</code>.</p></div></div><div class="top"><p class="src"><a id="v:parseOpenModuleSubstEntry" class="def">parseOpenModuleSubstEntry</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>) <a href="#v:parseOpenModuleSubstEntry" class="selflink">#</a></p><div class="doc"><p>Inverse to <code>dispModSubstEntry</code>.</p></div></div><div class="top"><p class="src"><a id="v:openModuleSubstFreeHoles" class="def">openModuleSubstFreeHoles</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:openModuleSubstFreeHoles" class="selflink">#</a></p><div class="doc"><p>Get the set of holes (<code>ModuleVar</code>) embedded in a <code><a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></code>.+ This is NOT the domain of the substitution.</p></div></div><h1 id="g:5">Conversions to <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code></h1><div class="top"><p class="src"><a id="v:abstractUnitId" class="def">abstractUnitId</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:abstractUnitId" class="selflink">#</a></p><div class="doc"><p>When typechecking, we don't demand that a freshly instantiated+ <code><a href="Distribution-Backpack.html#v:IndefFullUnitId">IndefFullUnitId</a></code> be compiled; instead, we just depend on the+ installed indefinite unit installed at the <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:hashModuleSubst" class="def">hashModuleSubst</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:hashModuleSubst" class="selflink">#</a></p><div class="doc"><p>Take a module substitution and hash it into a string suitable for+ <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>. Note that since this takes <code><a href="Distribution-Types-Module.html#t:Module">Module</a></code>, not <code><a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></code>,+ you are responsible for recursively converting <code><a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></code>+ into <code><a href="Distribution-Types-Module.html#t:Module">Module</a></code>. See also <a href="Distribution-Backpack-ReadyComponent.html">Distribution.Backpack.ReadyComponent</a>.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-Binary.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.Binary</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.Binary</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:decodeOrFailIO">decodeOrFailIO</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> a)</li><li class="src short"><a href="#v:decodeFileOrFail-39-">decodeFileOrFail'</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> a)</li><li class="src short">module <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary.html">Data.Binary</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:decodeOrFailIO" class="def">decodeOrFailIO</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> a) <a href="#v:decodeOrFailIO" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:decodeFileOrFail-39-" class="def">decodeFileOrFail'</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> a) <a href="#v:decodeFileOrFail-39-" class="selflink">#</a></p><div class="doc"><p>Lazily reconstruct a value previously written to a file.</p></div></div><div class="top"><p class="src">module <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary.html">Data.Binary</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-CreatePipe.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.CreatePipe</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.CreatePipe</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:createPipe" class="def">createPipe</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a>) <a href="#v:createPipe" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-DList.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.DList</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) Ben Gamari 2015-2019</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-dev@haskell.org</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.DList</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A very simple difference list.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:DList">DList</a> a</li><li class="src short"><a href="#v:runDList">runDList</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> [a]</li><li class="src short"><a href="#v:singleton">singleton</a> :: a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a</li><li class="src short"><a href="#v:snoc">snoc</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DList" class="def">DList</a> a <a href="#t:DList" class="selflink">#</a></p><div class="doc"><p>Difference list.</p></div><div class="subs instances"><p id="control.i:DList" class="caption collapser" onclick="toggleSection('i:DList')">Instances</p><div id="section.i:DList" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DList:Semigroup:1" class="instance expander" onclick="toggleSection('i:id:DList:Semigroup:1')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Compat-DList.html#t:DList">DList</a> a)</span> <a href="#t:DList" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DList:Semigroup:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Compat-DList.html#t:DList">DList</a> a) -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DList:Monoid:2" class="instance expander" onclick="toggleSection('i:id:DList:Monoid:2')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Compat-DList.html#t:DList">DList</a> a)</span> <a href="#t:DList" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DList:Monoid:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Compat-DList.html#t:DList">DList</a> a] -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:runDList" class="def">runDList</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> [a] <a href="#v:runDList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:singleton" class="def">singleton</a> :: a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:singleton" class="selflink">#</a></p><div class="doc"><p>Make <code><a href="Distribution-Compat-DList.html#t:DList">DList</a></code> with containing single element.</p></div></div><div class="top"><p class="src"><a id="v:snoc" class="def">snoc</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:snoc" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-Exception.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.Exception</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.Exception</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:catchIO">catchIO</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:IOException">IOException</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:catchExit">catchExit</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:tryIO">tryIO</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:IOException">IOException</a> a)</li><li class="src short"><a href="#v:displayException">displayException</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:Exception">Exception</a> e => e -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:catchIO" class="def">catchIO</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:IOException">IOException</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a <a href="#v:catchIO" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:catchExit" class="def">catchExit</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a <a href="#v:catchExit" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:tryIO" class="def">tryIO</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:IOException">IOException</a> a) <a href="#v:tryIO" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:displayException" class="def">displayException</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:Exception">Exception</a> e => e -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p><div class="doc"><p>Render this exception value in a human-friendly manner.</p><p>Default implementation: <code><code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#v:show">show</a></code></code>.</p><p><em>Since: 4.8.0.0</em></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-Graph.html view
@@ -0,0 +1,46 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.Graph</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) Edward Z. Yang 2016</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-dev@haskell.org</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.Graph</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Graph type</a></li><li><a href="#g:2">Query</a></li><li><a href="#g:3">Construction</a></li><li><a href="#g:4">Combine</a></li><li><a href="#g:5">Graph algorithms</a></li><li><a href="#g:6">Conversions</a><ul><li><a href="#g:7">Maps</a></li><li><a href="#g:8">Lists</a></li><li><a href="#g:9">Sets</a></li><li><a href="#g:10">Graphs</a></li></ul></li><li><a href="#g:11">Node type</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A data type representing directed graphs, backed by <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html">Data.Graph</a>.+ It is strict in the node type.</p><p>This is an alternative interface to <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html">Data.Graph</a>. In this interface,+ nodes (identified by the <code><a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a></code> type class) are associated with a+ key and record the keys of their neighbors. This interface is more+ convenient than <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#v:Graph">Graph</a></code>, which requires vertices to be+ explicitly handled by integer indexes.</p><p>The current implementation has somewhat peculiar performance+ characteristics. The asymptotics of all map-like operations mirror+ their counterparts in <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Map.html">Data.Map</a>. However, to perform a graph+ operation, we first must build the <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html">Data.Graph</a> representation, an+ operation that takes <em>O(V + E log V)</em>. However, this operation can+ be amortized across all queries on that particular graph.</p><p>Some nodes may be broken, i.e., refer to neighbors which are not+ stored in the graph. In our graph algorithms, we transparently+ ignore such edges; however, you can easily query for the broken+ vertices of a graph using <code><a href="Distribution-Compat-Graph.html#v:broken">broken</a></code> (and should, e.g., to ensure that+ a closure of a graph is well-formed.) It's possible to take a closed+ subset of a broken graph and get a well-formed graph.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Graph">Graph</a> a</li><li class="src short"><span class="keyword">class</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a) => <a href="#t:IsNode">IsNode</a> a <span class="keyword">where</span><ul class="subs"><li><span class="keyword">type</span> <a href="#t:Key">Key</a> a :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a></li></ul></li><li class="src short"><a href="#v:null">null</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:size">size</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:member">member</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:lookup">lookup</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:empty">empty</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a</li><li class="src short"><a href="#v:insert">insert</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a</li><li class="src short"><a href="#v:deleteKey">deleteKey</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a</li><li class="src short"><a href="#v:deleteLookup">deleteLookup</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a, <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a)</li><li class="src short"><a href="#v:unionLeft">unionLeft</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a</li><li class="src short"><a href="#v:unionRight">unionRight</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a</li><li class="src short"><a href="#v:stronglyConnComp">stronglyConnComp</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a]</li><li class="src short"><span class="keyword">data</span> <a href="#t:SCC">SCC</a> vertex :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a><ul class="subs"><li>= <a href="#v:AcyclicSCC">AcyclicSCC</a> vertex</li><li>| <a href="#v:CyclicSCC">CyclicSCC</a> [vertex]</li></ul></li><li class="src short"><a href="#v:cycles">cycles</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [[a]]</li><li class="src short"><a href="#v:broken">broken</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [(a, [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a])]</li><li class="src short"><a href="#v:neighbors">neighbors</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [a]</li><li class="src short"><a href="#v:revNeighbors">revNeighbors</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [a]</li><li class="src short"><a href="#v:closure">closure</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [a]</li><li class="src short"><a href="#v:revClosure">revClosure</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [a]</li><li class="src short"><a href="#v:topSort">topSort</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [a]</li><li class="src short"><a href="#v:revTopSort">revTopSort</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [a]</li><li class="src short"><a href="#v:toMap">toMap</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a) a</li><li class="src short"><a href="#v:fromDistinctList">fromDistinctList</a> :: (<a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a)) => [a] -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a</li><li class="src short"><a href="#v:toList">toList</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [a]</li><li class="src short"><a href="#v:keys">keys</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a]</li><li class="src short"><a href="#v:keysSet">keysSet</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a)</li><li class="src short"><a href="#v:toGraph">toGraph</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Graph">Graph</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Vertex">Vertex</a> -> a, <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Vertex">Vertex</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:Node">Node</a> k a = <a href="#v:N">N</a> a k [k]</li><li class="src short"><a href="#v:nodeValue">nodeValue</a> :: <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> a</li></ul></div><div id="interface"><h1 id="g:1">Graph type</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Graph" class="def">Graph</a> a <a href="#t:Graph" class="selflink">#</a></p><div class="doc"><p>A graph of nodes <code>a</code>. The nodes are expected to have instance+ of class <code><a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a></code>.</p></div><div class="subs instances"><p id="control.i:Graph" class="caption collapser" onclick="toggleSection('i:Graph')">Instances</p><div id="section.i:Graph" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Graph:Foldable:1" class="instance expander" onclick="toggleSection('i:id:Graph:Foldable:1')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Foldable">Foldable</a> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a></span> <a href="#t:Graph" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Graph:Foldable:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fold">fold</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> m -> m <a href="#v:fold" class="selflink">#</a></p><p class="src"><a href="#v:foldMap">foldMap</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => (a -> m) -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> m <a href="#v:foldMap" class="selflink">#</a></p><p class="src"><a href="#v:foldr">foldr</a> :: (a -> b -> b) -> b -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> b <a href="#v:foldr" class="selflink">#</a></p><p class="src"><a href="#v:foldr-39-">foldr'</a> :: (a -> b -> b) -> b -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> b <a href="#v:foldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldl">foldl</a> :: (b -> a -> b) -> b -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> b <a href="#v:foldl" class="selflink">#</a></p><p class="src"><a href="#v:foldl-39-">foldl'</a> :: (b -> a -> b) -> b -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> b <a href="#v:foldl-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr1">foldr1</a> :: (a -> a -> a) -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> a <a href="#v:foldr1" class="selflink">#</a></p><p class="src"><a href="#v:foldl1">foldl1</a> :: (a -> a -> a) -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> a <a href="#v:foldl1" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [a] <a href="#v:toList" class="selflink">#</a></p><p class="src"><a href="#v:null">null</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:null" class="selflink">#</a></p><p class="src"><a href="#v:length">length</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:length" class="selflink">#</a></p><p class="src"><a href="#v:elem">elem</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:elem" class="selflink">#</a></p><p class="src"><a href="#v:maximum">maximum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> a <a href="#v:maximum" class="selflink">#</a></p><p class="src"><a href="#v:minimum">minimum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> a <a href="#v:minimum" class="selflink">#</a></p><p class="src"><a href="#v:sum">sum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> a <a href="#v:sum" class="selflink">#</a></p><p class="src"><a href="#v:product">product</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> a <a href="#v:product" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Graph:Eq:2" class="instance expander" onclick="toggleSection('i:id:Graph:Eq:2')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a), <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a)</span> <a href="#t:Graph" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Graph:Eq:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Graph:Read:3" class="instance expander" onclick="toggleSection('i:id:Graph:Read:3')"></span> (<a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a)) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a)</span> <a href="#t:Graph" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Graph:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a) <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a) <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Graph:Show:4" class="instance expander" onclick="toggleSection('i:id:Graph:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a)</span> <a href="#t:Graph" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Graph:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Graph:Binary:5" class="instance expander" onclick="toggleSection('i:id:Graph:Binary:5')"></span> (<a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a)) => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a)</span> <a href="#t:Graph" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Graph:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Graph:NFData:6" class="instance expander" onclick="toggleSection('i:id:Graph:NFData:6')"></span> (<a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> a, <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a)) => <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a)</span> <a href="#t:Graph" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Graph:NFData:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a) => <a id="t:IsNode" class="def">IsNode</a> a <span class="keyword">where</span> <a href="#t:IsNode" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a></code> class is used for datatypes which represent directed+ graph nodes. A node of type <code>a</code> is associated with some unique key of+ type <code><code><a href="Distribution-Compat-Graph.html#t:Key">Key</a></code> a</code>; given a node we can determine its key (<code><a href="Distribution-Compat-Graph.html#v:nodeKey">nodeKey</a></code>)+ and the keys of its neighbors (<code><a href="Distribution-Compat-Graph.html#v:nodeNeighbors">nodeNeighbors</a></code>).</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Compat-Graph.html#v:nodeKey">nodeKey</a>, <a href="Distribution-Compat-Graph.html#v:nodeNeighbors">nodeNeighbors</a></p></div><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a id="t:Key" class="def">Key</a> a :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:nodeKey" class="def">nodeKey</a> :: a -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a id="v:nodeNeighbors" class="def">nodeNeighbors</a> :: a -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:IsNode" class="caption collapser" onclick="toggleSection('i:IsNode')">Instances</p><div id="section.i:IsNode" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:IsNode:IsNode:1" class="instance expander" onclick="toggleSection('i:ic:IsNode:IsNode:1')"></span> <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:IsNode" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:IsNode:IsNode:1" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:IsNode:IsNode:2" class="instance expander" onclick="toggleSection('i:ic:IsNode:IsNode:2')"></span> <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:IsNode" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:IsNode:IsNode:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:IsNode:IsNode:3" class="instance expander" onclick="toggleSection('i:ic:IsNode:IsNode:3')"></span> <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></span> <a href="#t:IsNode" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:IsNode:IsNode:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:IsNode:IsNode:4" class="instance expander" onclick="toggleSection('i:ic:IsNode:IsNode:4')"></span> (<a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a, <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> b, (~) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a) (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> b)) => <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b)</span> <a href="#t:IsNode" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:IsNode:IsNode:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b) <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b)] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:IsNode:IsNode:5" class="instance expander" onclick="toggleSection('i:ic:IsNode:IsNode:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> k => <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a)</span> <a href="#t:IsNode" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:IsNode:IsNode:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a) <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a)] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h1 id="g:2">Query</h1><div class="top"><p class="src"><a id="v:null" class="def">null</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:null" class="selflink">#</a></p><div class="doc"><p><em>O(1)</em>. Is the graph empty?</p></div></div><div class="top"><p class="src"><a id="v:size" class="def">size</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:size" class="selflink">#</a></p><div class="doc"><p><em>O(1)</em>. The number of nodes in the graph.</p></div></div><div class="top"><p class="src"><a id="v:member" class="def">member</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:member" class="selflink">#</a></p><div class="doc"><p><em>O(log V)</em>. Check if the key is in the graph.</p></div></div><div class="top"><p class="src"><a id="v:lookup" class="def">lookup</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:lookup" class="selflink">#</a></p><div class="doc"><p><em>O(log V)</em>. Lookup the node at a key in the graph.</p></div></div><h1 id="g:3">Construction</h1><div class="top"><p class="src"><a id="v:empty" class="def">empty</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a <a href="#v:empty" class="selflink">#</a></p><div class="doc"><p><em>O(1)</em>. The empty graph.</p></div></div><div class="top"><p class="src"><a id="v:insert" class="def">insert</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a <a href="#v:insert" class="selflink">#</a></p><div class="doc"><p><em>O(log V)</em>. Insert a node into a graph.</p></div></div><div class="top"><p class="src"><a id="v:deleteKey" class="def">deleteKey</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a <a href="#v:deleteKey" class="selflink">#</a></p><div class="doc"><p><em>O(log V)</em>. Delete the node at a key from the graph.</p></div></div><div class="top"><p class="src"><a id="v:deleteLookup" class="def">deleteLookup</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a, <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a) <a href="#v:deleteLookup" class="selflink">#</a></p><div class="doc"><p><em>O(log V)</em>. Lookup and delete. This function returns the deleted+ value if it existed.</p></div></div><h1 id="g:4">Combine</h1><div class="top"><p class="src"><a id="v:unionLeft" class="def">unionLeft</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a <a href="#v:unionLeft" class="selflink">#</a></p><div class="doc"><p><em>O(V + V')</em>. Left-biased union, preferring entries from+ the first map when conflicts occur.</p></div></div><div class="top"><p class="src"><a id="v:unionRight" class="def">unionRight</a> :: <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a => <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a <a href="#v:unionRight" class="selflink">#</a></p><div class="doc"><p><em>O(V + V')</em>. Right-biased union, preferring entries+ from the second map when conflicts occur.+ <code><code><a href="Distribution-Compat-Graph.html#v:nodeKey">nodeKey</a></code> x = <code><a href="Distribution-Compat-Graph.html#v:nodeKey">nodeKey</a></code> (f x)</code>.</p></div></div><h1 id="g:5">Graph algorithms</h1><div class="top"><p class="src"><a id="v:stronglyConnComp" class="def">stronglyConnComp</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a] <a href="#v:stronglyConnComp" class="selflink">#</a></p><div class="doc"><p><em>Ω(V + E)</em>. Compute the strongly connected components of a graph.+ Requires amortized construction of graph.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SCC" class="def">SCC</a> vertex :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:SCC" class="selflink">#</a></p><div class="doc"><p>Strongly connected component.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AcyclicSCC" class="def">AcyclicSCC</a> vertex</td><td class="doc"><p>A single vertex that is not+ in any cycle.</p></td></tr><tr><td class="src"><a id="v:CyclicSCC" class="def">CyclicSCC</a> [vertex]</td><td class="doc"><p>A maximal set of mutually+ reachable vertices.</p></td></tr></table></div><div class="subs instances"><p id="control.i:SCC" class="caption collapser" onclick="toggleSection('i:SCC')">Instances</p><div id="section.i:SCC" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Functor:1" class="instance expander" onclick="toggleSection('i:id:SCC:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> b -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Foldable:2" class="instance expander" onclick="toggleSection('i:id:SCC:Foldable:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Foldable">Foldable</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Foldable:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fold">fold</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> m -> m <a href="#v:fold" class="selflink">#</a></p><p class="src"><a href="#v:foldMap">foldMap</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => (a -> m) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> m <a href="#v:foldMap" class="selflink">#</a></p><p class="src"><a href="#v:foldr">foldr</a> :: (a -> b -> b) -> b -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> b <a href="#v:foldr" class="selflink">#</a></p><p class="src"><a href="#v:foldr-39-">foldr'</a> :: (a -> b -> b) -> b -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> b <a href="#v:foldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldl">foldl</a> :: (b -> a -> b) -> b -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> b <a href="#v:foldl" class="selflink">#</a></p><p class="src"><a href="#v:foldl-39-">foldl'</a> :: (b -> a -> b) -> b -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> b <a href="#v:foldl-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr1">foldr1</a> :: (a -> a -> a) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> a <a href="#v:foldr1" class="selflink">#</a></p><p class="src"><a href="#v:foldl1">foldl1</a> :: (a -> a -> a) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> a <a href="#v:foldl1" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> [a] <a href="#v:toList" class="selflink">#</a></p><p class="src"><a href="#v:null">null</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:null" class="selflink">#</a></p><p class="src"><a href="#v:length">length</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:length" class="selflink">#</a></p><p class="src"><a href="#v:elem">elem</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => a -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:elem" class="selflink">#</a></p><p class="src"><a href="#v:maximum">maximum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> a <a href="#v:maximum" class="selflink">#</a></p><p class="src"><a href="#v:minimum">minimum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> a <a href="#v:minimum" class="selflink">#</a></p><p class="src"><a href="#v:sum">sum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> a <a href="#v:sum" class="selflink">#</a></p><p class="src"><a href="#v:product">product</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> a <a href="#v:product" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Traversable:3" class="instance expander" onclick="toggleSection('i:id:SCC:Traversable:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Traversable</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Traversable:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:traverse">traverse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => (a -> f b) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> f (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> b) <a href="#v:traverse" class="selflink">#</a></p><p class="src"><a href="#v:sequenceA">sequenceA</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> (f a) -> f (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a) <a href="#v:sequenceA" class="selflink">#</a></p><p class="src"><a href="#v:mapM">mapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> m (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> b) <a href="#v:mapM" class="selflink">#</a></p><p class="src"><a href="#v:sequence">sequence</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> (m a) -> m (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a) <a href="#v:sequence" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Eq1:4" class="instance expander" onclick="toggleSection('i:id:SCC:Eq1:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Classes.html#t:Eq1">Eq1</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Eq1:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:liftEq">liftEq</a> :: (a -> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:liftEq" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Read1:5" class="instance expander" onclick="toggleSection('i:id:SCC:Read1:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Classes.html#t:Read1">Read1</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Read1:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:liftReadsPrec">liftReadsPrec</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> a) -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a) <a href="#v:liftReadsPrec" class="selflink">#</a></p><p class="src"><a href="#v:liftReadList">liftReadList</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> a) -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [a] -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a] <a href="#v:liftReadList" class="selflink">#</a></p><p class="src"><a href="#v:liftReadPrec">liftReadPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a) <a href="#v:liftReadPrec" class="selflink">#</a></p><p class="src"><a href="#v:liftReadListPrec">liftReadListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a] <a href="#v:liftReadListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Show1:6" class="instance expander" onclick="toggleSection('i:id:SCC:Show1:6')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Classes.html#t:Show1">Show1</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Show1:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:liftShowsPrec">liftShowsPrec</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a>) -> ([a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a>) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:liftShowsPrec" class="selflink">#</a></p><p class="src"><a href="#v:liftShowList">liftShowList</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a>) -> ([a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a>) -> [<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:liftShowList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Eq:7" class="instance expander" onclick="toggleSection('i:id:SCC:Eq:7')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> vertex => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Eq:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Data:8" class="instance expander" onclick="toggleSection('i:id:SCC:Data:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> vertex => <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Data:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> c (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex)) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex)) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> m (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> m (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> m (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Read:9" class="instance expander" onclick="toggleSection('i:id:SCC:Read:9')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> vertex => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Read:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Show:10" class="instance expander" onclick="toggleSection('i:id:SCC:Show:10')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> vertex => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Show:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Generic:11" class="instance expander" onclick="toggleSection('i:id:SCC:Generic:11')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Generic:11" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) x -> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:NFData:12" class="instance expander" onclick="toggleSection('i:id:SCC:NFData:12')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> a => <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:NFData:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> a -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Generic1:13" class="instance expander" onclick="toggleSection('i:id:SCC:Generic1:13')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Generic1">Generic1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Generic1:13" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep1">Rep1</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> (f :: <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) :: k -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep1" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from1">from1</a> :: f a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep1">Rep1</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> f a <a href="#v:from1" class="selflink">#</a></p><p class="src"><a href="#v:to1">to1</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep1">Rep1</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> f a -> f a <a href="#v:to1" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Rep:14" class="instance expander" onclick="toggleSection('i:id:SCC:Rep:14')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Rep:14" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> vertex) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "SCC" "Data.Graph" "containers-0.5.10.2" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AcyclicSCC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> vertex))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CyclicSCC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [vertex]))))</div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SCC:Rep1:15" class="instance expander" onclick="toggleSection('i:id:SCC:Rep1:15')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep1">Rep1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SCC:Rep1:15" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep1">Rep1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compat-Graph.html#t:SCC">SCC</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "SCC" "Data.Graph" "containers-0.5.10.2" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AcyclicSCC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Par1">Par1</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CyclicSCC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec1">Rec1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> []))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:cycles" class="def">cycles</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [[a]] <a href="#v:cycles" class="selflink">#</a></p><div class="doc"><p><em>Ω(V + E)</em>. Compute the cycles of a graph.+ Requires amortized construction of graph.</p></div></div><div class="top"><p class="src"><a id="v:broken" class="def">broken</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [(a, [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a])] <a href="#v:broken" class="selflink">#</a></p><div class="doc"><p><em>O(1)</em>. Return a list of nodes paired with their broken+ neighbors (i.e., neighbor keys which are not in the graph).+ Requires amortized construction of graph.</p></div></div><div class="top"><p class="src"><a id="v:neighbors" class="def">neighbors</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [a] <a href="#v:neighbors" class="selflink">#</a></p><div class="doc"><p>Lookup the immediate neighbors from a key in the graph.+ Requires amortized construction of graph.</p></div></div><div class="top"><p class="src"><a id="v:revNeighbors" class="def">revNeighbors</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [a] <a href="#v:revNeighbors" class="selflink">#</a></p><div class="doc"><p>Lookup the immediate reverse neighbors from a key in the graph.+ Requires amortized construction of graph.</p></div></div><div class="top"><p class="src"><a id="v:closure" class="def">closure</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [a] <a href="#v:closure" class="selflink">#</a></p><div class="doc"><p>Compute the subgraph which is the closure of some set of keys.+ Returns <code>Nothing</code> if one (or more) keys are not present in+ the graph.+ Requires amortized construction of graph.</p></div></div><div class="top"><p class="src"><a id="v:revClosure" class="def">revClosure</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [a] <a href="#v:revClosure" class="selflink">#</a></p><div class="doc"><p>Compute the reverse closure of a graph from some set+ of keys. Returns <code>Nothing</code> if one (or more) keys are not present in+ the graph.+ Requires amortized construction of graph.</p></div></div><div class="top"><p class="src"><a id="v:topSort" class="def">topSort</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [a] <a href="#v:topSort" class="selflink">#</a></p><div class="doc"><p>Topologically sort the nodes of a graph.+ Requires amortized construction of graph.</p></div></div><div class="top"><p class="src"><a id="v:revTopSort" class="def">revTopSort</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [a] <a href="#v:revTopSort" class="selflink">#</a></p><div class="doc"><p>Reverse topologically sort the nodes of a graph.+ Requires amortized construction of graph.</p></div></div><h1 id="g:6">Conversions</h1><h2 id="g:7">Maps</h2><div class="top"><p class="src"><a id="v:toMap" class="def">toMap</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a) a <a href="#v:toMap" class="selflink">#</a></p><div class="doc"><p><em>O(1)</em>. Convert a graph into a map from keys to nodes.+ The resulting map <code>m</code> is guaranteed to have the property that+ <code><code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Foldable.html#v:all">all</a></code> ((k,n) -> k == <code><a href="Distribution-Compat-Graph.html#v:nodeKey">nodeKey</a></code> n) (<code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Map.html#v:toList">toList</a></code> m)</code>.</p></div></div><h2 id="g:8">Lists</h2><div class="top"><p class="src"><a id="v:fromDistinctList" class="def">fromDistinctList</a> :: (<a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a)) => [a] -> <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a <a href="#v:fromDistinctList" class="selflink">#</a></p><div class="doc"><p><em>O(V log V)</em>. Convert a list of nodes (with distinct keys) into a graph.</p></div></div><div class="top"><p class="src"><a id="v:toList" class="def">toList</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [a] <a href="#v:toList" class="selflink">#</a></p><div class="doc"><p><em>O(V)</em>. Convert a graph into a list of nodes.</p></div></div><div class="top"><p class="src"><a id="v:keys" class="def">keys</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a] <a href="#v:keys" class="selflink">#</a></p><div class="doc"><p><em>O(V)</em>. Convert a graph into a list of keys.</p></div></div><h2 id="g:9">Sets</h2><div class="top"><p class="src"><a id="v:keysSet" class="def">keysSet</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> (<a href="Distribution-Compat-Graph.html#t:Key">Key</a> a) <a href="#v:keysSet" class="selflink">#</a></p><div class="doc"><p><em>O(V)</em>. Convert a graph into a set of keys.</p></div></div><h2 id="g:10">Graphs</h2><div class="top"><p class="src"><a id="v:toGraph" class="def">toGraph</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Graph">Graph</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Vertex">Vertex</a> -> a, <a href="Distribution-Compat-Graph.html#t:Key">Key</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Vertex">Vertex</a>) <a href="#v:toGraph" class="selflink">#</a></p><div class="doc"><p><em>O(1)</em>. Convert a graph into a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#v:Graph">Graph</a></code>.+ Requires amortized construction of graph.</p></div></div><h1 id="g:11">Node type</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Node" class="def">Node</a> k a <a href="#t:Node" class="selflink">#</a></p><div class="doc"><p>A simple, trivial data type which admits an <code><a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a></code> instance.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:N" class="def">N</a> a k [k]</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Node" class="caption collapser" onclick="toggleSection('i:Node')">Instances</p><div id="section.i:Node" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Node:Functor:1" class="instance expander" onclick="toggleSection('i:id:Node:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k)</span> <a href="#t:Node" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Node:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k b -> <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Node:Eq:2" class="instance expander" onclick="toggleSection('i:id:Node:Eq:2')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> k, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a)</span> <a href="#t:Node" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Node:Eq:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Node:Show:3" class="instance expander" onclick="toggleSection('i:id:Node:Show:3')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> k, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a)</span> <a href="#t:Node" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Node:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Node:IsNode:4" class="instance expander" onclick="toggleSection('i:id:Node:IsNode:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> k => <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a)</span> <a href="#t:Node" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Node:IsNode:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a) <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a)] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Node:Key:5" class="instance expander" onclick="toggleSection('i:id:Node:Key:5')"></span> <span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a)</span> <a href="#t:Node" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Node:Key:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> (<a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a) = k</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:nodeValue" class="def">nodeValue</a> :: <a href="Distribution-Compat-Graph.html#t:Node">Node</a> k a -> a <a href="#v:nodeValue" class="selflink">#</a></p><div class="doc"><p>Get the value from a <code><a href="Distribution-Compat-Graph.html#t:Node">Node</a></code>.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-Map-Strict.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.Map.Strict</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.Map.Strict</p></div><div id="interface"></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-Prelude-Internal.html view
file too large to diff
+ doc/API/Cabal/Distribution-Compat-ReadP.html view
@@ -0,0 +1,41 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.ReadP</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) The University of Glasgow 2002</td></tr><tr><th>License</th><td>BSD-style (see the file libraries/base/LICENSE)</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.ReadP</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The <code>ReadP</code> type</a></li><li><a href="#g:2">Primitive operations</a></li><li><a href="#g:3">Other operations</a></li><li><a href="#g:4">Running a parser</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is a library of parser combinators, originally written by Koen Claessen.+ It parses all alternatives in parallel, so it never keeps hold of+ the beginning of the input string, a common source of space leaks with+ other parsers. The '(+++)' choice combinator is genuinely commutative;+ it makes no difference which branch is "shorter".</p><p>See also Koen's paper <em>Parallel Parsing Processes</em>+ (<a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.9217">http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.9217</a>).</p><p>This version of ReadP has been locally hacked to make it H98, by+ Martin Sjögren <a href="mailto:msjogren@gmail.com">mailto:msjogren@gmail.com</a></p><p>The unit tests have been moved to UnitTest.Distribution.Compat.ReadP, by+ Mark Lentczner <a href="mailto:mark@glyphic.com">mailto:mark@glyphic.com</a></p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:ReadP">ReadP</a> r a = Parser r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> a</li><li class="src short"><a href="#v:get">get</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a></li><li class="src short"><a href="#v:look">look</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:-43--43--43-">(+++)</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:-60--43--43-">(<++)</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:gather">gather</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> P <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> r) a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, a)</li><li class="src short"><a href="#v:pfail">pfail</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:eof">eof</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r ()</li><li class="src short"><a href="#v:satisfy">satisfy</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a></li><li class="src short"><a href="#v:char">char</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a></li><li class="src short"><a href="#v:string">string</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:munch">munch</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:munch1">munch1</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:skipSpaces">skipSpaces</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r ()</li><li class="src short"><a href="#v:skipSpaces1">skipSpaces1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r ()</li><li class="src short"><a href="#v:choice">choice</a> :: [<a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a] -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:count">count</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:between">between</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r open -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r close -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:option">option</a> :: a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:optional">optional</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r ()</li><li class="src short"><a href="#v:many">many</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:many1">many1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:skipMany">skipMany</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r ()</li><li class="src short"><a href="#v:skipMany1">skipMany1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r ()</li><li class="src short"><a href="#v:sepBy">sepBy</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r sep -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:sepBy1">sepBy1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r sep -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:endBy">endBy</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r sep -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:endBy1">endBy1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r sep -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:chainr">chainr</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (a -> a -> a) -> a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:chainl">chainl</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (a -> a -> a) -> a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:chainl1">chainl1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (a -> a -> a) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:chainr1">chainr1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (a -> a -> a) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:manyTill">manyTill</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> [a] end -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><span class="keyword">type</span> <a href="#t:ReadS">ReadS</a> a = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [(a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li class="src short"><a href="#v:readP_to_S">readP_to_S</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> a</li><li class="src short"><a href="#v:readS_to_P">readS_to_P</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li></ul></div><div id="interface"><h1 id="g:1">The <code><a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a></code> type</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ReadP" class="def">ReadP</a> r a = Parser r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> a <a href="#t:ReadP" class="selflink">#</a></p></div><h1 id="g:2">Primitive operations</h1><div class="top"><p class="src"><a id="v:get" class="def">get</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> <a href="#v:get" class="selflink">#</a></p><div class="doc"><p>Consumes and returns the next character.+ Fails if there is no input left.</p></div></div><div class="top"><p class="src"><a id="v:look" class="def">look</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:look" class="selflink">#</a></p><div class="doc"><p>Look-ahead: returns the part of the input that is left, without+ consuming it.</p></div></div><div class="top"><p class="src"><a id="v:-43--43--43-" class="def">(+++)</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <span class="fixity">infixr 5</span><span class="rightedge"></span> <a href="#v:-43--43--43-" class="selflink">#</a></p><div class="doc"><p>Symmetric choice.</p></div></div><div class="top"><p class="src"><a id="v:-60--43--43-" class="def">(<++)</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <span class="fixity">infixr 5</span><span class="rightedge"></span> <a href="#v:-60--43--43-" class="selflink">#</a></p><div class="doc"><p>Local, exclusive, left-biased choice: If left parser+ locally produces any result at all, then right parser is+ not used.</p></div></div><div class="top"><p class="src"><a id="v:gather" class="def">gather</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> P <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> r) a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, a) <a href="#v:gather" class="selflink">#</a></p><div class="doc"><p>Transforms a parser into one that does the same, but+ in addition returns the exact characters read.+ IMPORTANT NOTE: <code><a href="Distribution-Compat-ReadP.html#v:gather">gather</a></code> gives a runtime error if its first argument+ is built using any occurrences of readS_to_P.</p></div></div><h1 id="g:3">Other operations</h1><div class="top"><p class="src"><a id="v:pfail" class="def">pfail</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:pfail" class="selflink">#</a></p><div class="doc"><p>Always fails.</p></div></div><div class="top"><p class="src"><a id="v:eof" class="def">eof</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r () <a href="#v:eof" class="selflink">#</a></p><div class="doc"><p>Succeeds iff we are at the end of input</p></div></div><div class="top"><p class="src"><a id="v:satisfy" class="def">satisfy</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> <a href="#v:satisfy" class="selflink">#</a></p><div class="doc"><p>Consumes and returns the next character, if it satisfies the+ specified predicate.</p></div></div><div class="top"><p class="src"><a id="v:char" class="def">char</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> <a href="#v:char" class="selflink">#</a></p><div class="doc"><p>Parses and returns the specified character.</p></div></div><div class="top"><p class="src"><a id="v:string" class="def">string</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:string" class="selflink">#</a></p><div class="doc"><p>Parses and returns the specified string.</p></div></div><div class="top"><p class="src"><a id="v:munch" class="def">munch</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:munch" class="selflink">#</a></p><div class="doc"><p>Parses the first zero or more characters satisfying the predicate.</p></div></div><div class="top"><p class="src"><a id="v:munch1" class="def">munch1</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:munch1" class="selflink">#</a></p><div class="doc"><p>Parses the first one or more characters satisfying the predicate.</p></div></div><div class="top"><p class="src"><a id="v:skipSpaces" class="def">skipSpaces</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r () <a href="#v:skipSpaces" class="selflink">#</a></p><div class="doc"><p>Skips all whitespace.</p></div></div><div class="top"><p class="src"><a id="v:skipSpaces1" class="def">skipSpaces1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r () <a href="#v:skipSpaces1" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Compat-ReadP.html#v:skipSpaces">skipSpaces</a></code> but succeeds only if there is at least one+ whitespace character to skip.</p></div></div><div class="top"><p class="src"><a id="v:choice" class="def">choice</a> :: [<a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a] -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:choice" class="selflink">#</a></p><div class="doc"><p>Combines all parsers in the specified list.</p></div></div><div class="top"><p class="src"><a id="v:count" class="def">count</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a] <a href="#v:count" class="selflink">#</a></p><div class="doc"><p><code> count n p </code> parses <code>n</code> occurrences of <code>p</code> in sequence. A list of+ results is returned.</p></div></div><div class="top"><p class="src"><a id="v:between" class="def">between</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r open -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r close -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:between" class="selflink">#</a></p><div class="doc"><p><code> between open close p </code> parses <code>open</code>, followed by <code>p</code> and finally+ <code>close</code>. Only the value of <code>p</code> is returned.</p></div></div><div class="top"><p class="src"><a id="v:option" class="def">option</a> :: a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:option" class="selflink">#</a></p><div class="doc"><p><code>option x p</code> will either parse <code>p</code> or return <code>x</code> without consuming+ any input.</p></div></div><div class="top"><p class="src"><a id="v:optional" class="def">optional</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r () <a href="#v:optional" class="selflink">#</a></p><div class="doc"><p><code>optional p</code> optionally parses <code>p</code> and always returns <code>()</code>.</p></div></div><div class="top"><p class="src"><a id="v:many" class="def">many</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a] <a href="#v:many" class="selflink">#</a></p><div class="doc"><p>Parses zero or more occurrences of the given parser.</p></div></div><div class="top"><p class="src"><a id="v:many1" class="def">many1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a] <a href="#v:many1" class="selflink">#</a></p><div class="doc"><p>Parses one or more occurrences of the given parser.</p></div></div><div class="top"><p class="src"><a id="v:skipMany" class="def">skipMany</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r () <a href="#v:skipMany" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Compat-ReadP.html#v:many">many</a></code>, but discards the result.</p></div></div><div class="top"><p class="src"><a id="v:skipMany1" class="def">skipMany1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r () <a href="#v:skipMany1" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Compat-ReadP.html#v:many1">many1</a></code>, but discards the result.</p></div></div><div class="top"><p class="src"><a id="v:sepBy" class="def">sepBy</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r sep -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a] <a href="#v:sepBy" class="selflink">#</a></p><div class="doc"><p><code>sepBy p sep</code> parses zero or more occurrences of <code>p</code>, separated by <code>sep</code>.+ Returns a list of values returned by <code>p</code>.</p></div></div><div class="top"><p class="src"><a id="v:sepBy1" class="def">sepBy1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r sep -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a] <a href="#v:sepBy1" class="selflink">#</a></p><div class="doc"><p><code>sepBy1 p sep</code> parses one or more occurrences of <code>p</code>, separated by <code>sep</code>.+ Returns a list of values returned by <code>p</code>.</p></div></div><div class="top"><p class="src"><a id="v:endBy" class="def">endBy</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r sep -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a] <a href="#v:endBy" class="selflink">#</a></p><div class="doc"><p><code>endBy p sep</code> parses zero or more occurrences of <code>p</code>, separated and ended+ by <code>sep</code>.</p></div></div><div class="top"><p class="src"><a id="v:endBy1" class="def">endBy1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r sep -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a] <a href="#v:endBy1" class="selflink">#</a></p><div class="doc"><p><code>endBy p sep</code> parses one or more occurrences of <code>p</code>, separated and ended+ by <code>sep</code>.</p></div></div><div class="top"><p class="src"><a id="v:chainr" class="def">chainr</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (a -> a -> a) -> a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:chainr" class="selflink">#</a></p><div class="doc"><p><code>chainr p op x</code> parses zero or more occurrences of <code>p</code>, separated by <code>op</code>.+ Returns a value produced by a <em>right</em> associative application of all+ functions returned by <code>op</code>. If there are no occurrences of <code>p</code>, <code>x</code> is+ returned.</p></div></div><div class="top"><p class="src"><a id="v:chainl" class="def">chainl</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (a -> a -> a) -> a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:chainl" class="selflink">#</a></p><div class="doc"><p><code>chainl p op x</code> parses zero or more occurrences of <code>p</code>, separated by <code>op</code>.+ Returns a value produced by a <em>left</em> associative application of all+ functions returned by <code>op</code>. If there are no occurrences of <code>p</code>, <code>x</code> is+ returned.</p></div></div><div class="top"><p class="src"><a id="v:chainl1" class="def">chainl1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (a -> a -> a) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:chainl1" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Compat-ReadP.html#v:chainl">chainl</a></code>, but parses one or more occurrences of <code>p</code>.</p></div></div><div class="top"><p class="src"><a id="v:chainr1" class="def">chainr1</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (a -> a -> a) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:chainr1" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Compat-ReadP.html#v:chainr">chainr</a></code>, but parses one or more occurrences of <code>p</code>.</p></div></div><div class="top"><p class="src"><a id="v:manyTill" class="def">manyTill</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> [a] end -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a] <a href="#v:manyTill" class="selflink">#</a></p><div class="doc"><p><code>manyTill p end</code> parses zero or more occurrences of <code>p</code>, until <code>end</code>+ succeeds. Returns a list of values returned by <code>p</code>.</p></div></div><h1 id="g:4">Running a parser</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ReadS" class="def">ReadS</a> a = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [(a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] <a href="#t:ReadS" class="selflink">#</a></p><div class="doc"><p>A parser for a type <code>a</code>, represented as a function that takes a+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code> and returns a list of possible parses as <code>(a,<code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code>)</code> pairs.</p><p>Note that this kind of backtracking parser is very inefficient;+ reading a large structure may be quite slow (cf <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadP.html#t:ReadP">ReadP</a></code>).</p></div></div><div class="top"><p class="src"><a id="v:readP_to_S" class="def">readP_to_S</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> a <a href="#v:readP_to_S" class="selflink">#</a></p><div class="doc"><p>Converts a parser into a Haskell ReadS-style function.+ This is the main way in which you can "run" a <code><a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a></code> parser:+ the expanded type is+ <code> readP_to_S :: ReadP a -> String -> [(a,String)] </code></p></div></div><div class="top"><p class="src"><a id="v:readS_to_P" class="def">readS_to_P</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:readS_to_P" class="selflink">#</a></p><div class="doc"><p>Converts a Haskell ReadS-style function into a parser.+ Warning: This introduces local backtracking in the resulting+ parser, and therefore a possible inefficiency.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-Semigroup.html view
@@ -0,0 +1,33 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.Semigroup</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.Semigroup</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Compatibility layer for <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html">Data.Semigroup</a></p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:Semigroup">Semigroup</a> a <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="#t:Monoid">Monoid</a> a <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">newtype</span> <a href="#t:All">All</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> = <a href="#v:All">All</a> {<ul class="subs"><li><a href="#v:getAll">getAll</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">newtype</span> <a href="#t:Any">Any</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> = <a href="#v:Any">Any</a> {<ul class="subs"><li><a href="#v:getAny">getAny</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">newtype</span> <a href="#t:Last-39-">Last'</a> a = <a href="#v:Last-39-">Last'</a> {<ul class="subs"><li><a href="#v:getLast-39-">getLast'</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li></ul>}</li><li class="src short"><a href="#v:gmappend">gmappend</a> :: (<a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> a, GSemigroup (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> a)) => a -> a -> a</li><li class="src short"><a href="#v:gmempty">gmempty</a> :: (<a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> a, GMonoid (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> a)) => a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Semigroup" class="def">Semigroup</a> a <span class="keyword">where</span> <a href="#t:Semigroup" class="selflink">#</a></p><div class="doc"><p>The class of semigroups (types with an associative binary operation).</p><p><em>Since: 4.9.0.0</em></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:-60--62-" class="def">(<>)</a> :: a -> a -> a <span class="fixity">infixr 6</span><span class="rightedge"></span> <a href="#v:-60--62-" class="selflink">#</a></p><div class="doc"><p>An associative operation.</p><pre>(a <code><a href="Distribution-Compat-Semigroup.html#v:-60--62-"><></a></code> b) <code><a href="Distribution-Compat-Semigroup.html#v:-60--62-"><></a></code> c = a <code><a href="Distribution-Compat-Semigroup.html#v:-60--62-"><></a></code> (b <code><a href="Distribution-Compat-Semigroup.html#v:-60--62-"><></a></code> c)+</pre><p>If <code>a</code> is also a <code><a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a></code> we further require</p><pre>(<code><a href="Distribution-Compat-Semigroup.html#v:-60--62-"><></a></code>) = <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code>+</pre></div></div><div class="subs instances"><p id="control.i:Semigroup" class="caption collapser" onclick="toggleSection('i:Semigroup')">Instances</p><div id="section.i:Semigroup" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:1" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:1')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a></span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:2" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:2')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> ()</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: () -> () -> () <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> () -> () <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> () -> () <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:3" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Void.html#t:Void">Void</a></span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Void.html#t:Void">Void</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Void.html#t:Void">Void</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Void.html#t:Void">Void</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Void.html#t:Void">Void</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Void.html#t:Void">Void</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Void.html#t:Void">Void</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Void.html#t:Void">Void</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:4" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a></span></td><td class="doc"><p><em>Since: 4.10.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:5" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:5')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a></span></td><td class="doc"><p><em>Since: 4.10.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:6" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:7" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:8" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:8')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:9" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:9')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:10" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:10')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:11" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:11')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:12" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:12')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:13" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:13')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:14" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:14')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:15" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:15')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:16" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:16')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:17" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:17')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:18" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:18')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:19" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:19')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:19" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:20" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:20')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:20" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:21" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:21')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:21" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:22" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:22')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:22" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:23" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:23')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:23" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:24" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:24')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:24" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:25" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:25')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:25" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:26" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:26')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:26" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:27" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:27')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:27" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:28" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:28')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:28" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:29" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:29')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-Component.html#t:Component">Component</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:29" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:30" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:30')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:30" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:31" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:31')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:31" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:32" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:32')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:32" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:33" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:33')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:33" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:34" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:34')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:34" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:35" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:35')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:35" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:36" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:36')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:36" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:37" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:37')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:37" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:38" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:38')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:38" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:39" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:39')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:39" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:40" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:40')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:40" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:41" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:41')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:41" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:42" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:42')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:42" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:43" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:43')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:43" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:44" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:44')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:44" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:45" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:45')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:45" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:46" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:46')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:46" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:47" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:47')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:47" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:48" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:48')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:48" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:49" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:49')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> [a]</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:49" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: [a] -> [a] -> [a] <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> [a] -> [a] <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> [a] -> [a] <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:50" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:50')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:50" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:51" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:51')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a)</span></td><td class="doc"><p><em>Since: 4.10.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:51" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:52" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:52')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:52" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:53" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:53')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:53" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:54" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:54')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:First">First</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:54" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:First">First</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:First">First</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:First">First</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:First">First</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:First">First</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:First">First</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:First">First</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:55" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:55')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Last">Last</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:55" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Last">Last</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Last">Last</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Last">Last</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Last">Last</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Last">Last</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Last">Last</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Last">Last</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:56" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:56')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:56" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:57" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:57')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:57" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:58" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:58')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:58" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:59" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:59')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:59" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:60" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:60')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:60" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:61" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:61')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:61" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:62" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:62')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:62" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:63" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:63')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:63" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:64" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:64')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:64" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:65" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:65')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:65" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:66" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:66')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> ())</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:66" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> ()) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:67" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:67')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:67" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:68" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:68')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:68" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:69" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:69')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:69" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:70" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:70')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:70" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:71" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:71')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:71" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a) -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:72" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:72')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Compat-DList.html#t:DList">DList</a> a)</span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:72" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Compat-DList.html#t:DList">DList</a> a) -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:73" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:73')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a)</span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:73" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:74" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:74')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> dir => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:74" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir) -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:75" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:75')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a)</span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:75" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a) -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:76" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:76')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a)</span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:76" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a) -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:77" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:77')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>)</span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:77" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>) -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:78" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:78')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:78" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a) -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:79" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:79')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> b => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (a -> b)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:79" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: (a -> b) -> (a -> b) -> a -> b <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (a -> b) -> a -> b <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> (a -> b) -> a -> b <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:80" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:80')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:80" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> a b <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:81" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:81')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> b) => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (a, b)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:81" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: (a, b) -> (a, b) -> (a, b) <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (a, b) -> (a, b) <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> (a, b) -> (a, b) <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:82" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:82')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:82" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:83" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:83')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> k => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:83" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v) -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:84" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:84')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> b, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> c) => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (a, b, c)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:84" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: (a, b, c) -> (a, b, c) -> (a, b, c) <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (a, b, c) -> (a, b, c) <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> (a, b, c) -> (a, b, c) <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:85" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:85')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:85" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:86" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:86')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Alternative">Alternative</a> f => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:86" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:87" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:87')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> b, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> c, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> d) => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (a, b, c, d)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:87" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (a, b, c, d) -> (a, b, c, d) <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> (a, b, c, d) -> (a, b, c, d) <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Semigroup:Semigroup:88" class="instance expander" onclick="toggleSection('i:ic:Semigroup:Semigroup:88')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> b, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> c, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> d, <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> e) => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (a, b, c, d, e)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Semigroup:Semigroup:88" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (a, b, c, d, e) -> (a, b, c, d, e) <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> (a, b, c, d, e) -> (a, b, c, d, e) <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Monoid" class="def">Monoid</a> a <span class="keyword">where</span> <a href="#t:Monoid" class="selflink">#</a></p><div class="doc"><p>The class of monoids (types with an associative binary operation that+ has an identity). Instances should satisfy the following laws:</p><ul><li><pre>mappend mempty x = x</pre></li><li><pre>mappend x mempty = x</pre></li><li><pre>mappend x (mappend y z) = mappend (mappend x y) z</pre></li><li><pre>mconcat = <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-OldList.html#v:foldr">foldr</a></code> mappend mempty</pre></li></ul><p>The method names refer to the monoid of lists under concatenation,+ but there are many other instances.</p><p>Some types can be viewed as a monoid in more than one way,+ e.g. both addition and multiplication on numbers.+ In such cases we often define <code>newtype</code>s and make those instances+ of <code><a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a></code>, e.g. <code>Sum</code> and <code>Product</code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Compat-Semigroup.html#v:mempty">mempty</a>, <a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:mempty" class="def">mempty</a> :: a <a href="#v:mempty" class="selflink">#</a></p><div class="doc"><p>Identity of <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code></p></div><p class="src"><a id="v:mappend" class="def">mappend</a> :: a -> a -> a <a href="#v:mappend" class="selflink">#</a></p><div class="doc"><p>An associative operation</p></div><p class="src"><a id="v:mconcat" class="def">mconcat</a> :: [a] -> a <a href="#v:mconcat" class="selflink">#</a></p><div class="doc"><p>Fold a list using the monoid.+ For most types, the default definition for <code><a href="Distribution-Compat-Semigroup.html#v:mconcat">mconcat</a></code> will be+ used, but the function is included in the class definition so+ that an optimized version can be provided for specific types.</p></div></div><div class="subs instances"><p id="control.i:Monoid" class="caption collapser" onclick="toggleSection('i:Monoid')">Instances</p><div id="section.i:Monoid" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:1" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:1')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a></span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:2" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:2')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> ()</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: () <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: () -> () -> () <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [()] -> () <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:3" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> EventLifetime</span></td><td class="doc"><p><em>Since: 4.8.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: EventLifetime <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: EventLifetime -> EventLifetime -> EventLifetime <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [EventLifetime] -> EventLifetime <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:4" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a></span></td><td class="doc"><p><em>Since: 4.3.1.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Event">Event</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:5" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:5')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a></span></td><td class="doc"><p><code>mappend</code> takes the longer of two lifetimes.</p><p><em>Since: 4.8.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Event.html#t:Lifetime">Lifetime</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:6" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Compat-Semigroup.html#t:All">All</a>] -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:7" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Compat-Semigroup.html#t:Any">Any</a>] -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:8" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:8')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:9" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:9')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:10" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:10')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:11" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:11')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Builder.html#t:Builder">Builder</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:12" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:12')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntSet-Internal.html#t:IntSet">IntSet</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:13" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:13')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:14" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:14')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a>] -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:15" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:15')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>] -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:16" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:16')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>] -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:17" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:17')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>] -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:18" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:18')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a>] -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:19" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:19')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:19" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a>] -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:20" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:20')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:20" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>] -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:21" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:21')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:21" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>] -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:22" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:22')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:22" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a>] -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:23" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:23')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:23" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>] -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:24" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:24')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:24" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>] -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:25" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:25')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:25" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-Library.html#t:Library">Library</a>] -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:26" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:26')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:26" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>] -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:27" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:27')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:27" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>] -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:28" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:28')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:28" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>] -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:29" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:29')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:29" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:30" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:30')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:30" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:31" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:31')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:31" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a>] -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:32" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:32')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:32" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:33" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:33')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:33" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:34" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:34')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:34" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:35" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:35')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:35" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:36" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:36')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:36" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:37" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:37')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:37" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:38" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:38')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:38" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:39" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:39')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:39" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:40" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:40')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:40" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:41" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:41')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:41" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:42" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:42')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:42" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:43" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:43')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:43" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a>] -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:44" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:44')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:44" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a>] -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:45" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:45')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:45" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a>] -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:46" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:46')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:46" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:47" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:47')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:47" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a>] -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:48" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:48')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> [a]</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:48" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: [a] <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: [a] -> [a] -> [a] <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [[a]] -> [a] <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:49" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:49')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</span></td><td class="doc"><p>Lift a semigroup into <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a></code> forming a <code><a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a></code> according to+ <a href="http://en.wikipedia.org/wiki/Monoid">http://en.wikipedia.org/wiki/Monoid</a>: "Any semigroup <code>S</code> may be+ turned into a monoid simply by adjoining an element <code>e</code> not in <code>S</code>+ and defining <code>e*e = e</code> and <code>e*s = s = s*e</code> for all <code>s ∈ S</code>." Since+ there used to be no "Semigroup" typeclass providing just <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code>,+ we use <code><a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a></code> instead.</p><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:49" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:50" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:50')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:50" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:51" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:51')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> a) => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:51" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Min">Min</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:52" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:52')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> a) => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:52" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Max">Max</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:53" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:53')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:53" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> m <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:54" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:54')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a)</span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:54" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Option">Option</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:55" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:55')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:55" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Identity.html#t:Identity">Identity</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:56" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:56')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:56" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Dual">Dual</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:57" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:57')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:57" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Endo">Endo</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:58" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:58')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:58" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Sum">Sum</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:59" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:59')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:59" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Product">Product</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:60" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:60')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:60" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:First">First</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:61" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:61')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:61" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Last">Last</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:62" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:62')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> ())</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:62" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> ()] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:PutM">PutM</a> () <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:63" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:63')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:63" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-IntMap-Internal.html#t:IntMap">IntMap</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:64" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:64')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:64" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Sequence-Internal.html#t:Seq">Seq</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:65" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:65')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:65" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:66" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:66')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:66" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Doc">Doc</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:67" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:67')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:67" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a] -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:68" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:68')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Compat-DList.html#t:DList">DList</a> a)</span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:68" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Compat-DList.html#t:DList">DList</a> a] -> <a href="Distribution-Compat-DList.html#t:DList">DList</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:69" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:69')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a)</span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:69" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a] -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:70" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:70')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> dir, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> dir) => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:70" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir] -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:71" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:71')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a)</span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:71" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a] -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:72" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:72')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a)</span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc"><p>Monoid operations on NubLists.+ For a valid Monoid instance we need to satistfy the required monoid laws;+ identity, associativity and closure.</p><p>Identity : by inspection:+ mempty <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> NubList xs == NubList xs <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> mempty</p><p>Associativity : by inspection:+ (NubList xs <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> NubList ys) <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> NubList zs+ == NubList xs <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> (NubList ys <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> NubList zs)</p><p>Closure : appending two lists of type a and removing duplicates obviously+ does not change the type.</p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:72" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a] -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:73" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:73')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>)</span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:73" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:74" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:74')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:74" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:75" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:75')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (a -> b)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:75" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: a -> b <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: (a -> b) -> (a -> b) -> a -> b <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [a -> b] -> a -> b <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:76" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:76')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b) => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (a, b)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:76" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: (a, b) <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: (a, b) -> (a, b) -> (a, b) <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [(a, b)] -> (a, b) <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:77" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:77')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s)</span></td><td class="doc"><p><em>Since: 4.7.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:77" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Proxy.html#t:Proxy">Proxy</a> k s <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:78" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:78')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> k => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:78" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v] -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> k v <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:79" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:79')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> c) => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (a, b, c)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:79" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: (a, b, c) <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: (a, b, c) -> (a, b, c) -> (a, b, c) <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [(a, b, c)] -> (a, b, c) <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:80" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:80')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b)</span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:80" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor-Const.html#t:Const">Const</a> k a b <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:81" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:81')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Alternative">Alternative</a> f => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a)</span></td><td class="doc"><p><em>Since: 4.8.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:81" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#t:Alt">Alt</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> f a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:82" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:82')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> c, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> d) => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (a, b, c, d)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:82" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: (a, b, c, d) <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [(a, b, c, d)] -> (a, b, c, d) <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Monoid:Monoid:83" class="instance expander" onclick="toggleSection('i:ic:Monoid:Monoid:83')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> c, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> d, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> e) => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (a, b, c, d, e)</span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:Monoid:Monoid:83" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: (a, b, c, d, e) <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [(a, b, c, d, e)] -> (a, b, c, d, e) <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:All" class="def">All</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:All" class="selflink">#</a></p><div class="doc"><p>Boolean monoid under conjunction (<code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:-38--38-">&&</a></code>).</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:All" class="def">All</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:getAll" class="def">getAll</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:All" class="caption collapser" onclick="toggleSection('i:All')">Instances</p><div id="section.i:All" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Bounded:1" class="instance expander" onclick="toggleSection('i:id:All:Bounded:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:All:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Eq:2" class="instance expander" onclick="toggleSection('i:id:All:Eq:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:All:Eq:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Data:3" class="instance expander" onclick="toggleSection('i:id:All:Data:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc"><p><em>Since: 4.8.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:All:Data:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> c <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Compat-Semigroup.html#t:All">All</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Compat-Semigroup.html#t:All">All</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> m <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> m <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> m <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Ord:4" class="instance expander" onclick="toggleSection('i:id:All:Ord:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:All:Ord:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Read:5" class="instance expander" onclick="toggleSection('i:id:All:Read:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:All:Read:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compat-Semigroup.html#t:All">All</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compat-Semigroup.html#t:All">All</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Show:6" class="instance expander" onclick="toggleSection('i:id:All:Show:6')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:All:Show:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compat-Semigroup.html#t:All">All</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Generic:7" class="instance expander" onclick="toggleSection('i:id:All:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:All:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> x -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Semigroup:8" class="instance expander" onclick="toggleSection('i:id:All:Semigroup:8')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:All:Semigroup:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Monoid:9" class="instance expander" onclick="toggleSection('i:id:All:Monoid:9')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:All:Monoid:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Compat-Semigroup.html#t:All">All</a>] -> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Binary:10" class="instance expander" onclick="toggleSection('i:id:All:Binary:10')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc"><p><em>Since: 0.8.4.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:All:Binary:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Compat-Semigroup.html#t:All">All</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:NFData:11" class="instance expander" onclick="toggleSection('i:id:All:NFData:11')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc"><p><em>Since: 1.4.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:All:NFData:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Compat-Semigroup.html#t:All">All</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:All:Rep:12" class="instance expander" onclick="toggleSection('i:id:All:Rep:12')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:All:Rep:12" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:All">All</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "All" "Data.Monoid" "base" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "All" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "getAll") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:Any" class="def">Any</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Any" class="selflink">#</a></p><div class="doc"><p>Boolean monoid under disjunction (<code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:-124--124-">||</a></code>).</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Any" class="def">Any</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:getAny" class="def">getAny</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Any" class="caption collapser" onclick="toggleSection('i:Any')">Instances</p><div id="section.i:Any" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Bounded:1" class="instance expander" onclick="toggleSection('i:id:Any:Bounded:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Any:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Eq:2" class="instance expander" onclick="toggleSection('i:id:Any:Eq:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Any:Eq:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Data:3" class="instance expander" onclick="toggleSection('i:id:Any:Data:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc"><p><em>Since: 4.8.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:Any:Data:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> c <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> m <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> m <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> m <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Ord:4" class="instance expander" onclick="toggleSection('i:id:Any:Ord:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Any:Ord:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Read:5" class="instance expander" onclick="toggleSection('i:id:Any:Read:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Any:Read:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compat-Semigroup.html#t:Any">Any</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compat-Semigroup.html#t:Any">Any</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Show:6" class="instance expander" onclick="toggleSection('i:id:Any:Show:6')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Any:Show:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compat-Semigroup.html#t:Any">Any</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Generic:7" class="instance expander" onclick="toggleSection('i:id:Any:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Any:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> x -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Semigroup:8" class="instance expander" onclick="toggleSection('i:id:Any:Semigroup:8')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:Any:Semigroup:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Monoid:9" class="instance expander" onclick="toggleSection('i:id:Any:Monoid:9')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc"><p><em>Since: 2.1</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:Any:Monoid:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Compat-Semigroup.html#t:Any">Any</a>] -> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Binary:10" class="instance expander" onclick="toggleSection('i:id:Any:Binary:10')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc"><p><em>Since: 0.8.4.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:Any:Binary:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Compat-Semigroup.html#t:Any">Any</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:NFData:11" class="instance expander" onclick="toggleSection('i:id:Any:NFData:11')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc"><p><em>Since: 1.4.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:Any:NFData:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Any:Rep:12" class="instance expander" onclick="toggleSection('i:id:Any:Rep:12')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Any:Rep:12" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compat-Semigroup.html#t:Any">Any</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Any" "Data.Monoid" "base" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Any" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "getAny") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:Last-39-" class="def">Last'</a> a <a href="#t:Last-39-" class="selflink">#</a></p><div class="doc"><p>Cabal's own <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#v:Last">Last</a></code> copy to avoid requiring an orphan+ <code><a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a></code> instance.</p><p>Once the oldest <code>binary</code> version we support provides a <code><a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a></code>+ instance for <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Monoid.html#v:Last">Last</a></code> we can remove this one here.</p><p>NB: <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Semigroup.html#t:Last">Last</a></code> is defined differently and not a <code><a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a></code></p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Last-39-" class="def">Last'</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:getLast-39-" class="def">getLast'</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Last-39-" class="caption collapser" onclick="toggleSection('i:Last-39-')">Instances</p><div id="section.i:Last-39-" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Functor:1" class="instance expander" onclick="toggleSection('i:id:Last-39-:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a></span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> b -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Applicative:2" class="instance expander" onclick="toggleSection('i:id:Last-39-:Applicative:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a></span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Applicative:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(<*>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> (a -> b) -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -> b -> c) -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> b -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> c <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> b -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(<*)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> b -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Eq:3" class="instance expander" onclick="toggleSection('i:id:Last-39-:Eq:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Ord:4" class="instance expander" onclick="toggleSection('i:id:Last-39-:Ord:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Ord:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Read:5" class="instance expander" onclick="toggleSection('i:id:Last-39-:Read:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Read:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a) <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a) <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Show:6" class="instance expander" onclick="toggleSection('i:id:Last-39-:Show:6')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Show:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Generic:7" class="instance expander" onclick="toggleSection('i:id:Last-39-:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a) x -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Semigroup:8" class="instance expander" onclick="toggleSection('i:id:Last-39-:Semigroup:8')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Semigroup:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a) -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Monoid:9" class="instance expander" onclick="toggleSection('i:id:Last-39-:Monoid:9')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Monoid:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a] -> <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Binary:10" class="instance expander" onclick="toggleSection('i:id:Last-39-:Binary:10')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Binary:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Last-39-:Rep:11" class="instance expander" onclick="toggleSection('i:id:Last-39-:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a)</span> <a href="#t:Last-39-" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Last-39-:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> a) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Last'" "Distribution.Compat.Semigroup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Last'" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "getLast'") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:gmappend" class="def">gmappend</a> :: (<a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> a, GSemigroup (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> a)) => a -> a -> a <a href="#v:gmappend" class="selflink">#</a></p><div class="doc"><p>Generically generate a <code><a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a></code> (<code><a href="Distribution-Compat-Semigroup.html#v:-60--62-"><></a></code>) operation for any type+ implementing <code><a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a></code>. This operation will append two values+ by point-wise appending their component fields. It is only defined+ for product types.</p><pre><code><a href="Distribution-Compat-Semigroup.html#v:gmappend">gmappend</a></code> a (<code><a href="Distribution-Compat-Semigroup.html#v:gmappend">gmappend</a></code> b c) = <code><a href="Distribution-Compat-Semigroup.html#v:gmappend">gmappend</a></code> (<code><a href="Distribution-Compat-Semigroup.html#v:gmappend">gmappend</a></code> a b) c+</pre></div></div><div class="top"><p class="src"><a id="v:gmempty" class="def">gmempty</a> :: (<a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> a, GMonoid (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> a)) => a <a href="#v:gmempty" class="selflink">#</a></p><div class="doc"><p>Generically generate a <code><a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a></code> <code><a href="Distribution-Compat-Semigroup.html#v:mempty">mempty</a></code> for any product-like type+ implementing <code><a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a></code>.</p><p>It is only defined for product types.</p><pre><code><a href="Distribution-Compat-Semigroup.html#v:gmappend">gmappend</a></code> <code><a href="Distribution-Compat-Semigroup.html#v:gmempty">gmempty</a></code> a = a = <code><a href="Distribution-Compat-Semigroup.html#v:gmappend">gmappend</a></code> a <code><a href="Distribution-Compat-Semigroup.html#v:gmempty">gmempty</a></code>+</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-Stack.html view
@@ -0,0 +1,41 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.Stack</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.Stack</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:WithCallStack">WithCallStack</a> a = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a> => a</li><li class="src short"><span class="keyword">data</span> <a href="#t:CallStack">CallStack</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a></li><li class="src short"><a href="#v:annotateCallStackIO">annotateCallStackIO</a> :: <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a)</li><li class="src short"><a href="#v:withFrozenCallStack">withFrozenCallStack</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a> => (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a> -> a) -> a</li><li class="src short"><a href="#v:withLexicalCallStack">withLexicalCallStack</a> :: (a -> <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> b)) -> <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> b)</li><li class="src short"><a href="#v:callStack">callStack</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a> -> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></li><li class="src short"><a href="#v:prettyCallStack">prettyCallStack</a> :: <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:parentSrcLocPrefix">parentSrcLocPrefix</a> :: <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:WithCallStack" class="def">WithCallStack</a> a = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a> => a <a href="#t:WithCallStack" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CallStack" class="def">CallStack</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:CallStack" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code>s are a lightweight method of obtaining a+ partial call-stack at any point in the program.</p><p>A function can request its call-site with the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a></code> constraint.+ For example, we can define</p><pre>errorWithCallStack :: HasCallStack => String -> a+</pre><p>as a variant of <code>error</code> that will get its call-site. We can access the+ call-stack inside <code>errorWithCallStack</code> with <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#v:callStack">callStack</a></code>.</p><pre>errorWithCallStack :: HasCallStack => String -> a+errorWithCallStack msg = error (msg ++ "n" ++ prettyCallStack callStack)+</pre><p>Thus, if we call <code>errorWithCallStack</code> we will get a formatted call-stack+ alongside our error message.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>errorWithCallStack "die"+</code></strong>*** Exception: die+CallStack (from HasCallStack):+ errorWithCallStack, called at <interactive>:2:1 in interactive:Ghci1+</pre><p>GHC solves <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a></code> constraints in three steps:</p><ol><li>If there is a <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code> in scope -- i.e. the enclosing function+ has a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a></code> constraint -- GHC will append the new+ call-site to the existing <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code>.</li><li>If there is no <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code> in scope -- e.g. in the GHCi session+ above -- and the enclosing definition does not have an explicit+ type signature, GHC will infer a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a></code> constraint for the+ enclosing definition (subject to the monomorphism restriction).</li><li>If there is no <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code> in scope and the enclosing definition+ has an explicit type signature, GHC will solve the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a></code>+ constraint for the singleton <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code> containing just the+ current call-site.</li></ol><p><code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code>s do not interact with the RTS and do not require compilation+ with <code>-prof</code>. On the other hand, as they are built up explicitly via the+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a></code> constraints, they will generally not contain as much+ information as the simulated call-stacks maintained by the RTS.</p><p>A <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code> is a <code>[(String, SrcLoc)]</code>. The <code>String</code> is the name of+ function that was called, the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:SrcLoc">SrcLoc</a></code> is the call-site. The list is+ ordered with the most recently called function at the head.</p><p>NOTE: The intrepid user may notice that <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a></code> is just an+ alias for an implicit parameter <code>?callStack :: CallStack</code>. This is an+ implementation detail and <strong>should not</strong> be considered part of the+ <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code> API, we may decide to change the implementation in the+ future.</p><p><em>Since: 4.8.1.0</em></p></div><div class="subs instances"><p id="control.i:CallStack" class="caption collapser" onclick="toggleSection('i:CallStack')">Instances</p><div id="section.i:CallStack" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CallStack:IsList:1" class="instance expander" onclick="toggleSection('i:id:CallStack:IsList:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Exts.html#t:IsList">IsList</a> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></span></td><td class="doc"><p>Be aware that 'fromList . toList = id' only for unfrozen <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code>s,+ since <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Exts.html#v:toList">toList</a></code> removes frozenness information.</p><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:CallStack:IsList:1" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Exts.html#t:Item">Item</a> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Item" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromList">fromList</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Exts.html#t:Item">Item</a> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a>] -> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> <a href="#v:fromList" class="selflink">#</a></p><p class="src"><a href="#v:fromListN">fromListN</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Exts.html#t:Item">Item</a> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a>] -> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> <a href="#v:fromListN" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Exts.html#t:Item">Item</a> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a>] <a href="#v:toList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CallStack:Show:2" class="instance expander" onclick="toggleSection('i:id:CallStack:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></span></td><td class="doc"><p><em>Since: 4.9.0.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:CallStack:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CallStack:NFData:3" class="instance expander" onclick="toggleSection('i:id:CallStack:NFData:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></span></td><td class="doc"><p><em>Since: 1.4.2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:CallStack:NFData:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CallStack:Item:4" class="instance expander" onclick="toggleSection('i:id:CallStack:Item:4')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Exts.html#t:Item">Item</a> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CallStack:Item:4" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Exts.html#t:Item">Item</a> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> = (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:SrcLoc">SrcLoc</a>)</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:annotateCallStackIO" class="def">annotateCallStackIO</a> :: <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> a) <a href="#v:annotateCallStackIO" class="selflink">#</a></p><div class="doc"><p>This function is for when you *really* want to add a call+ stack to raised IO, but you don't have a+ <code><a href="Distribution-Verbosity.html#v:Verbosity">Verbosity</a></code> so you can't use+ <code><a href="Distribution-Simple-Utils.html#v:annotateIO">annotateIO</a></code>. If you have a <code>Verbosity</code>,+ please use that function instead.</p></div></div><div class="top"><p class="src"><a id="v:withFrozenCallStack" class="def">withFrozenCallStack</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a> => (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a> -> a) -> a <a href="#v:withFrozenCallStack" class="selflink">#</a></p><div class="doc"><p>Perform some computation without adding new entries to the <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code>.</p><p><em>Since: 4.9.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:withLexicalCallStack" class="def">withLexicalCallStack</a> :: (a -> <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> b)) -> <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:IO">IO</a> b) <a href="#v:withLexicalCallStack" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:callStack" class="def">callStack</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Stack.html#t:HasCallStack">HasCallStack</a> -> <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> <a href="#v:callStack" class="selflink">#</a></p><div class="doc"><p>Return the current <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code>.</p><p>Does *not* include the call-site of <code><a href="Distribution-Compat-Stack.html#v:callStack">callStack</a></code>.</p><p><em>Since: 4.9.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:prettyCallStack" class="def">prettyCallStack</a> :: <a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:prettyCallStack" class="selflink">#</a></p><div class="doc"><p>Pretty print a <code><a href="Distribution-Compat-Stack.html#t:CallStack">CallStack</a></code>.</p><p><em>Since: 4.9.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:parentSrcLocPrefix" class="def">parentSrcLocPrefix</a> :: <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:parentSrcLocPrefix" class="selflink">#</a></p><div class="doc"><p>Give the *parent* of the person who invoked this;+ so it's most suitable for being called from a utility function.+ You probably want to call this using <code><a href="Distribution-Compat-Stack.html#v:withFrozenCallStack">withFrozenCallStack</a></code>; otherwise+ it's not very useful. We didn't implement this for base-4.8.1+ because we cannot rely on freezing to have taken place.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compat-Time.html view
@@ -0,0 +1,12 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compat.Time</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compat.Time</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">newtype</span> <a href="#t:ModTime">ModTime</a> = <a href="#v:ModTime">ModTime</a> <a href="Distribution-Compat-Prelude-Internal.html#t:Word64">Word64</a></li><li class="src short"><a href="#v:getModTime">getModTime</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></li><li class="src short"><a href="#v:getFileAge">getFileAge</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Double">Double</a></li><li class="src short"><a href="#v:getCurTime">getCurTime</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></li><li class="src short"><a href="#v:posixSecondsToModTime">posixSecondsToModTime</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Int64">Int64</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></li><li class="src short"><a href="#v:calibrateMtimeChangeDelay">calibrateMtimeChangeDelay</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:ModTime" class="def">ModTime</a> <a href="#t:ModTime" class="selflink">#</a></p><div class="doc"><p>An opaque type representing a file's modification time, represented+ internally as a 64-bit unsigned integer in the Windows UTC format.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModTime" class="def">ModTime</a> <a href="Distribution-Compat-Prelude-Internal.html#t:Word64">Word64</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ModTime" class="caption collapser" onclick="toggleSection('i:ModTime')">Instances</p><div id="section.i:ModTime" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModTime:Bounded:1" class="instance expander" onclick="toggleSection('i:id:ModTime:Bounded:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></span> <a href="#t:ModTime" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModTime:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModTime:Eq:2" class="instance expander" onclick="toggleSection('i:id:ModTime:Eq:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></span> <a href="#t:ModTime" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModTime:Eq:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModTime:Ord:3" class="instance expander" onclick="toggleSection('i:id:ModTime:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></span> <a href="#t:ModTime" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModTime:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModTime:Read:4" class="instance expander" onclick="toggleSection('i:id:ModTime:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></span> <a href="#t:ModTime" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModTime:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModTime:Show:5" class="instance expander" onclick="toggleSection('i:id:ModTime:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></span> <a href="#t:ModTime" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModTime:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModTime:Binary:6" class="instance expander" onclick="toggleSection('i:id:ModTime:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></span> <a href="#t:ModTime" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModTime:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:getModTime" class="def">getModTime</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:getModTime" class="selflink">#</a></p><div class="doc"><p>Return modification time of the given file. Works around the low clock+ resolution problem that <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/directory-1.3.0.2/System-Directory.html#v:getModificationTime">getModificationTime</a></code> has on GHC < 7.8.</p><p>This is a modified version of the code originally written for Shake by Neil+ Mitchell. See module Development.Shake.FileInfo.</p></div></div><div class="top"><p class="src"><a id="v:getFileAge" class="def">getFileAge</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Double">Double</a> <a href="#v:getFileAge" class="selflink">#</a></p><div class="doc"><p>Return age of given file in days.</p></div></div><div class="top"><p class="src"><a id="v:getCurTime" class="def">getCurTime</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:getCurTime" class="selflink">#</a></p><div class="doc"><p>Return the current time as <code><a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:posixSecondsToModTime" class="def">posixSecondsToModTime</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Int64">Int64</a> -> <a href="Distribution-Compat-Time.html#t:ModTime">ModTime</a> <a href="#v:posixSecondsToModTime" class="selflink">#</a></p><div class="doc"><p>Convert POSIX seconds to ModTime.</p></div></div><div class="top"><p class="src"><a id="v:calibrateMtimeChangeDelay" class="def">calibrateMtimeChangeDelay</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) <a href="#v:calibrateMtimeChangeDelay" class="selflink">#</a></p><div class="doc"><p>Based on code written by Neil Mitchell for Shake. See+ <code>sleepFileTimeCalibrate</code> in <code><a href="Test.html#v:Type">Type</a></code>. Returns a pair+ of microsecond values: first, the maximum delay seen, and the+ recommended delay to use before testing for file modification change.+ The returned delay is never smaller+ than 10 ms, but never larger than 1 second.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Compiler.html view
@@ -0,0 +1,26 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Compiler</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Compiler</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Compiler flavor</a></li><li><a href="#g:2">Compiler id</a></li><li><a href="#g:3">Compiler info</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This has an enumeration of the various compilers that Cabal knows about. It+ also specifies the default compiler. Sadly you'll often see code that does+ case analysis on this compiler flavour enumeration like:</p><pre>case compilerFlavor comp of+ GHC -> GHC.getInstalledPackages verbosity packageDb progdb+ JHC -> JHC.getInstalledPackages verbosity packageDb progdb</pre><p>Obviously it would be better to use the proper <code>Compiler</code> abstraction+ because that would keep all the compiler-specific code together.+ Unfortunately we cannot make this change yet without breaking the+ <code>UserHooks</code> api, which would break all custom <code>Setup.hs</code> files, so for the+ moment we just have to live with this deficiency. If you're interested, see+ ticket #57.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:CompilerFlavor">CompilerFlavor</a><ul class="subs"><li>= <a href="#v:GHC">GHC</a></li><li>| <a href="#v:GHCJS">GHCJS</a></li><li>| <a href="#v:NHC">NHC</a></li><li>| <a href="#v:YHC">YHC</a></li><li>| <a href="#v:Hugs">Hugs</a></li><li>| <a href="#v:HBC">HBC</a></li><li>| <a href="#v:Helium">Helium</a></li><li>| <a href="#v:JHC">JHC</a></li><li>| <a href="#v:LHC">LHC</a></li><li>| <a href="#v:UHC">UHC</a></li><li>| <a href="#v:HaskellSuite">HaskellSuite</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li>| <a href="#v:OtherCompiler">OtherCompiler</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:buildCompilerId">buildCompilerId</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></li><li class="src short"><a href="#v:buildCompilerFlavor">buildCompilerFlavor</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></li><li class="src short"><a href="#v:defaultCompilerFlavor">defaultCompilerFlavor</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></li><li class="src short"><a href="#v:parseCompilerFlavorCompat">parseCompilerFlavorCompat</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></li><li class="src short"><a href="#v:classifyCompilerFlavor">classifyCompilerFlavor</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:CompilerId">CompilerId</a> = <a href="#v:CompilerId">CompilerId</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:CompilerInfo">CompilerInfo</a> = <a href="#v:CompilerInfo">CompilerInfo</a> {<ul class="subs"><li><a href="#v:compilerInfoId">compilerInfoId</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></li><li><a href="#v:compilerInfoAbiTag">compilerInfoAbiTag</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></li><li><a href="#v:compilerInfoCompat">compilerInfoCompat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>]</li><li><a href="#v:compilerInfoLanguages">compilerInfoLanguages</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</li><li><a href="#v:compilerInfoExtensions">compilerInfoExtensions</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li></ul>}</li><li class="src short"><a href="#v:unknownCompilerInfo">unknownCompilerInfo</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:AbiTag">AbiTag</a><ul class="subs"><li>= <a href="#v:NoAbiTag">NoAbiTag</a></li><li>| <a href="#v:AbiTag">AbiTag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:abiTagString">abiTagString</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1 id="g:1">Compiler flavor</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CompilerFlavor" class="def">CompilerFlavor</a> <a href="#t:CompilerFlavor" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GHC" class="def">GHC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:GHCJS" class="def">GHCJS</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:NHC" class="def">NHC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:YHC" class="def">YHC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Hugs" class="def">Hugs</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:HBC" class="def">HBC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Helium" class="def">Helium</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:JHC" class="def">JHC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:LHC" class="def">LHC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:UHC" class="def">UHC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:HaskellSuite" class="def">HaskellSuite</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OtherCompiler" class="def">OtherCompiler</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:CompilerFlavor" class="caption collapser" onclick="toggleSection('i:CompilerFlavor')">Instances</p><div id="section.i:CompilerFlavor" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerFlavor:Eq:1" class="instance expander" onclick="toggleSection('i:id:CompilerFlavor:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:CompilerFlavor" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerFlavor:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerFlavor:Data:2" class="instance expander" onclick="toggleSection('i:id:CompilerFlavor:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:CompilerFlavor" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerFlavor:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> c <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> m <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> m <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> m <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerFlavor:Ord:3" class="instance expander" onclick="toggleSection('i:id:CompilerFlavor:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:CompilerFlavor" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerFlavor:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerFlavor:Read:4" class="instance expander" onclick="toggleSection('i:id:CompilerFlavor:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:CompilerFlavor" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerFlavor:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerFlavor:Show:5" class="instance expander" onclick="toggleSection('i:id:CompilerFlavor:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:CompilerFlavor" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerFlavor:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerFlavor:Generic:6" class="instance expander" onclick="toggleSection('i:id:CompilerFlavor:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:CompilerFlavor" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerFlavor:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> x -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerFlavor:Binary:7" class="instance expander" onclick="toggleSection('i:id:CompilerFlavor:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:CompilerFlavor" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerFlavor:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerFlavor:Text:8" class="instance expander" onclick="toggleSection('i:id:CompilerFlavor:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:CompilerFlavor" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerFlavor:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerFlavor:Rep:9" class="instance expander" onclick="toggleSection('i:id:CompilerFlavor:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:CompilerFlavor" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerFlavor:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "CompilerFlavor" "Distribution.Compiler" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GHC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GHCJS" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NHC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "YHC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Hugs" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HBC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Helium" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "JHC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LHC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UHC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HaskellSuite" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OtherCompiler" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:buildCompilerId" class="def">buildCompilerId</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> <a href="#v:buildCompilerId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildCompilerFlavor" class="def">buildCompilerFlavor</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:buildCompilerFlavor" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultCompilerFlavor" class="def">defaultCompilerFlavor</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:defaultCompilerFlavor" class="selflink">#</a></p><div class="doc"><p>The default compiler flavour to pick when compiling stuff. This defaults+ to the compiler used to build the Cabal lib.</p><p>However if it's not a recognised compiler then it's <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code> and the user+ will have to specify which compiler they want.</p></div></div><div class="top"><p class="src"><a id="v:parseCompilerFlavorCompat" class="def">parseCompilerFlavorCompat</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:parseCompilerFlavorCompat" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Compiler.html#v:classifyCompilerFlavor">classifyCompilerFlavor</a></code> but compatible with the old ReadS parser.</p><p>It is compatible in the sense that it accepts only the same strings,+ eg <a href="GHC.html">GHC</a> but not "ghc". However other strings get mapped to <code><a href="Distribution-Compiler.html#v:OtherCompiler">OtherCompiler</a></code>.+ The point of this is that we do not allow extra valid values that would+ upset older Cabal versions that had a stricter parser however we cope with+ new values more gracefully so that we'll be able to introduce new value in+ future without breaking things so much.</p></div></div><div class="top"><p class="src"><a id="v:classifyCompilerFlavor" class="def">classifyCompilerFlavor</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:classifyCompilerFlavor" class="selflink">#</a></p></div><h1 id="g:2">Compiler id</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CompilerId" class="def">CompilerId</a> <a href="#t:CompilerId" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CompilerId" class="def">CompilerId</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:CompilerId" class="caption collapser" onclick="toggleSection('i:CompilerId')">Instances</p><div id="section.i:CompilerId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerId:Eq:1" class="instance expander" onclick="toggleSection('i:id:CompilerId:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></span> <a href="#t:CompilerId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerId:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerId:Ord:2" class="instance expander" onclick="toggleSection('i:id:CompilerId:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></span> <a href="#t:CompilerId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerId:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerId:Read:3" class="instance expander" onclick="toggleSection('i:id:CompilerId:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></span> <a href="#t:CompilerId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerId:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerId:Show:4" class="instance expander" onclick="toggleSection('i:id:CompilerId:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></span> <a href="#t:CompilerId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerId:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerId:Generic:5" class="instance expander" onclick="toggleSection('i:id:CompilerId:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></span> <a href="#t:CompilerId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerId:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> x -> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerId:Binary:6" class="instance expander" onclick="toggleSection('i:id:CompilerId:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></span> <a href="#t:CompilerId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerId:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerId:Text:7" class="instance expander" onclick="toggleSection('i:id:CompilerId:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></span> <a href="#t:CompilerId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerId:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerId:Rep:8" class="instance expander" onclick="toggleSection('i:id:CompilerId:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></span> <a href="#t:CompilerId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerId:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "CompilerId" "Distribution.Compiler" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CompilerId" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))))</div></div></td></tr></table></div></div></div><h1 id="g:3">Compiler info</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CompilerInfo" class="def">CompilerInfo</a> <a href="#t:CompilerInfo" class="selflink">#</a></p><div class="doc"><p>Compiler information used for resolving configurations. Some+ fields can be set to Nothing to indicate that the information is+ unknown.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CompilerInfo" class="def">CompilerInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:compilerInfoId" class="def">compilerInfoId</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></dfn><div class="doc"><p>Compiler flavour and version.</p></div></li><li><dfn class="src"><a id="v:compilerInfoAbiTag" class="def">compilerInfoAbiTag</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></dfn><div class="doc"><p>Tag for distinguishing incompatible ABI's on the same+ architecture/os.</p></div></li><li><dfn class="src"><a id="v:compilerInfoCompat" class="def">compilerInfoCompat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>]</dfn><div class="doc"><p>Other implementations that this compiler claims to be+ compatible with, if known.</p></div></li><li><dfn class="src"><a id="v:compilerInfoLanguages" class="def">compilerInfoLanguages</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</dfn><div class="doc"><p>Supported language standards, if known.</p></div></li><li><dfn class="src"><a id="v:compilerInfoExtensions" class="def">compilerInfoExtensions</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dfn><div class="doc"><p>Supported extensions, if known.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:CompilerInfo" class="caption collapser" onclick="toggleSection('i:CompilerInfo')">Instances</p><div id="section.i:CompilerInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerInfo:Read:1" class="instance expander" onclick="toggleSection('i:id:CompilerInfo:Read:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a></span> <a href="#t:CompilerInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerInfo:Read:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerInfo:Show:2" class="instance expander" onclick="toggleSection('i:id:CompilerInfo:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a></span> <a href="#t:CompilerInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerInfo:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerInfo:Generic:3" class="instance expander" onclick="toggleSection('i:id:CompilerInfo:Generic:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a></span> <a href="#t:CompilerInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerInfo:Generic:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> x -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerInfo:Binary:4" class="instance expander" onclick="toggleSection('i:id:CompilerInfo:Binary:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a></span> <a href="#t:CompilerInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerInfo:Binary:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CompilerInfo:Rep:5" class="instance expander" onclick="toggleSection('i:id:CompilerInfo:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a></span> <a href="#t:CompilerInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CompilerInfo:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "CompilerInfo" "Distribution.Compiler" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CompilerInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerInfoId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerInfoAbiTag") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerInfoCompat") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerInfoLanguages") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerInfoExtensions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>])))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unknownCompilerInfo" class="def">unknownCompilerInfo</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> <a href="#v:unknownCompilerInfo" class="selflink">#</a></p><div class="doc"><p>Make a CompilerInfo of which only the known information is its CompilerId,+ its AbiTag and that it does not claim to be compatible with other+ compiler id's.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:AbiTag" class="def">AbiTag</a> <a href="#t:AbiTag" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoAbiTag" class="def">NoAbiTag</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:AbiTag" class="def">AbiTag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:AbiTag" class="caption collapser" onclick="toggleSection('i:AbiTag')">Instances</p><div id="section.i:AbiTag" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiTag:Eq:1" class="instance expander" onclick="toggleSection('i:id:AbiTag:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></span> <a href="#t:AbiTag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiTag:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiTag:Read:2" class="instance expander" onclick="toggleSection('i:id:AbiTag:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></span> <a href="#t:AbiTag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiTag:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiTag:Show:3" class="instance expander" onclick="toggleSection('i:id:AbiTag:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></span> <a href="#t:AbiTag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiTag:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiTag:Generic:4" class="instance expander" onclick="toggleSection('i:id:AbiTag:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></span> <a href="#t:AbiTag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiTag:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> x -> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiTag:Binary:5" class="instance expander" onclick="toggleSection('i:id:AbiTag:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></span> <a href="#t:AbiTag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiTag:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiTag:Text:6" class="instance expander" onclick="toggleSection('i:id:AbiTag:Text:6')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></span> <a href="#t:AbiTag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiTag:Text:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiTag:Rep:7" class="instance expander" onclick="toggleSection('i:id:AbiTag:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></span> <a href="#t:AbiTag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiTag:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "AbiTag" "Distribution.Compiler" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NoAbiTag" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AbiTag" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:abiTagString" class="def">abiTagString</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:abiTagString" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-InstalledPackageInfo.html view
@@ -0,0 +1,30 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.InstalledPackageInfo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) The University of Glasgow 2004</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.InstalledPackageInfo</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is the information about an <em>installed</em> package that+ is communicated to the <code>ghc-pkg</code> program in order to register+ a package. <code>ghc-pkg</code> now consumes this package format (as of version+ 6.4). This is specific to GHC at the moment.</p><p>The <code>.cabal</code> file format is for describing a package that is not yet+ installed. It has a lot of flexibility, like conditionals and dependency+ ranges. As such, that format is not at all suitable for describing a package+ that has already been built and installed. By the time we get to that stage,+ we have resolved all conditionals and resolved dependency version+ constraints to exact versions of dependent packages. So, this module defines+ the <code><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></code> data structure that contains all the info we keep+ about an installed package. There is a parser and pretty printer. The+ textual format is rather simpler than the <code>.cabal</code> format: there are no+ sections, for example.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:InstalledPackageInfo">InstalledPackageInfo</a> = <a href="#v:InstalledPackageInfo">InstalledPackageInfo</a> {<ul class="subs"><li><a href="#v:sourcePackageId">sourcePackageId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></li><li><a href="#v:installedUnitId">installedUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:installedComponentId_">installedComponentId_</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:instantiatedWith">instantiatedWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</li><li><a href="#v:sourceLibName">sourceLibName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:compatPackageKey">compatPackageKey</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:license">license</a> :: <a href="Distribution-License.html#t:License">License</a></li><li><a href="#v:copyright">copyright</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:maintainer">maintainer</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:author">author</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:stability">stability</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:homepage">homepage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:pkgUrl">pkgUrl</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:synopsis">synopsis</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:description">description</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:category">category</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:abiHash">abiHash</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></li><li><a href="#v:indefinite">indefinite</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:exposed">exposed</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:exposedModules">exposedModules</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>]</li><li><a href="#v:hiddenModules">hiddenModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:trusted">trusted</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:importDirs">importDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:libraryDirs">libraryDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:libraryDynDirs">libraryDynDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:dataDir">dataDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:hsLibraries">hsLibraries</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:extraLibraries">extraLibraries</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:extraGHCiLibraries">extraGHCiLibraries</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:includeDirs">includeDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:includes">includes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:depends">depends</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:abiDepends">abiDepends</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a>]</li><li><a href="#v:ccOptions">ccOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:ldOptions">ldOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:frameworkDirs">frameworkDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:frameworks">frameworks</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:haddockInterfaces">haddockInterfaces</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:haddockHTMLs">haddockHTMLs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:pkgRoot">pkgRoot</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul>}</li><li class="src short"><a href="#v:installedPackageId">installedPackageId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><a href="#v:installedComponentId">installedComponentId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li class="src short"><a href="#v:installedOpenUnitId">installedOpenUnitId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></li><li class="src short"><a href="#v:sourceComponentName">sourceComponentName</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li class="src short"><a href="#v:requiredSignatures">requiredSignatures</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ExposedModule">ExposedModule</a> = <a href="#v:ExposedModule">ExposedModule</a> {<ul class="subs"><li><a href="#v:exposedName">exposedName</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li><a href="#v:exposedReexport">exposedReexport</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:AbiDependency">AbiDependency</a> = <a href="#v:AbiDependency">AbiDependency</a> {<ul class="subs"><li><a href="#v:depUnitId">depUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:depAbiHash">depAbiHash</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:ParseResult">ParseResult</a> a<ul class="subs"><li>= <a href="#v:ParseFailed">ParseFailed</a> <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a></li><li>| <a href="#v:ParseOk">ParseOk</a> [<a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a>] a</li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:PError">PError</a><ul class="subs"><li>= <a href="#v:AmbiguousParse">AmbiguousParse</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a></li><li>| <a href="#v:NoParse">NoParse</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a></li><li>| <a href="#v:TabsError">TabsError</a> <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a></li><li>| <a href="#v:FromString">FromString</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a>)</li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:PWarning">PWarning</a></li><li class="src short"><a href="#v:emptyInstalledPackageInfo">emptyInstalledPackageInfo</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></li><li class="src short"><a href="#v:parseInstalledPackageInfo">parseInstalledPackageInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></li><li class="src short"><a href="#v:showInstalledPackageInfo">showInstalledPackageInfo</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:showInstalledPackageInfoField">showInstalledPackageInfoField</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</li><li class="src short"><a href="#v:showSimpleInstalledPackageInfoField">showSimpleInstalledPackageInfoField</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</li><li class="src short"><a href="#v:fieldsInstalledPackageInfo">fieldsInstalledPackageInfo</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:InstalledPackageInfo" class="def">InstalledPackageInfo</a> <a href="#t:InstalledPackageInfo" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:InstalledPackageInfo" class="def">InstalledPackageInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:sourcePackageId" class="def">sourcePackageId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:installedUnitId" class="def">installedUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:installedComponentId_" class="def">installedComponentId_</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:instantiatedWith" class="def">instantiatedWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sourceLibName" class="def">sourceLibName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:compatPackageKey" class="def">compatPackageKey</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:license" class="def">license</a> :: <a href="Distribution-License.html#t:License">License</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:copyright" class="def">copyright</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:maintainer" class="def">maintainer</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:author" class="def">author</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:stability" class="def">stability</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:homepage" class="def">homepage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:pkgUrl" class="def">pkgUrl</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:synopsis" class="def">synopsis</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:description" class="def">description</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:category" class="def">category</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:abiHash" class="def">abiHash</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:indefinite" class="def">indefinite</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:exposed" class="def">exposed</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:exposedModules" class="def">exposedModules</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hiddenModules" class="def">hiddenModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:trusted" class="def">trusted</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:importDirs" class="def">importDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:libraryDirs" class="def">libraryDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:libraryDynDirs" class="def">libraryDynDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>overrides <code><a href="Distribution-InstalledPackageInfo.html#v:libraryDirs">libraryDirs</a></code></p></div></li><li><dfn class="src"><a id="v:dataDir" class="def">dataDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hsLibraries" class="def">hsLibraries</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:extraLibraries" class="def">extraLibraries</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:extraGHCiLibraries" class="def">extraGHCiLibraries</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:includeDirs" class="def">includeDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:includes" class="def">includes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:depends" class="def">depends</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:abiDepends" class="def">abiDepends</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ccOptions" class="def">ccOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ldOptions" class="def">ldOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:frameworkDirs" class="def">frameworkDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:frameworks" class="def">frameworks</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockInterfaces" class="def">haddockInterfaces</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockHTMLs" class="def">haddockHTMLs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:pkgRoot" class="def">pkgRoot</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:InstalledPackageInfo" class="caption collapser" onclick="toggleSection('i:InstalledPackageInfo')">Instances</p><div id="section.i:InstalledPackageInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Eq:1" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Read:2" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Show:3" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Generic:4" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> x -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Binary:5" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:IsNode:6" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:IsNode:6')"></span> <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:IsNode:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:PackageInstalled:7" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:PackageInstalled:7')"></span> <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:PackageInstalled:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:installedDepends">installedDepends</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] <a href="#v:installedDepends" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:HasUnitId:8" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:HasUnitId:8')"></span> <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:HasUnitId:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:installedUnitId">installedUnitId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:installedUnitId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:HasMungedPackageId:9" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:HasMungedPackageId:9')"></span> <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:HasMungedPackageId:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mungedId">mungedId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:mungedId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Package:10" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Package:10')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Package:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Semigroup:11" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Semigroup:11')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>)</span> <a href="#t:Semigroup" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Semigroup:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>) -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Monoid:12" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Monoid:12')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>)</span> <a href="#t:Monoid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Monoid:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Rep:13" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Rep:13')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Rep:13" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "InstalledPackageInfo" "Distribution.InstalledPackageInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "InstalledPackageInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sourcePackageId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installedUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installedComponentId_") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "instantiatedWith") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sourceLibName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compatPackageKey") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "license") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-License.html#t:License">License</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "copyright") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "maintainer") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "author") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "stability") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "homepage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgUrl") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "synopsis") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "description") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "category") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "abiHash") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "indefinite") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exposed") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exposedModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>]))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hiddenModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "trusted") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "importDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libraryDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libraryDynDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "dataDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hsLibraries") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraLibraries") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraGHCiLibraries") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "includeDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "includes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "depends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "abiDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ccOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ldOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "frameworkDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "frameworks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockInterfaces") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockHTMLs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgRoot") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))))))))</div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstalledPackageInfo:Key:14" class="instance expander" onclick="toggleSection('i:id:InstalledPackageInfo:Key:14')"></span> <span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:InstalledPackageInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstalledPackageInfo:Key:14" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> = <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:installedPackageId" class="def">installedPackageId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:installedPackageId" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use installedUnitId instead</p></div><p>Backwards compatibility with Cabal pre-1.24.</p><p>This type synonym is slightly awful because in cabal-install+ we define an <code><a href="Distribution-Types-UnitId.html#t:InstalledPackageId">InstalledPackageId</a></code> but it's a ComponentId,+ not a UnitId!</p></div></div><div class="top"><p class="src"><a id="v:installedComponentId" class="def">installedComponentId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:installedComponentId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:installedOpenUnitId" class="def">installedOpenUnitId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:installedOpenUnitId" class="selflink">#</a></p><div class="doc"><p>Get the indefinite unit identity representing this package.+ This IS NOT guaranteed to give you a substitution; for+ instantiated packages you will get <code>DefiniteUnitId (installedUnitId ipi)</code>.+ For indefinite libraries, however, you will correctly get+ an <code>OpenUnitId</code> with the appropriate <code><a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:sourceComponentName" class="def">sourceComponentName</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:sourceComponentName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:requiredSignatures" class="def">requiredSignatures</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:requiredSignatures" class="selflink">#</a></p><div class="doc"><p>Returns the set of module names which need to be filled for+ an indefinite package, or the empty set if the package is definite.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ExposedModule" class="def">ExposedModule</a> <a href="#t:ExposedModule" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ExposedModule" class="def">ExposedModule</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:exposedName" class="def">exposedName</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:exposedReexport" class="def">exposedReexport</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ExposedModule" class="caption collapser" onclick="toggleSection('i:ExposedModule')">Instances</p><div id="section.i:ExposedModule" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExposedModule:Eq:1" class="instance expander" onclick="toggleSection('i:id:ExposedModule:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a></span> <a href="#t:ExposedModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExposedModule:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExposedModule:Read:2" class="instance expander" onclick="toggleSection('i:id:ExposedModule:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a></span> <a href="#t:ExposedModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExposedModule:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExposedModule:Show:3" class="instance expander" onclick="toggleSection('i:id:ExposedModule:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a></span> <a href="#t:ExposedModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExposedModule:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExposedModule:Generic:4" class="instance expander" onclick="toggleSection('i:id:ExposedModule:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a></span> <a href="#t:ExposedModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExposedModule:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> x -> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExposedModule:Binary:5" class="instance expander" onclick="toggleSection('i:id:ExposedModule:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a></span> <a href="#t:ExposedModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExposedModule:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExposedModule:Text:6" class="instance expander" onclick="toggleSection('i:id:ExposedModule:Text:6')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a></span> <a href="#t:ExposedModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExposedModule:Text:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExposedModule:Rep:7" class="instance expander" onclick="toggleSection('i:id:ExposedModule:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a></span> <a href="#t:ExposedModule" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExposedModule:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ExposedModule" "Distribution.InstalledPackageInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExposedModule" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exposedName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exposedReexport") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:AbiDependency" class="def">AbiDependency</a> <a href="#t:AbiDependency" class="selflink">#</a></p><div class="doc"><p>An ABI dependency is a dependency on a library which also+ records the ABI hash (<code><a href="Distribution-InstalledPackageInfo.html#v:abiHash">abiHash</a></code>) of the library it depends+ on.</p><p>The primary utility of this is to enable an extra sanity when+ GHC loads libraries: it can check if the dependency has a matching+ ABI and if not, refuse to load this library. This information+ is critical if we are shadowing libraries; differences in the+ ABI hash let us know what packages get shadowed by the new version+ of a package.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AbiDependency" class="def">AbiDependency</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:depUnitId" class="def">depUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:depAbiHash" class="def">depAbiHash</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:AbiDependency" class="caption collapser" onclick="toggleSection('i:AbiDependency')">Instances</p><div id="section.i:AbiDependency" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiDependency:Eq:1" class="instance expander" onclick="toggleSection('i:id:AbiDependency:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a></span> <a href="#t:AbiDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiDependency:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiDependency:Read:2" class="instance expander" onclick="toggleSection('i:id:AbiDependency:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a></span> <a href="#t:AbiDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiDependency:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiDependency:Show:3" class="instance expander" onclick="toggleSection('i:id:AbiDependency:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a></span> <a href="#t:AbiDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiDependency:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiDependency:Generic:4" class="instance expander" onclick="toggleSection('i:id:AbiDependency:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a></span> <a href="#t:AbiDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiDependency:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> x -> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiDependency:Binary:5" class="instance expander" onclick="toggleSection('i:id:AbiDependency:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a></span> <a href="#t:AbiDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiDependency:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiDependency:Text:6" class="instance expander" onclick="toggleSection('i:id:AbiDependency:Text:6')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a></span> <a href="#t:AbiDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiDependency:Text:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiDependency:Rep:7" class="instance expander" onclick="toggleSection('i:id:AbiDependency:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a></span> <a href="#t:AbiDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiDependency:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "AbiDependency" "Distribution.InstalledPackageInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AbiDependency" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "depUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "depAbiHash") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ParseResult" class="def">ParseResult</a> a <a href="#t:ParseResult" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ParseFailed" class="def">ParseFailed</a> <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ParseOk" class="def">ParseOk</a> [<a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a>] a</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ParseResult" class="caption collapser" onclick="toggleSection('i:ParseResult')">Instances</p><div id="section.i:ParseResult" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:Monad:1" class="instance expander" onclick="toggleSection('i:id:ParseResult:Monad:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a></span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(>>=)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a -> (a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b) -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(>>)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:Functor:2" class="instance expander" onclick="toggleSection('i:id:ParseResult:Functor:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a></span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:MonadFail:3" class="instance expander" onclick="toggleSection('i:id:ParseResult:MonadFail:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad-Fail.html#t:MonadFail">MonadFail</a> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a></span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:MonadFail:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:Applicative:4" class="instance expander" onclick="toggleSection('i:id:ParseResult:Applicative:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a></span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:Applicative:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(<*>)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> (a -> b) -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -> b -> c) -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> c <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*>)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(<*)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:Show:5" class="instance expander" onclick="toggleSection('i:id:ParseResult:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a)</span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PError" class="def">PError</a> <a href="#t:PError" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AmbiguousParse" class="def">AmbiguousParse</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:NoParse" class="def">NoParse</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:TabsError" class="def">TabsError</a> <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:FromString" class="def">FromString</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a>)</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:PError" class="caption collapser" onclick="toggleSection('i:PError')">Instances</p><div id="section.i:PError" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PError:Eq:1" class="instance expander" onclick="toggleSection('i:id:PError:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a></span> <a href="#t:PError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PError:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a> -> <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a> -> <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PError:Show:2" class="instance expander" onclick="toggleSection('i:id:PError:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a></span> <a href="#t:PError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PError:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PWarning" class="def">PWarning</a> <a href="#t:PWarning" class="selflink">#</a></p><div class="subs instances"><p id="control.i:PWarning" class="caption collapser" onclick="toggleSection('i:PWarning')">Instances</p><div id="section.i:PWarning" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PWarning:Eq:1" class="instance expander" onclick="toggleSection('i:id:PWarning:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a></span> <a href="#t:PWarning" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PWarning:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a> -> <a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a> -> <a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PWarning:Show:2" class="instance expander" onclick="toggleSection('i:id:PWarning:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a></span> <a href="#t:PWarning" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PWarning:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyInstalledPackageInfo" class="def">emptyInstalledPackageInfo</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:emptyInstalledPackageInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:parseInstalledPackageInfo" class="def">parseInstalledPackageInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-InstalledPackageInfo.html#t:ParseResult">ParseResult</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:parseInstalledPackageInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showInstalledPackageInfo" class="def">showInstalledPackageInfo</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showInstalledPackageInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showInstalledPackageInfoField" class="def">showInstalledPackageInfoField</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>) <a href="#v:showInstalledPackageInfoField" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showSimpleInstalledPackageInfoField" class="def">showSimpleInstalledPackageInfoField</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>) <a href="#v:showSimpleInstalledPackageInfoField" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:fieldsInstalledPackageInfo" class="def">fieldsInstalledPackageInfo</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] <a href="#v:fieldsInstalledPackageInfo" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-License.html view
@@ -0,0 +1,34 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.License</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005<br />Duncan Coutts 2008</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.License</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Package descriptions contain fields for specifying the name of a software+ license and the name of the file containing the text of that license. While+ package authors may choose any license they like, Cabal provides an+ enumeration of a small set of common free and open source software licenses.+ This is done so that Hackage can recognise licenses, so that tools can detect+ <a href="https://en.wikipedia.org/wiki/License_compatibility">licensing conflicts</a>,+ and to deter+ <a href="https://en.wikipedia.org/wiki/License_proliferation">license proliferation</a>.</p><p>It is recommended that all package authors use the <code>license-file</code> or+ <code>license-files</code> fields in their package descriptions. Further information+ about these fields can be found in the+ <a href="http://www.haskell.org/cabal/users-guide/developing-packages.html#package-descriptions">Cabal users guide</a>.</p><h1>Additional resources</h1><p>The following websites provide information about free and open source+ software licenses:</p><ul><li><a href="http://www.opensource.org">The Open Source Initiative (OSI)</a></li><li><a href="https://www.fsf.org">The Free Software Foundation (FSF)</a></li></ul><h1>Disclaimer</h1><p>The descriptions of software licenses provided by this documentation are+ intended for informational purposes only and in no way constitute legal+ advice. Please read the text of the licenses and consult a lawyer for any+ advice regarding software licensing.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:License">License</a><ul class="subs"><li>= <a href="#v:GPL">GPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</li><li>| <a href="#v:AGPL">AGPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</li><li>| <a href="#v:LGPL">LGPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</li><li>| <a href="#v:BSD2">BSD2</a></li><li>| <a href="#v:BSD3">BSD3</a></li><li>| <a href="#v:BSD4">BSD4</a></li><li>| <a href="#v:MIT">MIT</a></li><li>| <a href="#v:ISC">ISC</a></li><li>| <a href="#v:MPL">MPL</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:Apache">Apache</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</li><li>| <a href="#v:PublicDomain">PublicDomain</a></li><li>| <a href="#v:AllRightsReserved">AllRightsReserved</a></li><li>| <a href="#v:UnspecifiedLicense">UnspecifiedLicense</a></li><li>| <a href="#v:OtherLicense">OtherLicense</a></li><li>| <a href="#v:UnknownLicense">UnknownLicense</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:knownLicenses">knownLicenses</a> :: [<a href="Distribution-License.html#t:License">License</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:License" class="def">License</a> <a href="#t:License" class="selflink">#</a></p><div class="doc"><p>Indicates the license under which a package's source code is released.+ Versions of the licenses not listed here will be rejected by Hackage and+ cause <code>cabal check</code> to issue a warning.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GPL" class="def">GPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</td><td class="doc"><p>GNU General Public License,+ <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">version 2</a> or+ <a href="https://www.gnu.org/licenses/gpl.html">version 3</a>.</p></td></tr><tr><td class="src"><a id="v:AGPL" class="def">AGPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</td><td class="doc"><p><a href="https://www.gnu.org/licenses/agpl.html">GNU Affero General Public License, version 3</a>.</p></td></tr><tr><td class="src"><a id="v:LGPL" class="def">LGPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</td><td class="doc"><p>GNU Lesser General Public License,+ <a href="https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">version 2.1</a> or+ <a href="https://www.gnu.org/licenses/lgpl.html">version 3</a>.</p></td></tr><tr><td class="src"><a id="v:BSD2" class="def">BSD2</a></td><td class="doc"><p><a href="http://www.opensource.org/licenses/bsd-license">2-clause BSD license</a>.</p></td></tr><tr><td class="src"><a id="v:BSD3" class="def">BSD3</a></td><td class="doc"><p><a href="http://www.opensource.org/licenses/bsd-3-clause">3-clause BSD license</a>.</p></td></tr><tr><td class="src"><a id="v:BSD4" class="def">BSD4</a></td><td class="doc"><p><a href="http://directory.fsf.org/wiki/License:BSD_4Clause">4-clause BSD license</a>.+ This license has not been approved by the OSI and is incompatible with+ the GNU GPL. It is provided for historical reasons and should be avoided.</p></td></tr><tr><td class="src"><a id="v:MIT" class="def">MIT</a></td><td class="doc"><p><a href="http://www.opensource.org/licenses/MIT">MIT license</a>.</p></td></tr><tr><td class="src"><a id="v:ISC" class="def">ISC</a></td><td class="doc"><p><a href="http://www.isc.org/downloads/software-support-policy/isc-license/">ISC license</a></p></td></tr><tr><td class="src"><a id="v:MPL" class="def">MPL</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p><a href="https://www.mozilla.org/MPL/">Mozilla Public License, version 2.0</a>.</p></td></tr><tr><td class="src"><a id="v:Apache" class="def">Apache</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</td><td class="doc"><p><a href="https://www.apache.org/licenses/">Apache License, version 2.0</a>.</p></td></tr><tr><td class="src"><a id="v:PublicDomain" class="def">PublicDomain</a></td><td class="doc"><p>The author of a package disclaims any copyright to its source code and+ dedicates it to the public domain. This is not a software license. Please+ note that it is not possible to dedicate works to the public domain in+ every jurisdiction, nor is a work that is in the public domain in one+ jurisdiction necessarily in the public domain elsewhere.</p></td></tr><tr><td class="src"><a id="v:AllRightsReserved" class="def">AllRightsReserved</a></td><td class="doc"><p>Explicitly 'All Rights Reserved', eg for proprietary software. The+ package may not be legally modified or redistributed by anyone but the+ rightsholder.</p></td></tr><tr><td class="src"><a id="v:UnspecifiedLicense" class="def">UnspecifiedLicense</a></td><td class="doc"><p>No license specified which legally defaults to 'All Rights Reserved'.+ The package may not be legally modified or redistributed by anyone but+ the rightsholder.</p></td></tr><tr><td class="src"><a id="v:OtherLicense" class="def">OtherLicense</a></td><td class="doc"><p>Any other software license.</p></td></tr><tr><td class="src"><a id="v:UnknownLicense" class="def">UnknownLicense</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Indicates an erroneous license name.</p></td></tr></table></div><div class="subs instances"><p id="control.i:License" class="caption collapser" onclick="toggleSection('i:License')">Instances</p><div id="section.i:License" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Eq:1" class="instance expander" onclick="toggleSection('i:id:License:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-License.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-License.html#t:License">License</a> -> <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-License.html#t:License">License</a> -> <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Data:2" class="instance expander" onclick="toggleSection('i:id:License:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-License.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-License.html#t:License">License</a> -> c <a href="Distribution-License.html#t:License">License</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-License.html#t:License">License</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-License.html#t:License">License</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-License.html#t:License">License</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-License.html#t:License">License</a> -> <a href="Distribution-License.html#t:License">License</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-License.html#t:License">License</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-License.html#t:License">License</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-License.html#t:License">License</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-License.html#t:License">License</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-License.html#t:License">License</a> -> m <a href="Distribution-License.html#t:License">License</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-License.html#t:License">License</a> -> m <a href="Distribution-License.html#t:License">License</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-License.html#t:License">License</a> -> m <a href="Distribution-License.html#t:License">License</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Read:3" class="instance expander" onclick="toggleSection('i:id:License:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-License.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-License.html#t:License">License</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-License.html#t:License">License</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-License.html#t:License">License</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-License.html#t:License">License</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Show:4" class="instance expander" onclick="toggleSection('i:id:License:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-License.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-License.html#t:License">License</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Generic:5" class="instance expander" onclick="toggleSection('i:id:License:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-License.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-License.html#t:License">License</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-License.html#t:License">License</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-License.html#t:License">License</a> x -> <a href="Distribution-License.html#t:License">License</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Binary:6" class="instance expander" onclick="toggleSection('i:id:License:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-License.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-License.html#t:License">License</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-License.html#t:License">License</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Text:7" class="instance expander" onclick="toggleSection('i:id:License:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-License.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-License.html#t:License">License</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Rep:8" class="instance expander" onclick="toggleSection('i:id:License:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-License.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-License.html#t:License">License</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "License" "Distribution.License" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GPL" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AGPL" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LGPL" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BSD2" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BSD3" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BSD4" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MIT" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ISC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MPL" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Apache" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PublicDomain" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AllRightsReserved" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnspecifiedLicense" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OtherLicense" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnknownLicense" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownLicenses" class="def">knownLicenses</a> :: [<a href="Distribution-License.html#t:License">License</a>] <a href="#v:knownLicenses" class="selflink">#</a></p><div class="doc"><p>The list of all currently recognised licenses.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Make.html view
@@ -0,0 +1,46 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Make</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Martin Sj&#xF6;gren 2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Make</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is an alternative build system that delegates everything to the <code>make</code>+ program. All the commands just end up calling <code>make</code> with appropriate+ arguments. The intention was to allow preexisting packages that used+ makefiles to be wrapped into Cabal packages. In practice essentially all+ such packages were converted over to the "Simple" build system instead.+ Consequently this module is not used much and it certainly only sees cursory+ maintenance and no testing. Perhaps at some point we should stop pretending+ that it works.</p><p>Uses the parsed command-line from <a href="Distribution-Simple-Setup.html">Distribution.Simple.Setup</a> in order to build+ Haskell tools using a back-end build system based on make. Obviously we+ assume that there is a configure script, and that after the ConfigCmd has+ been run, there is a Makefile. Further assumptions:</p><dl><dt>ConfigCmd</dt><dd>We assume the configure script accepts+ <code>--with-hc</code>,+ <code>--with-hc-pkg</code>,+ <code>--prefix</code>,+ <code>--bindir</code>,+ <code>--libdir</code>,+ <code>--libexecdir</code>,+ <code>--datadir</code>.</dd><dt>BuildCmd</dt><dd>We assume that the default Makefile target will build everything.</dd><dt>InstallCmd</dt><dd>We assume there is an <code>install</code> target. Note that we assume that+ this does *not* register the package!</dd><dt>CopyCmd</dt><dd>We assume there is a <code>copy</code> target, and a variable <code>$(destdir)</code>.+ The <code>copy</code> target should probably just invoke <code>make install</code>+ recursively (e.g. <code>$(MAKE) install prefix=$(destdir)/$(prefix)+ bindir=$(destdir)/$(bindir)</code>. The reason we can't invoke <code>make+ install</code> directly here is that we don't know the value of <code>$(prefix)</code>.</dd><dt>SDistCmd</dt><dd>We assume there is a <code>dist</code> target.</dd><dt>RegisterCmd</dt><dd>We assume there is a <code>register</code> target and a variable <code>$(user)</code>.</dd><dt>UnregisterCmd</dt><dd>We assume there is an <code>unregister</code> target.</dd><dt>HaddockCmd</dt><dd>We assume there is a <code>docs</code> or <code>doc</code> target.</dd></dl></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short">module <a href="Distribution-Package.html">Distribution.Package</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:License">License</a><ul class="subs"><li>= <a href="#v:GPL">GPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)</li><li>| <a href="#v:AGPL">AGPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)</li><li>| <a href="#v:LGPL">LGPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)</li><li>| <a href="#v:BSD2">BSD2</a></li><li>| <a href="#v:BSD3">BSD3</a></li><li>| <a href="#v:BSD4">BSD4</a></li><li>| <a href="#v:MIT">MIT</a></li><li>| <a href="#v:ISC">ISC</a></li><li>| <a href="#v:MPL">MPL</a> <a href="Distribution-Make.html#t:Version">Version</a></li><li>| <a href="#v:Apache">Apache</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)</li><li>| <a href="#v:PublicDomain">PublicDomain</a></li><li>| <a href="#v:AllRightsReserved">AllRightsReserved</a></li><li>| <a href="#v:UnspecifiedLicense">UnspecifiedLicense</a></li><li>| <a href="#v:OtherLicense">OtherLicense</a></li><li>| <a href="#v:UnknownLicense">UnknownLicense</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Version">Version</a></li><li class="src short"><a href="#v:defaultMain">defaultMain</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:defaultMainArgs">defaultMainArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:defaultMainNoRead">defaultMainNoRead</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src">module <a href="Distribution-Package.html">Distribution.Package</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:License" class="def">License</a> <a href="#t:License" class="selflink">#</a></p><div class="doc"><p>Indicates the license under which a package's source code is released.+ Versions of the licenses not listed here will be rejected by Hackage and+ cause <code>cabal check</code> to issue a warning.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GPL" class="def">GPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)</td><td class="doc"><p>GNU General Public License,+ <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">version 2</a> or+ <a href="https://www.gnu.org/licenses/gpl.html">version 3</a>.</p></td></tr><tr><td class="src"><a id="v:AGPL" class="def">AGPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)</td><td class="doc"><p><a href="https://www.gnu.org/licenses/agpl.html">GNU Affero General Public License, version 3</a>.</p></td></tr><tr><td class="src"><a id="v:LGPL" class="def">LGPL</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)</td><td class="doc"><p>GNU Lesser General Public License,+ <a href="https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">version 2.1</a> or+ <a href="https://www.gnu.org/licenses/lgpl.html">version 3</a>.</p></td></tr><tr><td class="src"><a id="v:BSD2" class="def">BSD2</a></td><td class="doc"><p><a href="http://www.opensource.org/licenses/bsd-license">2-clause BSD license</a>.</p></td></tr><tr><td class="src"><a id="v:BSD3" class="def">BSD3</a></td><td class="doc"><p><a href="http://www.opensource.org/licenses/bsd-3-clause">3-clause BSD license</a>.</p></td></tr><tr><td class="src"><a id="v:BSD4" class="def">BSD4</a></td><td class="doc"><p><a href="http://directory.fsf.org/wiki/License:BSD_4Clause">4-clause BSD license</a>.+ This license has not been approved by the OSI and is incompatible with+ the GNU GPL. It is provided for historical reasons and should be avoided.</p></td></tr><tr><td class="src"><a id="v:MIT" class="def">MIT</a></td><td class="doc"><p><a href="http://www.opensource.org/licenses/MIT">MIT license</a>.</p></td></tr><tr><td class="src"><a id="v:ISC" class="def">ISC</a></td><td class="doc"><p><a href="http://www.isc.org/downloads/software-support-policy/isc-license/">ISC license</a></p></td></tr><tr><td class="src"><a id="v:MPL" class="def">MPL</a> <a href="Distribution-Make.html#t:Version">Version</a></td><td class="doc"><p><a href="https://www.mozilla.org/MPL/">Mozilla Public License, version 2.0</a>.</p></td></tr><tr><td class="src"><a id="v:Apache" class="def">Apache</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)</td><td class="doc"><p><a href="https://www.apache.org/licenses/">Apache License, version 2.0</a>.</p></td></tr><tr><td class="src"><a id="v:PublicDomain" class="def">PublicDomain</a></td><td class="doc"><p>The author of a package disclaims any copyright to its source code and+ dedicates it to the public domain. This is not a software license. Please+ note that it is not possible to dedicate works to the public domain in+ every jurisdiction, nor is a work that is in the public domain in one+ jurisdiction necessarily in the public domain elsewhere.</p></td></tr><tr><td class="src"><a id="v:AllRightsReserved" class="def">AllRightsReserved</a></td><td class="doc"><p>Explicitly 'All Rights Reserved', eg for proprietary software. The+ package may not be legally modified or redistributed by anyone but the+ rightsholder.</p></td></tr><tr><td class="src"><a id="v:UnspecifiedLicense" class="def">UnspecifiedLicense</a></td><td class="doc"><p>No license specified which legally defaults to 'All Rights Reserved'.+ The package may not be legally modified or redistributed by anyone but+ the rightsholder.</p></td></tr><tr><td class="src"><a id="v:OtherLicense" class="def">OtherLicense</a></td><td class="doc"><p>Any other software license.</p></td></tr><tr><td class="src"><a id="v:UnknownLicense" class="def">UnknownLicense</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Indicates an erroneous license name.</p></td></tr></table></div><div class="subs instances"><p id="control.i:License" class="caption collapser" onclick="toggleSection('i:License')">Instances</p><div id="section.i:License" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Eq:1" class="instance expander" onclick="toggleSection('i:id:License:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Make.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Make.html#t:License">License</a> -> <a href="Distribution-Make.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Make.html#t:License">License</a> -> <a href="Distribution-Make.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Data:2" class="instance expander" onclick="toggleSection('i:id:License:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Make.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Make.html#t:License">License</a> -> c <a href="Distribution-Make.html#t:License">License</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Make.html#t:License">License</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Make.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Make.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Make.html#t:License">License</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Make.html#t:License">License</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Make.html#t:License">License</a> -> <a href="Distribution-Make.html#t:License">License</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Make.html#t:License">License</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Make.html#t:License">License</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Make.html#t:License">License</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Make.html#t:License">License</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Make.html#t:License">License</a> -> m <a href="Distribution-Make.html#t:License">License</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Make.html#t:License">License</a> -> m <a href="Distribution-Make.html#t:License">License</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Make.html#t:License">License</a> -> m <a href="Distribution-Make.html#t:License">License</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Read:3" class="instance expander" onclick="toggleSection('i:id:License:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Make.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Make.html#t:License">License</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Make.html#t:License">License</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Make.html#t:License">License</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Make.html#t:License">License</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Show:4" class="instance expander" onclick="toggleSection('i:id:License:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Make.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Make.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Make.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Make.html#t:License">License</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Generic:5" class="instance expander" onclick="toggleSection('i:id:License:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Make.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:License">License</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Make.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:License">License</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:License">License</a> x -> <a href="Distribution-Make.html#t:License">License</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Binary:6" class="instance expander" onclick="toggleSection('i:id:License:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Make.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Make.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Make.html#t:License">License</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Make.html#t:License">License</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Text:7" class="instance expander" onclick="toggleSection('i:id:License:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Make.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Make.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Make.html#t:License">License</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:License:Rep:8" class="instance expander" onclick="toggleSection('i:id:License:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:License">License</a></span> <a href="#t:License" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:License:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:License">License</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "License" "Distribution.License" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GPL" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AGPL" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LGPL" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BSD2" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BSD3" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BSD4" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MIT" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ISC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MPL" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Make.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Apache" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Make.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PublicDomain" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AllRightsReserved" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnspecifiedLicense" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OtherLicense" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnknownLicense" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Version" class="def">Version</a> <a href="#t:Version" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Make.html#t:Version">Version</a></code> represents the version of a software entity.</p><p>Instances of <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a></code> are provided, which gives exact+ equality and lexicographic ordering of the version number+ components (i.e. 2.1 > 2.0, 1.2.3 > 1.2.2, etc.).</p><p>This type is opaque and distinct from the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html#t:Version">Version</a></code> type in+ <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html">Data.Version</a> since <code>Cabal-2.0</code>. The difference extends to the+ <code><a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a></code> instance using a different (and more compact) encoding.</p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:Version" class="caption collapser" onclick="toggleSection('i:Version')">Instances</p><div id="section.i:Version" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Eq:1" class="instance expander" onclick="toggleSection('i:id:Version:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Data:2" class="instance expander" onclick="toggleSection('i:id:Version:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Make.html#t:Version">Version</a> -> c <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Make.html#t:Version">Version</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Make.html#t:Version">Version</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Make.html#t:Version">Version</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Make.html#t:Version">Version</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Make.html#t:Version">Version</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Make.html#t:Version">Version</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Make.html#t:Version">Version</a> -> m <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Make.html#t:Version">Version</a> -> m <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Make.html#t:Version">Version</a> -> m <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Ord:3" class="instance expander" onclick="toggleSection('i:id:Version:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Read:4" class="instance expander" onclick="toggleSection('i:id:Version:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Make.html#t:Version">Version</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Make.html#t:Version">Version</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Show:5" class="instance expander" onclick="toggleSection('i:id:Version:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Make.html#t:Version">Version</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Generic:6" class="instance expander" onclick="toggleSection('i:id:Version:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:Version">Version</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:Version">Version</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:Version">Version</a> x -> <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Binary:7" class="instance expander" onclick="toggleSection('i:id:Version:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Make.html#t:Version">Version</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:NFData:8" class="instance expander" onclick="toggleSection('i:id:Version:NFData:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:NFData:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Text:9" class="instance expander" onclick="toggleSection('i:id:Version:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Make.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Make.html#t:Version">Version</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Rep:10" class="instance expander" onclick="toggleSection('i:id:Version:Rep:10')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Rep:10" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Make.html#t:Version">Version</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Version" "Distribution.Version" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PV0" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:SourceUnpack">SourceUnpack</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:SourceStrict">SourceStrict</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedStrict">DecidedStrict</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compat-Prelude-Internal.html#t:Word64">Word64</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PV1" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:SourceStrict">SourceStrict</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedStrict">DecidedStrict</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>])))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultMain" class="def">defaultMain</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:defaultMain" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultMainArgs" class="def">defaultMainArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:defaultMainArgs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultMainNoRead" class="def">defaultMainNoRead</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:defaultMainNoRead" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: it ignores its PackageDescription arg</p></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-ModuleName.html view
@@ -0,0 +1,8 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.ModuleName</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2008</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.ModuleName</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Internal</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Data type for Haskell module names.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">newtype</span> <a href="#t:ModuleName">ModuleName</a> = <a href="#v:ModuleName">ModuleName</a> ShortTextLst</li><li class="src short"><a href="#v:fromString">fromString</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a</li><li class="src short"><a href="#v:fromComponents">fromComponents</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:components">components</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:toFilePath">toFilePath</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:main">main</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:simple">simple</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:validModuleComponent">validModuleComponent</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:ModuleName" class="def">ModuleName</a> <a href="#t:ModuleName" class="selflink">#</a></p><div class="doc"><p>A valid Haskell module name.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModuleName" class="def">ModuleName</a> ShortTextLst</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ModuleName" class="caption collapser" onclick="toggleSection('i:ModuleName')">Instances</p><div id="section.i:ModuleName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:Eq:1" class="instance expander" onclick="toggleSection('i:id:ModuleName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:Data:2" class="instance expander" onclick="toggleSection('i:id:ModuleName:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> c <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> m <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> m <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> m <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:Ord:3" class="instance expander" onclick="toggleSection('i:id:ModuleName:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:Read:4" class="instance expander" onclick="toggleSection('i:id:ModuleName:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:Show:5" class="instance expander" onclick="toggleSection('i:id:ModuleName:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:IsString:6" class="instance expander" onclick="toggleSection('i:id:ModuleName:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc"><p>Construct a <code><a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></code> from a valid module name <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code>.</p><p>This is just a convenience function intended for valid module strings. It is+ an error if it is used with a string that is not a valid module name. If you+ are parsing user input then use <code><a href="Distribution-Text.html#v:simpleParse">simpleParse</a></code> instead.</p></td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:Generic:7" class="instance expander" onclick="toggleSection('i:id:ModuleName:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> x -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:Binary:8" class="instance expander" onclick="toggleSection('i:id:ModuleName:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:NFData:9" class="instance expander" onclick="toggleSection('i:id:ModuleName:NFData:9')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:NFData:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:Text:10" class="instance expander" onclick="toggleSection('i:id:ModuleName:Text:10')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:Text:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:ModSubst:11" class="instance expander" onclick="toggleSection('i:id:ModuleName:ModSubst:11')"></span> <a href="Distribution-Backpack-ModSubst.html#t:ModSubst">ModSubst</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)</span> <a href="#t:ModSubst" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:ModSubst:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSubst">modSubst</a> :: <a href="Distribution-Backpack.html#t:OpenModuleSubst">OpenModuleSubst</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Set-Internal.html#t:Set">Set</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:modSubst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleName:Rep:12" class="instance expander" onclick="toggleSection('i:id:ModuleName:Rep:12')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleName:Rep:12" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:fromString" class="def">fromString</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a <a href="#v:fromString" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:fromComponents" class="def">fromComponents</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:fromComponents" class="selflink">#</a></p><div class="doc"><p>Construct a <code><a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></code> from valid module components, i.e. parts+ separated by dots.</p></div></div><div class="top"><p class="src"><a id="v:components" class="def">components</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:components" class="selflink">#</a></p><div class="doc"><p>The individual components of a hierarchical module name. For example</p><pre>components (fromString "A.B.C") = ["A", "B", "C"]</pre></div></div><div class="top"><p class="src"><a id="v:toFilePath" class="def">toFilePath</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:toFilePath" class="selflink">#</a></p><div class="doc"><p>Convert a module name to a file path, but without any file extension.+ For example:</p><pre>toFilePath (fromString "A.B.C") = "A/B/C"</pre></div></div><div class="top"><p class="src"><a id="v:main" class="def">main</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:main" class="selflink">#</a></p><div class="doc"><p>The module name <code>Main</code>.</p></div></div><div class="top"><p class="src"><a id="v:simple" class="def">simple</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:simple" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use ModuleName.fromString instead</p></div></div></div><h1 id="g:1">Internal</h1><div class="top"><p class="src"><a id="v:validModuleComponent" class="def">validModuleComponent</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:validModuleComponent" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Package.html view
@@ -0,0 +1,14 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Package</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Package</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Defines a package identifier along with a parser and pretty printer for it.+ <code><a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></code>s consist of a name and an exact version. It also defines+ a <code><a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></code> data type. A dependency is a package name and a version+ range, like <code>"foo >= 1.2 && < 2"</code>.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short">module <a href="Distribution-Types-AbiHash.html">Distribution.Types.AbiHash</a></li><li class="src short">module <a href="Distribution-Types-ComponentId.html">Distribution.Types.ComponentId</a></li><li class="src short">module <a href="Distribution-Types-PackageId.html">Distribution.Types.PackageId</a></li><li class="src short">module <a href="Distribution-Types-UnitId.html">Distribution.Types.UnitId</a></li><li class="src short">module <a href="Distribution-Types-Module.html">Distribution.Types.Module</a></li><li class="src short">module <a href="Distribution-Types-PackageName.html">Distribution.Types.PackageName</a></li><li class="src short">module <a href="Distribution-Types-PkgconfigName.html">Distribution.Types.PkgconfigName</a></li><li class="src short">module <a href="Distribution-Types-Dependency.html">Distribution.Types.Dependency</a></li><li class="src short"><span class="keyword">class</span> <a href="#t:Package">Package</a> pkg <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:packageName">packageName</a> :: <a href="Distribution-Package.html#t:Package">Package</a> pkg => pkg -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></li><li class="src short"><a href="#v:packageVersion">packageVersion</a> :: <a href="Distribution-Package.html#t:Package">Package</a> pkg => pkg -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><span class="keyword">class</span> <a href="#t:HasMungedPackageId">HasMungedPackageId</a> pkg <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:mungedName-39-">mungedName'</a> :: <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> pkg => pkg -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></li><li class="src short"><a href="#v:mungedVersion-39-">mungedVersion'</a> :: <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> munged => munged -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><span class="keyword">class</span> <a href="Distribution-Package.html#t:Package">Package</a> pkg => <a href="#t:HasUnitId">HasUnitId</a> pkg <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:installedPackageId">installedPackageId</a> :: <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> pkg => pkg -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><span class="keyword">class</span> <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> pkg => <a href="#t:PackageInstalled">PackageInstalled</a> pkg <span class="keyword">where</span><ul class="subs"></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src">module <a href="Distribution-Types-AbiHash.html">Distribution.Types.AbiHash</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-ComponentId.html">Distribution.Types.ComponentId</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-PackageId.html">Distribution.Types.PackageId</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-UnitId.html">Distribution.Types.UnitId</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-Module.html">Distribution.Types.Module</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-PackageName.html">Distribution.Types.PackageName</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-PkgconfigName.html">Distribution.Types.PkgconfigName</a></p></div><div class="top"><p class="src">module <a href="Distribution-Types-Dependency.html">Distribution.Types.Dependency</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Package" class="def">Package</a> pkg <span class="keyword">where</span> <a href="#t:Package" class="selflink">#</a></p><div class="doc"><p>Class of things that have a <code><a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></code></p><p>Types in this class are all notions of a package. This allows us to have+ different types for the different phases that packages go though, from+ simple name/id, package description, configured or installed packages.</p><p>Not all kinds of packages can be uniquely identified by a+ <code><a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></code>. In particular, installed packages cannot, there may be+ many installed instances of the same source package.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Package.html#v:packageId">packageId</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:packageId" class="def">packageId</a> :: pkg -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:Package" class="caption collapser" onclick="toggleSection('i:Package')">Instances</p><div id="section.i:Package" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:1" class="instance expander" onclick="toggleSection('i:ic:Package:Package:1')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:2" class="instance expander" onclick="toggleSection('i:ic:Package:Package:2')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:3" class="instance expander" onclick="toggleSection('i:ic:Package:Package:3')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:4" class="instance expander" onclick="toggleSection('i:ic:Package:Package:4')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:5" class="instance expander" onclick="toggleSection('i:ic:Package:Package:5')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">LinkedComponent</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Package:Package:6" class="instance expander" onclick="toggleSection('i:ic:Package:Package:6')"></span> <a href="Distribution-Package.html#t:Package">Package</a> (<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id)</span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Package:Package:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:packageName" class="def">packageName</a> :: <a href="Distribution-Package.html#t:Package">Package</a> pkg => pkg -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:packageName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:packageVersion" class="def">packageVersion</a> :: <a href="Distribution-Package.html#t:Package">Package</a> pkg => pkg -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:packageVersion" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:HasMungedPackageId" class="def">HasMungedPackageId</a> pkg <span class="keyword">where</span> <a href="#t:HasMungedPackageId" class="selflink">#</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Package.html#v:mungedId">mungedId</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:mungedId" class="def">mungedId</a> :: pkg -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:mungedId" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:HasMungedPackageId" class="caption collapser" onclick="toggleSection('i:HasMungedPackageId')">Instances</p><div id="section.i:HasMungedPackageId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasMungedPackageId:HasMungedPackageId:1" class="instance expander" onclick="toggleSection('i:ic:HasMungedPackageId:HasMungedPackageId:1')"></span> <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:HasMungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:HasMungedPackageId:HasMungedPackageId:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mungedId">mungedId</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:mungedId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasMungedPackageId:HasMungedPackageId:2" class="instance expander" onclick="toggleSection('i:ic:HasMungedPackageId:HasMungedPackageId:2')"></span> <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:HasMungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:HasMungedPackageId:HasMungedPackageId:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mungedId">mungedId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:mungedId" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:mungedName-39-" class="def">mungedName'</a> :: <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> pkg => pkg -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:mungedName-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mungedVersion-39-" class="def">mungedVersion'</a> :: <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> munged => munged -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:mungedVersion-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Distribution-Package.html#t:Package">Package</a> pkg => <a id="t:HasUnitId" class="def">HasUnitId</a> pkg <span class="keyword">where</span> <a href="#t:HasUnitId" class="selflink">#</a></p><div class="doc"><p>Packages that have an installed unit ID</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Package.html#v:installedUnitId">installedUnitId</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:installedUnitId" class="def">installedUnitId</a> :: pkg -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:installedUnitId" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:HasUnitId" class="caption collapser" onclick="toggleSection('i:HasUnitId')">Instances</p><div id="section.i:HasUnitId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:HasUnitId:HasUnitId:1" class="instance expander" onclick="toggleSection('i:ic:HasUnitId:HasUnitId:1')"></span> <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:HasUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:HasUnitId:HasUnitId:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:installedUnitId">installedUnitId</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:installedUnitId" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:installedPackageId" class="def">installedPackageId</a> :: <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> pkg => pkg -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:installedPackageId" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use installedUnitId instead</p></div><p>Compatibility wrapper for Cabal pre-1.24.</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> pkg => <a id="t:PackageInstalled" class="def">PackageInstalled</a> pkg <span class="keyword">where</span> <a href="#t:PackageInstalled" class="selflink">#</a></p><div class="doc"><p>Class of installed packages.</p><p>The primary data type which is an instance of this package is+ <code>InstalledPackageInfo</code>, but when we are doing install plans in Cabal install+ we may have other, installed package-like things which contain more metadata.+ Installed packages have exact dependencies <code><a href="Distribution-Package.html#v:installedDepends">installedDepends</a></code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Package.html#v:installedDepends">installedDepends</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:installedDepends" class="def">installedDepends</a> :: pkg -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] <a href="#v:installedDepends" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:PackageInstalled" class="caption collapser" onclick="toggleSection('i:PackageInstalled')">Instances</p><div id="section.i:PackageInstalled" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:PackageInstalled:PackageInstalled:1" class="instance expander" onclick="toggleSection('i:ic:PackageInstalled:PackageInstalled:1')"></span> <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></span> <a href="#t:PackageInstalled" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:PackageInstalled:PackageInstalled:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:installedDepends">installedDepends</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] <a href="#v:installedDepends" class="selflink">#</a></p></div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-PackageDescription-Check.html view
@@ -0,0 +1,39 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.PackageDescription.Check</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Lennart Kolmodin 2008</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.PackageDescription.Check</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Package Checking</a><ul><li><a href="#g:2">Checking package contents</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This has code for checking for various problems in packages. There is one+ set of checks that just looks at a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code> in isolation and+ another set of checks that also looks at files in the package. Some of the+ checks are basic sanity checks, others are portability standards that we'd+ like to encourage. There is a <code><a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a></code> type that distinguishes the+ different kinds of check so we can see which ones are appropriate to report+ in different situations. This code gets uses when configuring a package when+ we consider only basic problems. The higher standard is uses when when+ preparing a source tarball and by Hackage when uploading new packages. The+ reason for this is that we want to hold packages that are expected to be+ distributed to a higher standard than packages that are only ever expected+ to be used on the author's own environment.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:PackageCheck">PackageCheck</a><ul class="subs"><li>= <a href="#v:PackageBuildImpossible">PackageBuildImpossible</a> { <ul class="subs"><li><a href="#v:explanation">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul> }</li><li>| <a href="#v:PackageBuildWarning">PackageBuildWarning</a> { <ul class="subs"><li><a href="#v:explanation">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul> }</li><li>| <a href="#v:PackageDistSuspicious">PackageDistSuspicious</a> { <ul class="subs"><li><a href="#v:explanation">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul> }</li><li>| <a href="#v:PackageDistSuspiciousWarn">PackageDistSuspiciousWarn</a> { <ul class="subs"><li><a href="#v:explanation">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul> }</li><li>| <a href="#v:PackageDistInexcusable">PackageDistInexcusable</a> { <ul class="subs"><li><a href="#v:explanation">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul> }</li></ul></li><li class="src short"><a href="#v:checkPackage">checkPackage</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>]</li><li class="src short"><a href="#v:checkConfiguredPackage">checkConfiguredPackage</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>]</li><li class="src short"><a href="#v:checkPackageFiles">checkPackageFiles</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>]</li><li class="src short"><a href="#v:checkPackageContent">checkPackageContent</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Distribution-PackageDescription-Check.html#t:CheckPackageContentOps">CheckPackageContentOps</a> m -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> m [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:CheckPackageContentOps">CheckPackageContentOps</a> m = <a href="#v:CheckPackageContentOps">CheckPackageContentOps</a> {<ul class="subs"><li><a href="#v:doesFileExist">doesFileExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> m <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:doesDirectoryExist">doesDirectoryExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> m <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:getDirectoryContents">getDirectoryContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> m [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:getFileContents">getFileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> m <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul>}</li><li class="src short"><a href="#v:checkPackageFileNames">checkPackageFileNames</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>]</li></ul></div><div id="interface"><h1 id="g:1">Package Checking</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PackageCheck" class="def">PackageCheck</a> <a href="#t:PackageCheck" class="selflink">#</a></p><div class="doc"><p>Results of some kind of failed package check.</p><p>There are a range of severities, from merely dubious to totally insane.+ All of them come with a human readable explanation. In future we may augment+ them with more machine readable explanations, for example to help an IDE+ suggest automatic corrections.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:PackageBuildImpossible" class="def">PackageBuildImpossible</a></td><td class="doc"><p>This package description is no good. There's no way it's going to+ build sensibly. This should give an error at configure time.</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:explanation" class="def">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:PackageBuildWarning" class="def">PackageBuildWarning</a></td><td class="doc"><p>A problem that is likely to affect building the package, or an+ issue that we'd like every package author to be aware of, even if+ the package is never distributed.</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:explanation" class="def">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:PackageDistSuspicious" class="def">PackageDistSuspicious</a></td><td class="doc"><p>An issue that might not be a problem for the package author but+ might be annoying or detrimental when the package is distributed to+ users. We should encourage distributed packages to be free from these+ issues, but occasionally there are justifiable reasons so we cannot+ ban them entirely.</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:explanation" class="def">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:PackageDistSuspiciousWarn" class="def">PackageDistSuspiciousWarn</a></td><td class="doc"><p>Like PackageDistSuspicious but will only display warnings+ rather than causing abnormal exit when you run 'cabal check'.</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:explanation" class="def">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:PackageDistInexcusable" class="def">PackageDistInexcusable</a></td><td class="doc"><p>An issue that is OK in the author's environment but is almost+ certain to be a portability problem for other environments. We can+ quite legitimately refuse to publicly distribute packages with these+ problems.</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:explanation" class="def">explanation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:PackageCheck" class="caption collapser" onclick="toggleSection('i:PackageCheck')">Instances</p><div id="section.i:PackageCheck" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageCheck:Eq:1" class="instance expander" onclick="toggleSection('i:id:PackageCheck:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a></span> <a href="#t:PackageCheck" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageCheck:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a> -> <a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a> -> <a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageCheck:Show:2" class="instance expander" onclick="toggleSection('i:id:PackageCheck:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a></span> <a href="#t:PackageCheck" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageCheck:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:checkPackage" class="def">checkPackage</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>] <a href="#v:checkPackage" class="selflink">#</a></p><div class="doc"><p>Check for common mistakes and problems in package descriptions.</p><p>This is the standard collection of checks covering all aspects except+ for checks that require looking at files within the package. For those+ see <code><a href="Distribution-PackageDescription-Check.html#v:checkPackageFiles">checkPackageFiles</a></code>.</p><p>It requires the <code><a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></code> and optionally a particular+ configuration of that package. If you pass <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code> then we just check+ a version of the generic description using <code><a href="Distribution-PackageDescription-Configuration.html#v:flattenPackageDescription">flattenPackageDescription</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:checkConfiguredPackage" class="def">checkConfiguredPackage</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>] <a href="#v:checkConfiguredPackage" class="selflink">#</a></p></div><h2 id="g:2">Checking package contents</h2><div class="top"><p class="src"><a id="v:checkPackageFiles" class="def">checkPackageFiles</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>] <a href="#v:checkPackageFiles" class="selflink">#</a></p><div class="doc"><p>Sanity check things that requires IO. It looks at the files in the+ package and expects to find the package unpacked in at the given file path.</p></div></div><div class="top"><p class="src"><a id="v:checkPackageContent" class="def">checkPackageContent</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Distribution-PackageDescription-Check.html#t:CheckPackageContentOps">CheckPackageContentOps</a> m -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> m [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>] <a href="#v:checkPackageContent" class="selflink">#</a></p><div class="doc"><p>Sanity check things that requires looking at files in the package.+ This is a generalised version of <code><a href="Distribution-PackageDescription-Check.html#v:checkPackageFiles">checkPackageFiles</a></code> that can work in any+ monad for which you can provide <code><a href="Distribution-PackageDescription-Check.html#t:CheckPackageContentOps">CheckPackageContentOps</a></code> operations.</p><p>The point of this extra generality is to allow doing checks in some virtual+ file system, for example a tarball in memory.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CheckPackageContentOps" class="def">CheckPackageContentOps</a> m <a href="#t:CheckPackageContentOps" class="selflink">#</a></p><div class="doc"><p>A record of operations needed to check the contents of packages.+ Used by <code><a href="Distribution-PackageDescription-Check.html#v:checkPackageContent">checkPackageContent</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CheckPackageContentOps" class="def">CheckPackageContentOps</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:doesFileExist" class="def">doesFileExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> m <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:doesDirectoryExist" class="def">doesDirectoryExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> m <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:getDirectoryContents" class="def">getDirectoryContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> m [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:getFileContents" class="def">getFileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> m <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:checkPackageFileNames" class="def">checkPackageFileNames</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [<a href="Distribution-PackageDescription-Check.html#t:PackageCheck">PackageCheck</a>] <a href="#v:checkPackageFileNames" class="selflink">#</a></p><div class="doc"><p>Check the names of all files in a package for portability problems. This+ should be done for example when creating or validating a package tarball.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-PackageDescription-Configuration.html view
@@ -0,0 +1,44 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.PackageDescription.Configuration</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Thomas Schilling 2007</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.PackageDescription.Configuration</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is about the cabal configurations feature. It exports+ <code><a href="Distribution-PackageDescription-Configuration.html#v:finalizePD">finalizePD</a></code> and <code><a href="Distribution-PackageDescription-Configuration.html#v:flattenPackageDescription">flattenPackageDescription</a></code> which are+ functions for converting <code><a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></code>s down to+ <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code>s. It has code for working with the tree of conditions+ and resolving or flattening conditions.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:finalizePD">finalizePD</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a> -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> (<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] (<a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>, <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a>)</li><li class="src short"><a href="#v:finalizePackageDescription">finalizePackageDescription</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a> -> (<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] (<a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>, <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a>)</li><li class="src short"><a href="#v:flattenPackageDescription">flattenPackageDescription</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li class="src short"><a href="#v:parseCondition">parseCondition</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a>)</li><li class="src short"><a href="#v:freeVars">freeVars</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> c a -> [<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>]</li><li class="src short"><a href="#v:extractCondition">extractCondition</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v => (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v</li><li class="src short"><a href="#v:extractConditions">extractConditions</a> :: (<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> [<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a>]</li><li class="src short"><a href="#v:addBuildableCondition">addBuildableCondition</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> c) => (a -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a</li><li class="src short"><a href="#v:mapCondTree">mapCondTree</a> :: (a -> b) -> (c -> d) -> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> w) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> w d b</li><li class="src short"><a href="#v:mapTreeData">mapTreeData</a> :: (a -> b) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c b</li><li class="src short"><a href="#v:mapTreeConds">mapTreeConds</a> :: (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> w) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> w c a</li><li class="src short"><a href="#v:mapTreeConstrs">mapTreeConstrs</a> :: (c -> d) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v d a</li><li class="src short"><a href="#v:transformAllBuildInfos">transformAllBuildInfos</a> :: (<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>) -> (<a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></li><li class="src short"><a href="#v:transformAllBuildDepends">transformAllBuildDepends</a> :: (<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:finalizePD" class="def">finalizePD</a> <a href="#v:finalizePD" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></td><td class="doc"><p>Explicitly specified flag assignments</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> (<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)</td><td class="doc"><p>Is a given dependency satisfiable from the set of+ available packages? If this is unknown then use+ True.</p></td></tr><tr><td class="src">-> <a href="Distribution-System.html#t:Platform">Platform</a></td><td class="doc"><p>The <code><a href="Distribution-System.html#t:Arch">Arch</a></code> and <code><a href="Distribution-System.html#t:OS">OS</a></code></p></td></tr><tr><td class="src">-> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a></td><td class="doc"><p>Compiler information</p></td></tr><tr><td class="src">-> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</td><td class="doc"><p>Additional constraints</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] (<a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>, <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a>)</td><td class="doc"><p>Either missing dependencies or the resolved package+ description along with the flag assignments chosen.</p></td></tr></table></div><div class="doc"><p>Create a package description with all configurations resolved.</p><p>This function takes a <code><a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></code> and several environment+ parameters and tries to generate <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code> by finding a flag+ assignment that result in satisfiable dependencies.</p><p>It takes as inputs a not necessarily complete specifications of flags+ assignments, an optional package index as well as platform parameters. If+ some flags are not assigned explicitly, this function will try to pick an+ assignment that causes this function to succeed. The package index is+ optional since on some platforms we cannot determine which packages have+ been installed before. When no package index is supplied, every dependency+ is assumed to be satisfiable, therefore all not explicitly assigned flags+ will get their default values.</p><p>This function will fail if it cannot find a flag assignment that leads to+ satisfiable dependencies. (It will not try alternative assignments for+ explicitly specified flags.) In case of failure it will return the missing+ dependencies that it encountered when trying different flag assignments.+ On success, it will return the package description and the full flag+ assignment chosen.</p><p>Note that this drops any stanzas which have <code>buildable: False</code>. While+ this is arguably the right thing to do, it means we give bad error+ messages in some situations, see #3858.</p></div></div><div class="top"><p class="src"><a id="v:finalizePackageDescription" class="def">finalizePackageDescription</a> <a href="#v:finalizePackageDescription" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></td><td class="doc"><p>Explicitly specified flag assignments</p></td></tr><tr><td class="src">-> (<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)</td><td class="doc"><p>Is a given dependency satisfiable from the set of+ available packages? If this is unknown then use+ True.</p></td></tr><tr><td class="src">-> <a href="Distribution-System.html#t:Platform">Platform</a></td><td class="doc"><p>The <code><a href="Distribution-System.html#t:Arch">Arch</a></code> and <code><a href="Distribution-System.html#t:OS">OS</a></code></p></td></tr><tr><td class="src">-> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a></td><td class="doc"><p>Compiler information</p></td></tr><tr><td class="src">-> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</td><td class="doc"><p>Additional constraints</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] (<a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>, <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><div class="warning"><p>Deprecated: This function now always assumes tests and benchmarks are disabled; use finalizePD with ComponentRequestedSpec to specify something more specific.</p></div></div></div><div class="top"><p class="src"><a id="v:flattenPackageDescription" class="def">flattenPackageDescription</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:flattenPackageDescription" class="selflink">#</a></p><div class="doc"><p>Flatten a generic package description by ignoring all conditions and just+ join the field descriptors into on package description. Note, however,+ that this may lead to inconsistent field values, since all values are+ joined into one field, which may not be possible in the original package+ description, due to the use of exclusive choices (if ... else ...).</p><p>TODO: One particularly tricky case is defaulting. In the original package+ description, e.g., the source directory might either be the default or a+ certain, explicitly set path. Since defaults are filled in only after the+ package has been resolved and when no explicit value has been set, the+ default path will be missing from the package description returned by this+ function.</p></div></div><div class="top"><p class="src"><a id="v:parseCondition" class="def">parseCondition</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a>) <a href="#v:parseCondition" class="selflink">#</a></p><div class="doc"><p>Parse a configuration condition from a string.</p></div></div><div class="top"><p class="src"><a id="v:freeVars" class="def">freeVars</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> c a -> [<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>] <a href="#v:freeVars" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extractCondition" class="def">extractCondition</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v => (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v <a href="#v:extractCondition" class="selflink">#</a></p><div class="doc"><p>Extract the condition matched by the given predicate from a cond tree.</p><p>We use this mainly for extracting buildable conditions (see the Note above),+ but the function is in fact more general.</p></div></div><div class="top"><p class="src"><a id="v:extractConditions" class="def">extractConditions</a> :: (<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> [<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a>] <a href="#v:extractConditions" class="selflink">#</a></p><div class="doc"><p>Extract conditions matched by the given predicate from all cond trees in a+ <code><a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:addBuildableCondition" class="def">addBuildableCondition</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> c) => (a -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a <a href="#v:addBuildableCondition" class="selflink">#</a></p><div class="doc"><p>Transforms a <code><a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a></code> by putting the input under the "then" branch of a+ conditional that is True when Buildable is True. If <code><a href="Distribution-PackageDescription-Configuration.html#v:addBuildableCondition">addBuildableCondition</a></code>+ can determine that Buildable is always True, it returns the input unchanged.+ If Buildable is always False, it returns the empty <code><a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:mapCondTree" class="def">mapCondTree</a> :: (a -> b) -> (c -> d) -> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> w) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> w d b <a href="#v:mapCondTree" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mapTreeData" class="def">mapTreeData</a> :: (a -> b) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c b <a href="#v:mapTreeData" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mapTreeConds" class="def">mapTreeConds</a> :: (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> w) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> w c a <a href="#v:mapTreeConds" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mapTreeConstrs" class="def">mapTreeConstrs</a> :: (c -> d) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v d a <a href="#v:mapTreeConstrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:transformAllBuildInfos" class="def">transformAllBuildInfos</a> :: (<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>) -> (<a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:transformAllBuildInfos" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:transformAllBuildDepends" class="def">transformAllBuildDepends</a> :: (<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:transformAllBuildDepends" class="selflink">#</a></p><div class="doc"><p>Walk a <code><a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></code> and apply <code>f</code> to all nested+ <code>build-depends</code> fields.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-PackageDescription-Parse.html view
@@ -0,0 +1,13 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.PackageDescription.Parse</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.PackageDescription.Parse</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Package descriptions</a><ul><li><a href="#g:2">Deprecated names</a></li><li><a href="#g:3">Parsing</a></li><li><a href="#g:4">Private, but needed for pretty-printer</a></li><li><a href="#g:5">Supplementary build information</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This defined parsers and partial pretty printers for the <code>.cabal</code> format.+ Some of the complexity in this module is due to the fact that we have to be+ backwards compatible with old <code>.cabal</code> files, so there's code to translate+ into the newer structure.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:readGenericPackageDescription">readGenericPackageDescription</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></li><li class="src short"><a href="#v:parseGenericPackageDescription">parseGenericPackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></li><li class="src short"><a href="#v:readPackageDescription">readPackageDescription</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></li><li class="src short"><a href="#v:parsePackageDescription">parsePackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ParseResult">ParseResult</a> a<ul class="subs"><li>= <a href="#v:ParseFailed">ParseFailed</a> <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a></li><li>| <a href="#v:ParseOk">ParseOk</a> [<a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a>] a</li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:FieldDescr">FieldDescr</a> a = <a href="#v:FieldDescr">FieldDescr</a> {<ul class="subs"><li><a href="#v:fieldName">fieldName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:fieldGet">fieldGet</a> :: a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></li><li><a href="#v:fieldSet">fieldSet</a> :: <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:LineNo">LineNo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:TestSuiteStanza">TestSuiteStanza</a> = <a href="#v:TestSuiteStanza">TestSuiteStanza</a> {<ul class="subs"><li><a href="#v:testStanzaTestType">testStanzaTestType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></li><li><a href="#v:testStanzaMainIs">testStanzaMainIs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:testStanzaTestModule">testStanzaTestModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li><a href="#v:testStanzaBuildInfo">testStanzaBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:BenchmarkStanza">BenchmarkStanza</a> = <a href="#v:BenchmarkStanza">BenchmarkStanza</a> {<ul class="subs"><li><a href="#v:benchmarkStanzaBenchmarkType">benchmarkStanzaBenchmarkType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></li><li><a href="#v:benchmarkStanzaMainIs">benchmarkStanzaMainIs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:benchmarkStanzaBenchmarkModule">benchmarkStanzaBenchmarkModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li><a href="#v:benchmarkStanzaBuildInfo">benchmarkStanzaBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><a href="#v:readHookedBuildInfo">readHookedBuildInfo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li class="src short"><a href="#v:parseHookedBuildInfo">parseHookedBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li class="src short"><a href="#v:pkgDescrFieldDescrs">pkgDescrFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>]</li><li class="src short"><a href="#v:libFieldDescrs">libFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-Library.html#t:Library">Library</a>]</li><li class="src short"><a href="#v:foreignLibFieldDescrs">foreignLibFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>]</li><li class="src short"><a href="#v:executableFieldDescrs">executableFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a>]</li><li class="src short"><a href="#v:binfoFieldDescrs">binfoFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>]</li><li class="src short"><a href="#v:sourceRepoFieldDescrs">sourceRepoFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>]</li><li class="src short"><a href="#v:testSuiteFieldDescrs">testSuiteFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-PackageDescription-Parse.html#t:TestSuiteStanza">TestSuiteStanza</a>]</li><li class="src short"><a href="#v:benchmarkFieldDescrs">benchmarkFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-PackageDescription-Parse.html#t:BenchmarkStanza">BenchmarkStanza</a>]</li><li class="src short"><a href="#v:flagFieldDescrs">flagFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a>]</li></ul></div><div id="interface"><h1 id="g:1">Package descriptions</h1><div class="top"><p class="src"><a id="v:readGenericPackageDescription" class="def">readGenericPackageDescription</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:readGenericPackageDescription" class="selflink">#</a></p><div class="doc"><p>Parse the given package file.</p></div></div><div class="top"><p class="src"><a id="v:parseGenericPackageDescription" class="def">parseGenericPackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:parseGenericPackageDescription" class="selflink">#</a></p><div class="doc"><p>Parses the given file into a <code><a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></code>.</p><p>In Cabal 1.2 the syntax for package descriptions was changed to a format+ with sections and possibly indented property descriptions.</p></div></div><h2 id="g:2">Deprecated names</h2><div class="top"><p class="src"><a id="v:readPackageDescription" class="def">readPackageDescription</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:readPackageDescription" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use readGenericPackageDescription, old name is misleading.</p></div></div></div><div class="top"><p class="src"><a id="v:parsePackageDescription" class="def">parsePackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:parsePackageDescription" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use parseGenericPackageDescription, old name is misleading</p></div></div></div><h2 id="g:3">Parsing</h2><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ParseResult" class="def">ParseResult</a> a <a href="#t:ParseResult" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ParseFailed" class="def">ParseFailed</a> <a href="Distribution-InstalledPackageInfo.html#t:PError">PError</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ParseOk" class="def">ParseOk</a> [<a href="Distribution-InstalledPackageInfo.html#t:PWarning">PWarning</a>] a</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ParseResult" class="caption collapser" onclick="toggleSection('i:ParseResult')">Instances</p><div id="section.i:ParseResult" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:Monad:1" class="instance expander" onclick="toggleSection('i:id:ParseResult:Monad:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a></span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(>>=)</a> :: <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a -> (a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b) -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(>>)</a> :: <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:Functor:2" class="instance expander" onclick="toggleSection('i:id:ParseResult:Functor:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a></span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:MonadFail:3" class="instance expander" onclick="toggleSection('i:id:ParseResult:MonadFail:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad-Fail.html#t:MonadFail">MonadFail</a> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a></span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:MonadFail:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:Applicative:4" class="instance expander" onclick="toggleSection('i:id:ParseResult:Applicative:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a></span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:Applicative:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(<*>)</a> :: <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> (a -> b) -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -> b -> c) -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> c <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*>)</a> :: <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(<*)</a> :: <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> b -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ParseResult:Show:5" class="instance expander" onclick="toggleSection('i:id:ParseResult:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a)</span> <a href="#t:ParseResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ParseResult:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:FieldDescr" class="def">FieldDescr</a> a <a href="#t:FieldDescr" class="selflink">#</a></p><div class="doc"><p>Field descriptor. The parameter <code>a</code> parameterizes over where the field's+ value is stored in.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:FieldDescr" class="def">FieldDescr</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:fieldName" class="def">fieldName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:fieldGet" class="def">fieldGet</a> :: a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:fieldSet" class="def">fieldSet</a> :: <a href="Distribution-PackageDescription-Parse.html#t:LineNo">LineNo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> a</dfn><div class="doc"><p><code>fieldSet n str x</code> Parses the field value from the given input+ string <code>str</code> and stores the result in <code>x</code> if the parse was+ successful. Otherwise, reports an error on line number <code>n</code>.</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:LineNo" class="def">LineNo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#t:LineNo" class="selflink">#</a></p></div><h2 id="g:4">Private, but needed for pretty-printer</h2><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestSuiteStanza" class="def">TestSuiteStanza</a> <a href="#t:TestSuiteStanza" class="selflink">#</a></p><div class="doc"><p>An intermediate type just used for parsing the test-suite stanza.+ After validation it is converted into the proper <code><a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></code> type.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestSuiteStanza" class="def">TestSuiteStanza</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:testStanzaTestType" class="def">testStanzaTestType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testStanzaMainIs" class="def">testStanzaMainIs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testStanzaTestModule" class="def">testStanzaTestModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testStanzaBuildInfo" class="def">testStanzaBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BenchmarkStanza" class="def">BenchmarkStanza</a> <a href="#t:BenchmarkStanza" class="selflink">#</a></p><div class="doc"><p>An intermediate type just used for parsing the benchmark stanza.+ After validation it is converted into the proper <code><a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></code> type.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BenchmarkStanza" class="def">BenchmarkStanza</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:benchmarkStanzaBenchmarkType" class="def">benchmarkStanzaBenchmarkType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarkStanzaMainIs" class="def">benchmarkStanzaMainIs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarkStanzaBenchmarkModule" class="def">benchmarkStanzaBenchmarkModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarkStanzaBuildInfo" class="def">benchmarkStanzaBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div></div><h2 id="g:5">Supplementary build information</h2><div class="top"><p class="src"><a id="v:readHookedBuildInfo" class="def">readHookedBuildInfo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a> <a href="#v:readHookedBuildInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:parseHookedBuildInfo" class="def">parseHookedBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">ParseResult</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a> <a href="#v:parseHookedBuildInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pkgDescrFieldDescrs" class="def">pkgDescrFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>] <a href="#v:pkgDescrFieldDescrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:libFieldDescrs" class="def">libFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-Library.html#t:Library">Library</a>] <a href="#v:libFieldDescrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:foreignLibFieldDescrs" class="def">foreignLibFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>] <a href="#v:foreignLibFieldDescrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:executableFieldDescrs" class="def">executableFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a>] <a href="#v:executableFieldDescrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:binfoFieldDescrs" class="def">binfoFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>] <a href="#v:binfoFieldDescrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:sourceRepoFieldDescrs" class="def">sourceRepoFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>] <a href="#v:sourceRepoFieldDescrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:testSuiteFieldDescrs" class="def">testSuiteFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-PackageDescription-Parse.html#t:TestSuiteStanza">TestSuiteStanza</a>] <a href="#v:testSuiteFieldDescrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:benchmarkFieldDescrs" class="def">benchmarkFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-PackageDescription-Parse.html#t:BenchmarkStanza">BenchmarkStanza</a>] <a href="#v:benchmarkFieldDescrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:flagFieldDescrs" class="def">flagFieldDescrs</a> :: [<a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a>] <a href="#v:flagFieldDescrs" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-PackageDescription-PrettyPrint.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.PackageDescription.PrettyPrint</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Jürgen Nicklisch-Franken 2010</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.PackageDescription.PrettyPrint</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Generic package descriptions</a></li><li><a href="#g:2">Package descriptions</a><ul><li><a href="#g:3">Supplementary build information</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Pretty printing for cabal files</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:writeGenericPackageDescription">writeGenericPackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:showGenericPackageDescription">showGenericPackageDescription</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:writePackageDescription">writePackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:showPackageDescription">showPackageDescription</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:writeHookedBuildInfo">writeHookedBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:showHookedBuildInfo">showHookedBuildInfo</a> :: <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1 id="g:1">Generic package descriptions</h1><div class="top"><p class="src"><a id="v:writeGenericPackageDescription" class="def">writeGenericPackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:writeGenericPackageDescription" class="selflink">#</a></p><div class="doc"><p>Writes a .cabal file from a generic package description</p></div></div><div class="top"><p class="src"><a id="v:showGenericPackageDescription" class="def">showGenericPackageDescription</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showGenericPackageDescription" class="selflink">#</a></p><div class="doc"><p>Writes a generic package description to a string</p></div></div><h1 id="g:2">Package descriptions</h1><div class="top"><p class="src"><a id="v:writePackageDescription" class="def">writePackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:writePackageDescription" class="selflink">#</a></p><div class="doc"><pre>since 1.26.0.0</pre></div></div><div class="top"><p class="src"><a id="v:showPackageDescription" class="def">showPackageDescription</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showPackageDescription" class="selflink">#</a></p><div class="doc"><pre>since 1.26.0.0</pre></div></div><h2 id="g:3">Supplementary build information</h2><div class="top"><p class="src"><a id="v:writeHookedBuildInfo" class="def">writeHookedBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:writeHookedBuildInfo" class="selflink">#</a></p><div class="doc"><pre>since 1.26.0.0</pre></div></div><div class="top"><p class="src"><a id="v:showHookedBuildInfo" class="def">showHookedBuildInfo</a> :: <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showHookedBuildInfo" class="selflink">#</a></p><div class="doc"><pre>since 1.26.0.0</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-PackageDescription-Utils.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.PackageDescription.Utils</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.PackageDescription.Utils</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Common utils used by modules under Distribution.PackageDescription.*.</p></div></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:cabalBug" class="def">cabalBug</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a <a href="#v:cabalBug" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:userBug" class="def">userBug</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a <a href="#v:userBug" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-PackageDescription.html view
@@ -0,0 +1,186 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.PackageDescription</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.PackageDescription</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Package descriptions</a><ul><li><a href="#g:2">Renaming (syntactic)</a></li><li><a href="#g:3">Libraries</a></li><li><a href="#g:4">Executables</a></li></ul></li><li><a href="#g:5">Tests</a></li><li><a href="#g:6">Benchmarks</a></li><li><a href="#g:7">Build information</a><ul><li><a href="#g:8">Supplementary build information</a></li></ul></li><li><a href="#g:9">package configuration</a></li><li><a href="#g:10">Source repositories</a></li><li><a href="#g:11">Custom setup build information</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Backwards compatibility reexport of everything you need to know+ about <code>.cabal</code> files.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:PackageDescription">PackageDescription</a> = <a href="#v:PackageDescription">PackageDescription</a> {<ul class="subs"><li><a href="#v:package">package</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></li><li><a href="#v:license">license</a> :: <a href="Distribution-License.html#t:License">License</a></li><li><a href="#v:licenseFiles">licenseFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:copyright">copyright</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:maintainer">maintainer</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:author">author</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:stability">stability</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:testedWith">testedWith</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)]</li><li><a href="#v:homepage">homepage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:pkgUrl">pkgUrl</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:bugReports">bugReports</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:sourceRepos">sourceRepos</a> :: [<a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>]</li><li><a href="#v:synopsis">synopsis</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:description">description</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:category">category</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:customFieldsPD">customFieldsPD</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:buildDepends">buildDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</li><li><a href="#v:specVersionRaw">specVersionRaw</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li><a href="#v:buildType">buildType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></li><li><a href="#v:setupBuildInfo">setupBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></li><li><a href="#v:library">library</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></li><li><a href="#v:subLibraries">subLibraries</a> :: [<a href="Distribution-PackageDescription.html#t:Library">Library</a>]</li><li><a href="#v:executables">executables</a> :: [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>]</li><li><a href="#v:foreignLibs">foreignLibs</a> :: [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>]</li><li><a href="#v:testSuites">testSuites</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>]</li><li><a href="#v:benchmarks">benchmarks</a> :: [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>]</li><li><a href="#v:dataFiles">dataFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:dataDir">dataDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:extraSrcFiles">extraSrcFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:extraTmpFiles">extraTmpFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:extraDocFiles">extraDocFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyPackageDescription">emptyPackageDescription</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li class="src short"><a href="#v:specVersion">specVersion</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:descCabalVersion">descCabalVersion</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:BuildType">BuildType</a><ul class="subs"><li>= <a href="#v:Simple">Simple</a></li><li>| <a href="#v:Configure">Configure</a></li><li>| <a href="#v:Make">Make</a></li><li>| <a href="#v:Custom">Custom</a></li><li>| <a href="#v:UnknownBuildType">UnknownBuildType</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:knownBuildTypes">knownBuildTypes</a> :: [<a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>]</li><li class="src short"><a href="#v:allLibraries">allLibraries</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-PackageDescription.html#t:Library">Library</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ModuleRenaming">ModuleRenaming</a><ul class="subs"><li>= <a href="#v:ModuleRenaming">ModuleRenaming</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)]</li><li>| <a href="#v:DefaultRenaming">DefaultRenaming</a></li><li>| <a href="#v:HidingRenaming">HidingRenaming</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li></ul></li><li class="src short"><a href="#v:defaultRenaming">defaultRenaming</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Library">Library</a> = <a href="#v:Library">Library</a> {<ul class="subs"><li><a href="#v:libName">libName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:exposedModules">exposedModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:reexportedModules">reexportedModules</a> :: [<a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a>]</li><li><a href="#v:signatures">signatures</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:libExposed">libExposed</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:libBuildInfo">libBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:ModuleReexport">ModuleReexport</a> = <a href="#v:ModuleReexport">ModuleReexport</a> {<ul class="subs"><li><a href="#v:moduleReexportOriginalPackage">moduleReexportOriginalPackage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></li><li><a href="#v:moduleReexportOriginalName">moduleReexportOriginalName</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li><a href="#v:moduleReexportName">moduleReexportName</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li></ul>}</li><li class="src short"><a href="#v:emptyLibrary">emptyLibrary</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a></li><li class="src short"><a href="#v:withLib">withLib</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hasPublicLib">hasPublicLib</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:hasLibs">hasLibs</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:explicitLibModules">explicitLibModules</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:libModulesAutogen">libModulesAutogen</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:libModules">libModules</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:Executable">Executable</a> = <a href="#v:Executable">Executable</a> {<ul class="subs"><li><a href="#v:exeName">exeName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:modulePath">modulePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:exeScope">exeScope</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></li><li><a href="#v:buildInfo">buildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><a href="#v:emptyExecutable">emptyExecutable</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></li><li class="src short"><a href="#v:withExe">withExe</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hasExes">hasExes</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:exeModules">exeModules</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:exeModulesAutogen">exeModulesAutogen</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:TestSuite">TestSuite</a> = <a href="#v:TestSuite">TestSuite</a> {<ul class="subs"><li><a href="#v:testName">testName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:testInterface">testInterface</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></li><li><a href="#v:testBuildInfo">testBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:TestSuiteInterface">TestSuiteInterface</a><ul class="subs"><li>= <a href="#v:TestSuiteExeV10">TestSuiteExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li>| <a href="#v:TestSuiteLibV09">TestSuiteLibV09</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li>| <a href="#v:TestSuiteUnsupported">TestSuiteUnsupported</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:TestType">TestType</a><ul class="subs"><li>= <a href="#v:TestTypeExe">TestTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:TestTypeLib">TestTypeLib</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:TestTypeUnknown">TestTypeUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></li></ul></li><li class="src short"><a href="#v:testType">testType</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></li><li class="src short"><a href="#v:knownTestTypes">knownTestTypes</a> :: [<a href="Distribution-PackageDescription.html#t:TestType">TestType</a>]</li><li class="src short"><a href="#v:emptyTestSuite">emptyTestSuite</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></li><li class="src short"><a href="#v:hasTests">hasTests</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:withTest">withTest</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:testModules">testModules</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:testModulesAutogen">testModulesAutogen</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:Benchmark">Benchmark</a> = <a href="#v:Benchmark">Benchmark</a> {<ul class="subs"><li><a href="#v:benchmarkName">benchmarkName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:benchmarkInterface">benchmarkInterface</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></li><li><a href="#v:benchmarkBuildInfo">benchmarkBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:BenchmarkInterface">BenchmarkInterface</a><ul class="subs"><li>= <a href="#v:BenchmarkExeV10">BenchmarkExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li>| <a href="#v:BenchmarkUnsupported">BenchmarkUnsupported</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:BenchmarkType">BenchmarkType</a><ul class="subs"><li>= <a href="#v:BenchmarkTypeExe">BenchmarkTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:BenchmarkTypeUnknown">BenchmarkTypeUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></li></ul></li><li class="src short"><a href="#v:benchmarkType">benchmarkType</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></li><li class="src short"><a href="#v:knownBenchmarkTypes">knownBenchmarkTypes</a> :: [<a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>]</li><li class="src short"><a href="#v:emptyBenchmark">emptyBenchmark</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></li><li class="src short"><a href="#v:hasBenchmarks">hasBenchmarks</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:withBenchmark">withBenchmark</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:benchmarkModules">benchmarkModules</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:benchmarkModulesAutogen">benchmarkModulesAutogen</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:BuildInfo">BuildInfo</a> = <a href="#v:BuildInfo">BuildInfo</a> {<ul class="subs"><li><a href="#v:buildable">buildable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:buildTools">buildTools</a> :: [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>]</li><li><a href="#v:buildToolDepends">buildToolDepends</a> :: [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>]</li><li><a href="#v:cppOptions">cppOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:ccOptions">ccOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:ldOptions">ldOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:pkgconfigDepends">pkgconfigDepends</a> :: [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>]</li><li><a href="#v:frameworks">frameworks</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:extraFrameworkDirs">extraFrameworkDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:cSources">cSources</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:jsSources">jsSources</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:hsSourceDirs">hsSourceDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:otherModules">otherModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:autogenModules">autogenModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:defaultLanguage">defaultLanguage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></li><li><a href="#v:otherLanguages">otherLanguages</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</li><li><a href="#v:defaultExtensions">defaultExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:otherExtensions">otherExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:oldExtensions">oldExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:extraLibs">extraLibs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:extraGHCiLibs">extraGHCiLibs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:extraLibDirs">extraLibDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:includeDirs">includeDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:includes">includes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:installIncludes">installIncludes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:options">options</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:profOptions">profOptions</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:sharedOptions">sharedOptions</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:customFieldsBI">customFieldsBI</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:targetBuildDepends">targetBuildDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</li><li><a href="#v:mixins">mixins</a> :: [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyBuildInfo">emptyBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></li><li class="src short"><a href="#v:allBuildInfo">allBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>]</li><li class="src short"><a href="#v:allLanguages">allLanguages</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</li><li class="src short"><a href="#v:allExtensions">allExtensions</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li class="src short"><a href="#v:usedExtensions">usedExtensions</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li class="src short"><a href="#v:hcOptions">hcOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:hcProfOptions">hcProfOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:hcSharedOptions">hcSharedOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentName">ComponentName</a><ul class="subs"><li>= <a href="#v:CLibName">CLibName</a></li><li>| <a href="#v:CSubLibName">CSubLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CFLibName">CFLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CExeName">CExeName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CTestName">CTestName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CBenchName">CBenchName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li></ul></li><li class="src short"><a href="#v:defaultLibName">defaultLibName</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:HookedBuildInfo">HookedBuildInfo</a> = (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>, [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>)])</li><li class="src short"><a href="#v:emptyHookedBuildInfo">emptyHookedBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li class="src short"><a href="#v:updatePackageDescription">updatePackageDescription</a> :: <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:GenericPackageDescription">GenericPackageDescription</a> = <a href="#v:GenericPackageDescription">GenericPackageDescription</a> {<ul class="subs"><li><a href="#v:packageDescription">packageDescription</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li><a href="#v:genPackageFlags">genPackageFlags</a> :: [<a href="Distribution-PackageDescription.html#t:Flag">Flag</a>]</li><li><a href="#v:condLibrary">condLibrary</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Library">Library</a>)</li><li><a href="#v:condSubLibraries">condSubLibraries</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Library">Library</a>)]</li><li><a href="#v:condForeignLibs">condForeignLibs</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>)]</li><li><a href="#v:condExecutables">condExecutables</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Executable">Executable</a>)]</li><li><a href="#v:condTestSuites">condTestSuites</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>)]</li><li><a href="#v:condBenchmarks">condBenchmarks</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>)]</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:Flag">Flag</a> = <a href="#v:MkFlag">MkFlag</a> {<ul class="subs"><li><a href="#v:flagName">flagName</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></li><li><a href="#v:flagDescription">flagDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:flagDefault">flagDefault</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:flagManual">flagManual</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:emptyFlag">emptyFlag</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:FlagName">FlagName</a></li><li class="src short"><a href="#v:mkFlagName">mkFlagName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></li><li class="src short"><a href="#v:unFlagName">unFlagName</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:FlagAssignment">FlagAssignment</a> = [(<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)]</li><li class="src short"><a href="#v:showFlagValue">showFlagValue</a> :: (<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:dispFlagAssignment">dispFlagAssignment</a> :: <a href="Distribution-PackageDescription.html#t:FlagAssignment">FlagAssignment</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:parseFlagAssignment">parseFlagAssignment</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:FlagAssignment">FlagAssignment</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:CondTree">CondTree</a> v c a = <a href="#v:CondNode">CondNode</a> {<ul class="subs"><li><a href="#v:condTreeData">condTreeData</a> :: a</li><li><a href="#v:condTreeConstraints">condTreeConstraints</a> :: c</li><li><a href="#v:condTreeComponents">condTreeComponents</a> :: [<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a]</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:ConfVar">ConfVar</a><ul class="subs"><li>= <a href="#v:OS">OS</a> <a href="Distribution-System.html#t:OS">OS</a></li><li>| <a href="#v:Arch">Arch</a> <a href="Distribution-System.html#t:Arch">Arch</a></li><li>| <a href="#v:Flag">Flag</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></li><li>| <a href="#v:Impl">Impl</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Condition">Condition</a> c<ul class="subs"><li>= <a href="#v:Var">Var</a> c</li><li>| <a href="#v:Lit">Lit</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li>| <a href="#v:CNot">CNot</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</li><li>| <a href="#v:COr">COr</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</li><li>| <a href="#v:CAnd">CAnd</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</li></ul></li><li class="src short"><a href="#v:cNot">cNot</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a</li><li class="src short"><a href="#v:cAnd">cAnd</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a</li><li class="src short"><a href="#v:cOr">cOr</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v => <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> v -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> v -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> v</li><li class="src short"><span class="keyword">data</span> <a href="#t:SourceRepo">SourceRepo</a> = <a href="#v:SourceRepo">SourceRepo</a> {<ul class="subs"><li><a href="#v:repoKind">repoKind</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></li><li><a href="#v:repoType">repoType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></li><li><a href="#v:repoLocation">repoLocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoModule">repoModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoBranch">repoBranch</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoTag">repoTag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoSubdir">repoSubdir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:RepoKind">RepoKind</a><ul class="subs"><li>= <a href="#v:RepoHead">RepoHead</a></li><li>| <a href="#v:RepoThis">RepoThis</a></li><li>| <a href="#v:RepoKindUnknown">RepoKindUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:RepoType">RepoType</a><ul class="subs"><li>= <a href="#v:Darcs">Darcs</a></li><li>| <a href="#v:Git">Git</a></li><li>| <a href="#v:SVN">SVN</a></li><li>| <a href="#v:CVS">CVS</a></li><li>| <a href="#v:Mercurial">Mercurial</a></li><li>| <a href="#v:GnuArch">GnuArch</a></li><li>| <a href="#v:Bazaar">Bazaar</a></li><li>| <a href="#v:Monotone">Monotone</a></li><li>| <a href="#v:OtherRepoType">OtherRepoType</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:knownRepoTypes">knownRepoTypes</a> :: [<a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>]</li><li class="src short"><a href="#v:emptySourceRepo">emptySourceRepo</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SetupBuildInfo">SetupBuildInfo</a> = <a href="#v:SetupBuildInfo">SetupBuildInfo</a> {<ul class="subs"><li><a href="#v:setupDepends">setupDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</li><li><a href="#v:defaultSetupDepends">defaultSetupDepends</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Package descriptions</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PackageDescription" class="def">PackageDescription</a> <a href="#t:PackageDescription" class="selflink">#</a></p><div class="doc"><p>This data type is the internal representation of the file <code>pkg.cabal</code>.+ It contains two kinds of information about the package: information+ which is needed for all packages, such as the package name and version, and+ information which is needed for the simple build system only, such as+ the compiler options and library name.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:PackageDescription" class="def">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:package" class="def">package</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:license" class="def">license</a> :: <a href="Distribution-License.html#t:License">License</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:licenseFiles" class="def">licenseFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:copyright" class="def">copyright</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:maintainer" class="def">maintainer</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:author" class="def">author</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:stability" class="def">stability</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testedWith" class="def">testedWith</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:homepage" class="def">homepage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:pkgUrl" class="def">pkgUrl</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:bugReports" class="def">bugReports</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sourceRepos" class="def">sourceRepos</a> :: [<a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:synopsis" class="def">synopsis</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A one-line summary of this package</p></div></li><li><dfn class="src"><a id="v:description" class="def">description</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A more verbose description of this package</p></div></li><li><dfn class="src"><a id="v:category" class="def">category</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:customFieldsPD" class="def">customFieldsPD</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</dfn><div class="doc"><p>Custom fields starting+ with x-, stored in a+ simple assoc-list.</p></div></li><li><dfn class="src"><a id="v:buildDepends" class="def">buildDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</dfn><div class="doc"><p>YOU PROBABLY DON'T WANT TO USE THIS FIELD. This field is+ special! Depending on how far along processing the+ PackageDescription we are, the contents of this field are+ either nonsense, or the collected dependencies of *all* the+ components in this package. buildDepends is initialized by+ <code>finalizePD</code> and <code>flattenPackageDescription</code>;+ prior to that, dependency info is stored in the <code>CondTree</code>+ built around a <code>GenericPackageDescription</code>. When this+ resolution is done, dependency info is written to the inner+ <code><a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></code> and this field. This is all horrible, and #2066+ tracks progress to get rid of this field.</p></div></li><li><dfn class="src"><a id="v:specVersionRaw" class="def">specVersionRaw</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></dfn><div class="doc"><p>The version of the Cabal spec that this package description uses.+ For historical reasons this is specified with a version range but+ only ranges of the form <code>>= v</code> make sense. We are in the process of+ transitioning to specifying just a single version, not a range.</p></div></li><li><dfn class="src"><a id="v:buildType" class="def">buildType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:setupBuildInfo" class="def">setupBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:library" class="def">library</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:subLibraries" class="def">subLibraries</a> :: [<a href="Distribution-PackageDescription.html#t:Library">Library</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:executables" class="def">executables</a> :: [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:foreignLibs" class="def">foreignLibs</a> :: [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testSuites" class="def">testSuites</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarks" class="def">benchmarks</a> :: [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:dataFiles" class="def">dataFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:dataDir" class="def">dataDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:extraSrcFiles" class="def">extraSrcFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:extraTmpFiles" class="def">extraTmpFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:extraDocFiles" class="def">extraDocFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:PackageDescription" class="caption collapser" onclick="toggleSection('i:PackageDescription')">Instances</p><div id="section.i:PackageDescription" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Eq:1" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Data:2" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> c <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> m <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> m <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> m <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Read:3" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Show:4" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Generic:5" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> x -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Binary:6" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Package:7" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Package:7')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Package:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Rep:8" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "PackageDescription" "Distribution.Types.PackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PackageDescription" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "package") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "license") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-License.html#t:License">License</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "licenseFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "copyright") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "maintainer") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "author") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "stability") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testedWith") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "homepage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgUrl") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "bugReports") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sourceRepos") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "synopsis") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "description") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "category") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "customFieldsPD") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "specVersionRaw") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildType") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "setupBuildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "library") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "subLibraries") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-PackageDescription.html#t:Library">Library</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "executables") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "foreignLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testSuites") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "dataFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "dataDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraSrcFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraTmpFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraDocFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyPackageDescription" class="def">emptyPackageDescription</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:emptyPackageDescription" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:specVersion" class="def">specVersion</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:specVersion" class="selflink">#</a></p><div class="doc"><p>The version of the Cabal spec that this package should be interpreted+ against.</p><p>Historically we used a version range but we are switching to using a single+ version. Currently we accept either. This function converts into a single+ version by ignoring upper bounds in the version range.</p></div></div><div class="top"><p class="src"><a id="v:descCabalVersion" class="def">descCabalVersion</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:descCabalVersion" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use specVersion instead</p></div><p>The range of versions of the Cabal tools that this package is intended to+ work with.</p><p>This function is deprecated and should not be used for new purposes, only to+ support old packages that rely on the old interpretation.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BuildType" class="def">BuildType</a> <a href="#t:BuildType" class="selflink">#</a></p><div class="doc"><p>The type of build system used by this package.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Simple" class="def">Simple</a></td><td class="doc"><p>calls <code>Distribution.Simple.defaultMain</code></p></td></tr><tr><td class="src"><a id="v:Configure" class="def">Configure</a></td><td class="doc"><p>calls <code>Distribution.Simple.defaultMainWithHooks defaultUserHooks</code>,+ which invokes <code>configure</code> to generate additional build+ information used by later phases.</p></td></tr><tr><td class="src"><a id="v:Make" class="def">Make</a></td><td class="doc"><p>calls <code>Distribution.Make.defaultMain</code></p></td></tr><tr><td class="src"><a id="v:Custom" class="def">Custom</a></td><td class="doc"><p>uses user-supplied <code>Setup.hs</code> or <code>Setup.lhs</code> (default)</p></td></tr><tr><td class="src"><a id="v:UnknownBuildType" class="def">UnknownBuildType</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>a package that uses an unknown build type cannot actually+ be built. Doing it this way rather than just giving a+ parse error means we get better error messages and allows+ you to inspect the rest of the package description.</p></td></tr></table></div><div class="subs instances"><p id="control.i:BuildType" class="caption collapser" onclick="toggleSection('i:BuildType')">Instances</p><div id="section.i:BuildType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Eq:1" class="instance expander" onclick="toggleSection('i:id:BuildType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Data:2" class="instance expander" onclick="toggleSection('i:id:BuildType:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> c <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> m <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> m <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> m <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Read:3" class="instance expander" onclick="toggleSection('i:id:BuildType:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Show:4" class="instance expander" onclick="toggleSection('i:id:BuildType:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Generic:5" class="instance expander" onclick="toggleSection('i:id:BuildType:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> x -> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Binary:6" class="instance expander" onclick="toggleSection('i:id:BuildType:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Text:7" class="instance expander" onclick="toggleSection('i:id:BuildType:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Rep:8" class="instance expander" onclick="toggleSection('i:id:BuildType:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BuildType" "Distribution.Types.BuildType" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Simple" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Configure" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Make" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Custom" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnknownBuildType" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownBuildTypes" class="def">knownBuildTypes</a> :: [<a href="Distribution-PackageDescription.html#t:BuildType">BuildType</a>] <a href="#v:knownBuildTypes" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:allLibraries" class="def">allLibraries</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-PackageDescription.html#t:Library">Library</a>] <a href="#v:allLibraries" class="selflink">#</a></p></div><h2 id="g:2">Renaming (syntactic)</h2><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModuleRenaming" class="def">ModuleRenaming</a> <a href="#t:ModuleRenaming" class="selflink">#</a></p><div class="doc"><p>Renaming applied to the modules provided by a package.+ The boolean indicates whether or not to also include all of the+ original names of modules. Thus, <code>ModuleRenaming False []</code> is+ "don't expose any modules, and <code>ModuleRenaming True [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html">Data.Bool</a>, <a href="Bool.html">Bool</a>)]</code>+ is, "expose all modules, but also expose <code>Data.Bool</code> as <code>Bool</code>".+ If a renaming is omitted you get the <code><a href="Distribution-PackageDescription.html#v:DefaultRenaming">DefaultRenaming</a></code>.</p><p>(NB: This is a list not a map so that we can preserve order.)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModuleRenaming" class="def">ModuleRenaming</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)]</td><td class="doc"><p>A module renaming/thinning; e.g., <code>(A as B, C as C)</code>+ brings <code>B</code> and <code>C</code> into scope.</p></td></tr><tr><td class="src"><a id="v:DefaultRenaming" class="def">DefaultRenaming</a></td><td class="doc"><p>The default renaming, bringing all exported modules+ into scope.</p></td></tr><tr><td class="src"><a id="v:HidingRenaming" class="def">HidingRenaming</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</td><td class="doc"><p>Hiding renaming, e.g., <code>hiding (A, B)</code>, bringing all+ exported modules into scope except the hidden ones.</p></td></tr></table></div><div class="subs instances"><p id="control.i:ModuleRenaming" class="caption collapser" onclick="toggleSection('i:ModuleRenaming')">Instances</p><div id="section.i:ModuleRenaming" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Eq:1" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Data:2" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> c <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> m <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> m <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> m <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Ord:3" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Read:4" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Show:5" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Generic:6" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> x -> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Binary:7" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Text:8" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Rep:9" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ModuleRenaming" "Distribution.Types.ModuleRenaming" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ModuleRenaming" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DefaultRenaming" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HidingRenaming" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>])))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultRenaming" class="def">defaultRenaming</a> :: <a href="Distribution-PackageDescription.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:defaultRenaming" class="selflink">#</a></p><div class="doc"><p>The default renaming, if something is specified in <code>build-depends</code>+ only.</p></div></div><h2 id="g:3">Libraries</h2><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Library" class="def">Library</a> <a href="#t:Library" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Library" class="def">Library</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:libName" class="def">libName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:exposedModules" class="def">exposedModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:reexportedModules" class="def">reexportedModules</a> :: [<a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:signatures" class="def">signatures</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dfn><div class="doc"><p>What sigs need implementations?</p></div></li><li><dfn class="src"><a id="v:libExposed" class="def">libExposed</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Is the lib to be exposed by default?</p></div></li><li><dfn class="src"><a id="v:libBuildInfo" class="def">libBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Library" class="caption collapser" onclick="toggleSection('i:Library')">Instances</p><div id="section.i:Library" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Eq:1" class="instance expander" onclick="toggleSection('i:id:Library:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Data:2" class="instance expander" onclick="toggleSection('i:id:Library:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> c <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:Library">Library</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:Library">Library</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> m <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> m <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> m <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Read:3" class="instance expander" onclick="toggleSection('i:id:Library:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:Library">Library</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:Library">Library</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Show:4" class="instance expander" onclick="toggleSection('i:id:Library:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:Library">Library</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Generic:5" class="instance expander" onclick="toggleSection('i:id:Library:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a> x -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:Library:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Monoid:7" class="instance expander" onclick="toggleSection('i:id:Library:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-PackageDescription.html#t:Library">Library</a>] -> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Binary:8" class="instance expander" onclick="toggleSection('i:id:Library:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:Library">Library</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Rep:9" class="instance expander" onclick="toggleSection('i:id:Library:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Library" "Distribution.Types.Library" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Library" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exposedModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "reexportedModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "signatures") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libExposed") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libBuildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModuleReexport" class="def">ModuleReexport</a> <a href="#t:ModuleReexport" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModuleReexport" class="def">ModuleReexport</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:moduleReexportOriginalPackage" class="def">moduleReexportOriginalPackage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:moduleReexportOriginalName" class="def">moduleReexportOriginalName</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:moduleReexportName" class="def">moduleReexportName</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ModuleReexport" class="caption collapser" onclick="toggleSection('i:ModuleReexport')">Instances</p><div id="section.i:ModuleReexport" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Eq:1" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Data:2" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> c <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> m <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> m <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> m <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Read:3" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Show:4" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Generic:5" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> x -> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Binary:6" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Text:7" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Rep:8" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ModuleReexport">ModuleReexport</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ModuleReexport" "Distribution.Types.ModuleReexport" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ModuleReexport" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "moduleReexportOriginalPackage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "moduleReexportOriginalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "moduleReexportName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyLibrary" class="def">emptyLibrary</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> <a href="#v:emptyLibrary" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:withLib" class="def">withLib</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withLib" class="selflink">#</a></p><div class="doc"><p>If the package description has a buildable library section,+ call the given function with the library build info as argument.+ You probably want <code>withLibLBI</code> if you have a <code>LocalBuildInfo</code>,+ see the note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>+ for more information.</p></div></div><div class="top"><p class="src"><a id="v:hasPublicLib" class="def">hasPublicLib</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasPublicLib" class="selflink">#</a></p><div class="doc"><p>Does this package have a buildable PUBLIC library?</p></div></div><div class="top"><p class="src"><a id="v:hasLibs" class="def">hasLibs</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasLibs" class="selflink">#</a></p><div class="doc"><p>Does this package have any libraries?</p></div></div><div class="top"><p class="src"><a id="v:explicitLibModules" class="def">explicitLibModules</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:explicitLibModules" class="selflink">#</a></p><div class="doc"><p>Get all the module names from the library (exposed and internal modules)+ which are explicitly listed in the package description which would+ need to be compiled. (This does not include reexports, which+ do not need to be compiled.) This may not include all modules for which+ GHC generated interface files (i.e., implicit modules.)</p></div></div><div class="top"><p class="src"><a id="v:libModulesAutogen" class="def">libModulesAutogen</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:libModulesAutogen" class="selflink">#</a></p><div class="doc"><p>Get all the auto generated module names from the library, exposed or not.+ This are a subset of <code><a href="Distribution-PackageDescription.html#v:libModules">libModules</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:libModules" class="def">libModules</a> :: <a href="Distribution-PackageDescription.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:libModules" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: If you want all modules that are built with a library, use <code>allLibModules</code>. Otherwise, use <code><a href="Distribution-PackageDescription.html#v:explicitLibModules">explicitLibModules</a></code> for ONLY the modules explicitly mentioned in the package description.</p></div><p>Backwards-compatibility shim for <code><a href="Distribution-PackageDescription.html#v:explicitLibModules">explicitLibModules</a></code>. In most cases,+ you actually want <code>allLibModules</code>, which returns all modules that will+ actually be compiled, as opposed to those which are explicitly listed+ in the package description (<code><a href="Distribution-PackageDescription.html#v:explicitLibModules">explicitLibModules</a></code>); unfortunately, the+ type signature for <code>allLibModules</code> is incompatible since we need a+ <code>ComponentLocalBuildInfo</code>.</p></div></div><h2 id="g:4">Executables</h2><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Executable" class="def">Executable</a> <a href="#t:Executable" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Executable" class="def">Executable</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:exeName" class="def">exeName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:modulePath" class="def">modulePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:exeScope" class="def">exeScope</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:buildInfo" class="def">buildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Executable" class="caption collapser" onclick="toggleSection('i:Executable')">Instances</p><div id="section.i:Executable" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Eq:1" class="instance expander" onclick="toggleSection('i:id:Executable:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Data:2" class="instance expander" onclick="toggleSection('i:id:Executable:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> c <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:Executable">Executable</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:Executable">Executable</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> m <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> m <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> m <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Read:3" class="instance expander" onclick="toggleSection('i:id:Executable:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Show:4" class="instance expander" onclick="toggleSection('i:id:Executable:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Generic:5" class="instance expander" onclick="toggleSection('i:id:Executable:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> x -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:Executable:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Monoid:7" class="instance expander" onclick="toggleSection('i:id:Executable:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>] -> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Binary:8" class="instance expander" onclick="toggleSection('i:id:Executable:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:Executable">Executable</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Rep:9" class="instance expander" onclick="toggleSection('i:id:Executable:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Executable" "Distribution.Types.Executable" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Executable" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exeName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "modulePath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exeScope") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyExecutable" class="def">emptyExecutable</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> <a href="#v:emptyExecutable" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:withExe" class="def">withExe</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withExe" class="selflink">#</a></p><div class="doc"><p>Perform the action on each buildable <code><a href="Distribution-PackageDescription.html#t:Executable">Executable</a></code> in the package+ description. You probably want <code>withExeLBI</code> if you have a+ <code>LocalBuildInfo</code>, see the note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>+ for more information.</p></div></div><div class="top"><p class="src"><a id="v:hasExes" class="def">hasExes</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasExes" class="selflink">#</a></p><div class="doc"><p>does this package have any executables?</p></div></div><div class="top"><p class="src"><a id="v:exeModules" class="def">exeModules</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:exeModules" class="selflink">#</a></p><div class="doc"><p>Get all the module names from an exe</p></div></div><div class="top"><p class="src"><a id="v:exeModulesAutogen" class="def">exeModulesAutogen</a> :: <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:exeModulesAutogen" class="selflink">#</a></p><div class="doc"><p>Get all the auto generated module names from an exe+ This are a subset of <code><a href="Distribution-PackageDescription.html#v:exeModules">exeModules</a></code>.</p></div></div><h1 id="g:5">Tests</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestSuite" class="def">TestSuite</a> <a href="#t:TestSuite" class="selflink">#</a></p><div class="doc"><p>A "test-suite" stanza in a cabal file.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestSuite" class="def">TestSuite</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:testName" class="def">testName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testInterface" class="def">testInterface</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testBuildInfo" class="def">testBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:TestSuite" class="caption collapser" onclick="toggleSection('i:TestSuite')">Instances</p><div id="section.i:TestSuite" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Eq:1" class="instance expander" onclick="toggleSection('i:id:TestSuite:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Data:2" class="instance expander" onclick="toggleSection('i:id:TestSuite:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> c <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> m <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> m <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> m <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Read:3" class="instance expander" onclick="toggleSection('i:id:TestSuite:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Show:4" class="instance expander" onclick="toggleSection('i:id:TestSuite:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Generic:5" class="instance expander" onclick="toggleSection('i:id:TestSuite:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> x -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:TestSuite:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Monoid:7" class="instance expander" onclick="toggleSection('i:id:TestSuite:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>] -> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Binary:8" class="instance expander" onclick="toggleSection('i:id:TestSuite:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Rep:9" class="instance expander" onclick="toggleSection('i:id:TestSuite:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "TestSuite" "Distribution.Types.TestSuite" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuite" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testInterface") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testBuildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestSuiteInterface" class="def">TestSuiteInterface</a> <a href="#t:TestSuiteInterface" class="selflink">#</a></p><div class="doc"><p>The test suite interfaces that are currently defined. Each test suite must+ specify which interface it supports.</p><p>More interfaces may be defined in future, either new revisions or totally+ new interfaces.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestSuiteExeV10" class="def">TestSuiteExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Test interface "exitcode-stdio-1.0". The test-suite takes the form+ of an executable. It returns a zero exit code for success, non-zero for+ failure. The stdout and stderr channels may be logged. It takes no+ command line parameters and nothing on stdin.</p></td></tr><tr><td class="src"><a id="v:TestSuiteLibV09" class="def">TestSuiteLibV09</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></td><td class="doc"><p>Test interface "detailed-0.9". The test-suite takes the form of a+ library containing a designated module that exports "tests :: [Test]".</p></td></tr><tr><td class="src"><a id="v:TestSuiteUnsupported" class="def">TestSuiteUnsupported</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></td><td class="doc"><p>A test suite that does not conform to one of the above interfaces for+ the given reason (e.g. unknown test type).</p></td></tr></table></div><div class="subs instances"><p id="control.i:TestSuiteInterface" class="caption collapser" onclick="toggleSection('i:TestSuiteInterface')">Instances</p><div id="section.i:TestSuiteInterface" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Eq:1" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Data:2" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> c <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> m <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> m <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> m <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Read:3" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Show:4" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Generic:5" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> x -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Monoid:7" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a>] -> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Binary:8" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Rep:9" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">TestSuiteInterface</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "TestSuiteInterface" "Distribution.Types.TestSuiteInterface" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuiteExeV10" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuiteLibV09" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuiteUnsupported" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestType" class="def">TestType</a> <a href="#t:TestType" class="selflink">#</a></p><div class="doc"><p>The "test-type" field in the test suite stanza.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestTypeExe" class="def">TestTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>"type: exitcode-stdio-x.y"</p></td></tr><tr><td class="src"><a id="v:TestTypeLib" class="def">TestTypeLib</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>"type: detailed-x.y"</p></td></tr><tr><td class="src"><a id="v:TestTypeUnknown" class="def">TestTypeUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>Some unknown test type e.g. "type: foo"</p></td></tr></table></div><div class="subs instances"><p id="control.i:TestType" class="caption collapser" onclick="toggleSection('i:TestType')">Instances</p><div id="section.i:TestType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Eq:1" class="instance expander" onclick="toggleSection('i:id:TestType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Data:2" class="instance expander" onclick="toggleSection('i:id:TestType:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> c <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:TestType">TestType</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:TestType">TestType</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> m <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> m <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> m <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Read:3" class="instance expander" onclick="toggleSection('i:id:TestType:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:TestType">TestType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:TestType">TestType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Show:4" class="instance expander" onclick="toggleSection('i:id:TestType:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:TestType">TestType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Generic:5" class="instance expander" onclick="toggleSection('i:id:TestType:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> x -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Binary:6" class="instance expander" onclick="toggleSection('i:id:TestType:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:TestType">TestType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Text:7" class="instance expander" onclick="toggleSection('i:id:TestType:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Rep:8" class="instance expander" onclick="toggleSection('i:id:TestType:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "TestType" "Distribution.Types.TestType" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestTypeExe" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestTypeLib" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestTypeUnknown" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:testType" class="def">testType</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-PackageDescription.html#t:TestType">TestType</a> <a href="#v:testType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:knownTestTypes" class="def">knownTestTypes</a> :: [<a href="Distribution-PackageDescription.html#t:TestType">TestType</a>] <a href="#v:knownTestTypes" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emptyTestSuite" class="def">emptyTestSuite</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> <a href="#v:emptyTestSuite" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hasTests" class="def">hasTests</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasTests" class="selflink">#</a></p><div class="doc"><p>Does this package have any test suites?</p></div></div><div class="top"><p class="src"><a id="v:withTest" class="def">withTest</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withTest" class="selflink">#</a></p><div class="doc"><p>Perform an action on each buildable <code><a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></code> in a package.+ You probably want <code>withTestLBI</code> if you have a <code>LocalBuildInfo</code>, see the note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>+ for more information.</p></div></div><div class="top"><p class="src"><a id="v:testModules" class="def">testModules</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:testModules" class="selflink">#</a></p><div class="doc"><p>Get all the module names from a test suite.</p></div></div><div class="top"><p class="src"><a id="v:testModulesAutogen" class="def">testModulesAutogen</a> :: <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:testModulesAutogen" class="selflink">#</a></p><div class="doc"><p>Get all the auto generated module names from a test suite.+ This are a subset of <code><a href="Distribution-PackageDescription.html#v:testModules">testModules</a></code>.</p></div></div><h1 id="g:6">Benchmarks</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Benchmark" class="def">Benchmark</a> <a href="#t:Benchmark" class="selflink">#</a></p><div class="doc"><p>A "benchmark" stanza in a cabal file.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Benchmark" class="def">Benchmark</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:benchmarkName" class="def">benchmarkName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarkInterface" class="def">benchmarkInterface</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarkBuildInfo" class="def">benchmarkBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Benchmark" class="caption collapser" onclick="toggleSection('i:Benchmark')">Instances</p><div id="section.i:Benchmark" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Eq:1" class="instance expander" onclick="toggleSection('i:id:Benchmark:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Data:2" class="instance expander" onclick="toggleSection('i:id:Benchmark:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> c <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> m <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> m <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> m <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Read:3" class="instance expander" onclick="toggleSection('i:id:Benchmark:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Show:4" class="instance expander" onclick="toggleSection('i:id:Benchmark:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Generic:5" class="instance expander" onclick="toggleSection('i:id:Benchmark:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> x -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:Benchmark:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Monoid:7" class="instance expander" onclick="toggleSection('i:id:Benchmark:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>] -> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Binary:8" class="instance expander" onclick="toggleSection('i:id:Benchmark:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Rep:9" class="instance expander" onclick="toggleSection('i:id:Benchmark:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Benchmark" "Distribution.Types.Benchmark" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Benchmark" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarkName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarkInterface") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarkBuildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BenchmarkInterface" class="def">BenchmarkInterface</a> <a href="#t:BenchmarkInterface" class="selflink">#</a></p><div class="doc"><p>The benchmark interfaces that are currently defined. Each+ benchmark must specify which interface it supports.</p><p>More interfaces may be defined in future, either new revisions or+ totally new interfaces.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BenchmarkExeV10" class="def">BenchmarkExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Benchmark interface "exitcode-stdio-1.0". The benchmark+ takes the form of an executable. It returns a zero exit code+ for success, non-zero for failure. The stdout and stderr+ channels may be logged. It takes no command line parameters+ and nothing on stdin.</p></td></tr><tr><td class="src"><a id="v:BenchmarkUnsupported" class="def">BenchmarkUnsupported</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></td><td class="doc"><p>A benchmark that does not conform to one of the above+ interfaces for the given reason (e.g. unknown benchmark type).</p></td></tr></table></div><div class="subs instances"><p id="control.i:BenchmarkInterface" class="caption collapser" onclick="toggleSection('i:BenchmarkInterface')">Instances</p><div id="section.i:BenchmarkInterface" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Eq:1" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Data:2" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> c <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> m <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> m <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> m <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Read:3" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Show:4" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Generic:5" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> x -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Monoid:7" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a>] -> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Binary:8" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Rep:9" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">BenchmarkInterface</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BenchmarkInterface" "Distribution.Types.BenchmarkInterface" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkExeV10" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkUnsupported" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BenchmarkType" class="def">BenchmarkType</a> <a href="#t:BenchmarkType" class="selflink">#</a></p><div class="doc"><p>The "benchmark-type" field in the benchmark stanza.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BenchmarkTypeExe" class="def">BenchmarkTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>"type: exitcode-stdio-x.y"</p></td></tr><tr><td class="src"><a id="v:BenchmarkTypeUnknown" class="def">BenchmarkTypeUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>Some unknown benchmark type e.g. "type: foo"</p></td></tr></table></div><div class="subs instances"><p id="control.i:BenchmarkType" class="caption collapser" onclick="toggleSection('i:BenchmarkType')">Instances</p><div id="section.i:BenchmarkType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Eq:1" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Data:2" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> c <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> m <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> m <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> m <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Read:3" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Show:4" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Generic:5" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> x -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Binary:6" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Text:7" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Rep:8" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BenchmarkType" "Distribution.Types.BenchmarkType" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkTypeExe" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkTypeUnknown" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:benchmarkType" class="def">benchmarkType</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:benchmarkType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:knownBenchmarkTypes" class="def">knownBenchmarkTypes</a> :: [<a href="Distribution-PackageDescription.html#t:BenchmarkType">BenchmarkType</a>] <a href="#v:knownBenchmarkTypes" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emptyBenchmark" class="def">emptyBenchmark</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> <a href="#v:emptyBenchmark" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hasBenchmarks" class="def">hasBenchmarks</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasBenchmarks" class="selflink">#</a></p><div class="doc"><p>Does this package have any benchmarks?</p></div></div><div class="top"><p class="src"><a id="v:withBenchmark" class="def">withBenchmark</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withBenchmark" class="selflink">#</a></p><div class="doc"><p>Perform an action on each buildable <code><a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></code> in a package.+ You probably want <code>withBenchLBI</code> if you have a <code>LocalBuildInfo</code>, see the note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>+ for more information.</p></div></div><div class="top"><p class="src"><a id="v:benchmarkModules" class="def">benchmarkModules</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:benchmarkModules" class="selflink">#</a></p><div class="doc"><p>Get all the module names from a benchmark.</p></div></div><div class="top"><p class="src"><a id="v:benchmarkModulesAutogen" class="def">benchmarkModulesAutogen</a> :: <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:benchmarkModulesAutogen" class="selflink">#</a></p><div class="doc"><p>Get all the auto generated module names from a benchmark.+ This are a subset of <code><a href="Distribution-PackageDescription.html#v:benchmarkModules">benchmarkModules</a></code>.</p></div></div><h1 id="g:7">Build information</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BuildInfo" class="def">BuildInfo</a> <a href="#t:BuildInfo" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BuildInfo" class="def">BuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:buildable" class="def">buildable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>component is buildable here+ | Tools needed to build this bit.</p><p>This is a legacy field that "build-tool-depends" larely supersedes.</p><p>Unless use are very sure what you are doing, use the functions in+ <code><a href="Distribution-Simple.html#v:BuildToolDepends">BuildToolDepends</a></code> rather than accessing this+ field directly.</p></div></li><li><dfn class="src"><a id="v:buildTools" class="def">buildTools</a> :: [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:buildToolDepends" class="def">buildToolDepends</a> :: [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>]</dfn><div class="doc"><p>Haskell tools needed to build this bit</p><p>This field is better than "build-tools" because it allows one to+ precisely specify an executable in a package.</p><p>Unless use are very sure what you are doing, use the functions in+ <code><a href="Distribution-Simple.html#v:BuildToolDepends">BuildToolDepends</a></code> rather than accessing this+ field directly.</p></div></li><li><dfn class="src"><a id="v:cppOptions" class="def">cppOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>options for pre-processing Haskell code</p></div></li><li><dfn class="src"><a id="v:ccOptions" class="def">ccOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>options for C compiler</p></div></li><li><dfn class="src"><a id="v:ldOptions" class="def">ldOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>options for linker</p></div></li><li><dfn class="src"><a id="v:pkgconfigDepends" class="def">pkgconfigDepends</a> :: [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>]</dfn><div class="doc"><p>pkg-config packages that are used</p></div></li><li><dfn class="src"><a id="v:frameworks" class="def">frameworks</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>support frameworks for Mac OS X</p></div></li><li><dfn class="src"><a id="v:extraFrameworkDirs" class="def">extraFrameworkDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>extra locations to find frameworks.</p></div></li><li><dfn class="src"><a id="v:cSources" class="def">cSources</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:jsSources" class="def">jsSources</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hsSourceDirs" class="def">hsSourceDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>where to look for the Haskell module hierarchy</p></div></li><li><dfn class="src"><a id="v:otherModules" class="def">otherModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dfn><div class="doc"><p>non-exposed or non-main modules</p></div></li><li><dfn class="src"><a id="v:autogenModules" class="def">autogenModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dfn><div class="doc"><p>not present on sdist, Paths_* or user-generated with a custom Setup.hs</p></div></li><li><dfn class="src"><a id="v:defaultLanguage" class="def">defaultLanguage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></dfn><div class="doc"><p>language used when not explicitly specified</p></div></li><li><dfn class="src"><a id="v:otherLanguages" class="def">otherLanguages</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</dfn><div class="doc"><p>other languages used within the package</p></div></li><li><dfn class="src"><a id="v:defaultExtensions" class="def">defaultExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dfn><div class="doc"><p>language extensions used by all modules</p></div></li><li><dfn class="src"><a id="v:otherExtensions" class="def">otherExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dfn><div class="doc"><p>other language extensions used within the package</p></div></li><li><dfn class="src"><a id="v:oldExtensions" class="def">oldExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dfn><div class="doc"><p>the old extensions field, treated same as <code><a href="Distribution-PackageDescription.html#v:defaultExtensions">defaultExtensions</a></code></p></div></li><li><dfn class="src"><a id="v:extraLibs" class="def">extraLibs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>what libraries to link with when compiling a program that uses your package</p></div></li><li><dfn class="src"><a id="v:extraGHCiLibs" class="def">extraGHCiLibs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>if present, overrides extraLibs when package is loaded with GHCi.</p></div></li><li><dfn class="src"><a id="v:extraLibDirs" class="def">extraLibDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:includeDirs" class="def">includeDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>directories to find .h files</p></div></li><li><dfn class="src"><a id="v:includes" class="def">includes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>The .h files to be found in includeDirs</p></div></li><li><dfn class="src"><a id="v:installIncludes" class="def">installIncludes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>.h files to install with the package</p></div></li><li><dfn class="src"><a id="v:options" class="def">options</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:profOptions" class="def">profOptions</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sharedOptions" class="def">sharedOptions</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:customFieldsBI" class="def">customFieldsBI</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</dfn><div class="doc"><p>Custom fields starting+ with x-, stored in a+ simple assoc-list.</p></div></li><li><dfn class="src"><a id="v:targetBuildDepends" class="def">targetBuildDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</dfn><div class="doc"><p>Dependencies specific to a library or executable target</p></div></li><li><dfn class="src"><a id="v:mixins" class="def">mixins</a> :: [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:BuildInfo" class="caption collapser" onclick="toggleSection('i:BuildInfo')">Instances</p><div id="section.i:BuildInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Eq:1" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Data:2" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> c <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> m <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> m <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> m <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Read:3" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Show:4" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Generic:5" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> x -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Monoid:7" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>] -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Binary:8" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Rep:9" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BuildInfo" "Distribution.Types.BuildInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildable") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildTools") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildToolDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "cppOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ccOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ldOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgconfigDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "frameworks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraFrameworkDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "cSources") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "jsSources") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hsSourceDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "otherModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "autogenModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "defaultLanguage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a>))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "otherLanguages") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "defaultExtensions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "otherExtensions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "oldExtensions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraGHCiLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraLibDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "includeDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "includes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "options") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "profOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sharedOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "customFieldsBI") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "targetBuildDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "mixins") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>]))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyBuildInfo" class="def">emptyBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> <a href="#v:emptyBuildInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:allBuildInfo" class="def">allBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>] <a href="#v:allBuildInfo" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></code> for the library (if there is one and it's buildable), and+ all buildable executables, test suites and benchmarks. Useful for gathering+ dependencies.</p></div></div><div class="top"><p class="src"><a id="v:allLanguages" class="def">allLanguages</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] <a href="#v:allLanguages" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Language-Haskell-Extension.html#t:Language">Language</a></code>s used by this component</p></div></div><div class="top"><p class="src"><a id="v:allExtensions" class="def">allExtensions</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] <a href="#v:allExtensions" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Language-Haskell-Extension.html#t:Extension">Extension</a></code>s that are used somewhere by this component</p></div></div><div class="top"><p class="src"><a id="v:usedExtensions" class="def">usedExtensions</a> :: <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] <a href="#v:usedExtensions" class="selflink">#</a></p><div class="doc"><p>The <code>Extensions</code> that are used by all modules in this component</p></div></div><div class="top"><p class="src"><a id="v:hcOptions" class="def">hcOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:hcOptions" class="selflink">#</a></p><div class="doc"><p>Select options for a particular Haskell compiler.</p></div></div><div class="top"><p class="src"><a id="v:hcProfOptions" class="def">hcProfOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:hcProfOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hcSharedOptions" class="def">hcSharedOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:hcSharedOptions" class="selflink">#</a></p></div><h2 id="g:8">Supplementary build information</h2><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ComponentName" class="def">ComponentName</a> <a href="#t:ComponentName" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CLibName" class="def">CLibName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CSubLibName" class="def">CSubLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CFLibName" class="def">CFLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CExeName" class="def">CExeName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CTestName" class="def">CTestName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CBenchName" class="def">CBenchName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ComponentName" class="caption collapser" onclick="toggleSection('i:ComponentName')">Instances</p><div id="section.i:ComponentName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Eq:1" class="instance expander" onclick="toggleSection('i:id:ComponentName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Ord:2" class="instance expander" onclick="toggleSection('i:id:ComponentName:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Read:3" class="instance expander" onclick="toggleSection('i:id:ComponentName:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Show:4" class="instance expander" onclick="toggleSection('i:id:ComponentName:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Generic:5" class="instance expander" onclick="toggleSection('i:id:ComponentName:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> x -> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Binary:6" class="instance expander" onclick="toggleSection('i:id:ComponentName:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Text:7" class="instance expander" onclick="toggleSection('i:id:ComponentName:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Rep:8" class="instance expander" onclick="toggleSection('i:id:ComponentName:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ComponentName" "Distribution.Types.ComponentName" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CLibName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CSubLibName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CFLibName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CExeName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CTestName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CBenchName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultLibName" class="def">defaultLibName</a> :: <a href="Distribution-PackageDescription.html#t:ComponentName">ComponentName</a> <a href="#v:defaultLibName" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:HookedBuildInfo" class="def">HookedBuildInfo</a> = (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>, [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a>)]) <a href="#t:HookedBuildInfo" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is mechanism that hooks can use to+ override the <code><a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></code>s inside packages. One example+ use-case (which is used in core libraries today) is as+ a way of passing flags which are computed by a configure+ script into Cabal. In this case, the autoconf build type adds+ hooks to read in a textual <code><a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></code> format prior+ to doing any operations.</p><p>Quite honestly, this mechanism is a massive hack since we shouldn't+ be editing the <code>PackageDescription</code> data structure (it's easy+ to assume that this data structure shouldn't change and+ run into bugs, see for example 1c20a6328579af9e37677d507e2e9836ef70ab9d).+ But it's a bit convenient, because there isn't another data+ structure that allows adding extra <code><a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></code> style things.</p><p>In any case, a lot of care has to be taken to make sure the+ <code><a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is applied to the <code>PackageDescription</code>. In+ general this process occurs in <a href="Distribution-Simple.html">Distribution.Simple</a>, which is+ responsible for orchestrating the hooks mechanism. The+ general strategy:</p><ol><li>We run the pre-hook, which produces a <code><a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></code>+ (e.g., in the Autoconf case, it reads it out from a file).</li><li>We sanity-check the hooked build info with+ <code>sanityCheckHookedBuildInfo</code>.</li><li>We update our <code>PackageDescription</code> (either freshly read+ or cached from <code>LocalBuildInfo</code>) with <code>updatePackageDescription</code>.</li></ol><p>In principle, we are also supposed to update the copy of+ the <code>PackageDescription</code> stored in <code>LocalBuildInfo</code>+ at <code>localPkgDescr</code>. Unfortunately, in practice, there+ are lots of Custom setup scripts which fail to update+ <code>localPkgDescr</code> so you really shouldn't rely on it.+ It's not DEPRECATED because there are legitimate uses+ for it, but... yeah. Sharp knife. See+ <a href="https://github.com/haskell/cabal/issues/3606">https://github.com/haskell/cabal/issues/3606</a>+ for more information on the issue.</p><p>It is not well-specified whether or not a <code><a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied+ at configure time is persistent to the <code>LocalBuildInfo</code>. The+ fact that <code><a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is passed to <code>confHook</code> MIGHT SUGGEST+ that the <code><a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is applied at this time, but actually+ since 9317b67e6122ab14e53f81b573bd0ecb388eca5a it has been ONLY used+ to create a modified package description that we check for problems:+ it is never actually saved to the LBI. Since <code><a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is+ applied monoidally to the existing build infos (and it is not an+ idempotent monoid), it could break things to save it, since we+ are obligated to apply any new <code><a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a></code> and then we'd+ get the effect twice. But this does mean we have to re-apply+ it every time. Hey, it's more flexibility.</p></div></div><div class="top"><p class="src"><a id="v:emptyHookedBuildInfo" class="def">emptyHookedBuildInfo</a> :: <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a> <a href="#v:emptyHookedBuildInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:updatePackageDescription" class="def">updatePackageDescription</a> :: <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">HookedBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:updatePackageDescription" class="selflink">#</a></p></div><h1 id="g:9">package configuration</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GenericPackageDescription" class="def">GenericPackageDescription</a> <a href="#t:GenericPackageDescription" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GenericPackageDescription" class="def">GenericPackageDescription</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:packageDescription" class="def">packageDescription</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:genPackageFlags" class="def">genPackageFlags</a> :: [<a href="Distribution-PackageDescription.html#t:Flag">Flag</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condLibrary" class="def">condLibrary</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Library">Library</a>)</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condSubLibraries" class="def">condSubLibraries</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Library">Library</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condForeignLibs" class="def">condForeignLibs</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condExecutables" class="def">condExecutables</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Executable">Executable</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condTestSuites" class="def">condTestSuites</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condBenchmarks" class="def">condBenchmarks</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>)]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:GenericPackageDescription" class="caption collapser" onclick="toggleSection('i:GenericPackageDescription')">Instances</p><div id="section.i:GenericPackageDescription" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Eq:1" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Data:2" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> c <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> m <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> m <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> m <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Show:3" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Generic:4" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> x -> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Binary:5" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Package:6" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Package:6')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Package:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Rep:7" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "GenericPackageDescription" "Distribution.Types.GenericPackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GenericPackageDescription" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "packageDescription") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "genPackageFlags") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-PackageDescription.html#t:Flag">Flag</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condLibrary") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Library">Library</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condSubLibraries") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Library">Library</a>)])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condForeignLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condExecutables") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Executable">Executable</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condTestSuites") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condBenchmarks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a>)]))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Flag" class="def">Flag</a> <a href="#t:Flag" class="selflink">#</a></p><div class="doc"><p>A flag can represent a feature to be included, or a way of linking+ a target against its dependencies, or in fact whatever you can think of.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:MkFlag" class="def">MkFlag</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:flagName" class="def">flagName</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:flagDescription" class="def">flagDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:flagDefault" class="def">flagDefault</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:flagManual" class="def">flagManual</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Flag" class="caption collapser" onclick="toggleSection('i:Flag')">Instances</p><div id="section.i:Flag" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Eq:1" class="instance expander" onclick="toggleSection('i:id:Flag:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Data:2" class="instance expander" onclick="toggleSection('i:id:Flag:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> c <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:Flag">Flag</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:Flag">Flag</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> m <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> m <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> m <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Show:3" class="instance expander" onclick="toggleSection('i:id:Flag:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:Flag">Flag</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Generic:4" class="instance expander" onclick="toggleSection('i:id:Flag:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> x -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Binary:5" class="instance expander" onclick="toggleSection('i:id:Flag:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:Flag">Flag</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Rep:6" class="instance expander" onclick="toggleSection('i:id:Flag:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Flag" "Distribution.Types.GenericPackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MkFlag" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagDescription") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagDefault") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagManual") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyFlag" class="def">emptyFlag</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:Flag">Flag</a> <a href="#v:emptyFlag" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-PackageDescription.html#t:Flag">Flag</a></code> initialized with default parameters.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:FlagName" class="def">FlagName</a> <a href="#t:FlagName" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></code> is the name of a user-defined configuration flag</p><p>Use <code><a href="Distribution-PackageDescription.html#v:mkFlagName">mkFlagName</a></code> and <code><a href="Distribution-PackageDescription.html#v:unFlagName">unFlagName</a></code> to convert from/to a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code>.</p><p>This type is opaque since <code>Cabal-2.0</code></p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:FlagName" class="caption collapser" onclick="toggleSection('i:FlagName')">Instances</p><div id="section.i:FlagName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Eq:1" class="instance expander" onclick="toggleSection('i:id:FlagName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Data:2" class="instance expander" onclick="toggleSection('i:id:FlagName:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> c <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> m <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> m <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> m <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Ord:3" class="instance expander" onclick="toggleSection('i:id:FlagName:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Read:4" class="instance expander" onclick="toggleSection('i:id:FlagName:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Show:5" class="instance expander" onclick="toggleSection('i:id:FlagName:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:IsString:6" class="instance expander" onclick="toggleSection('i:id:FlagName:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc"><p><code><a href="Distribution-PackageDescription.html#v:mkFlagName">mkFlagName</a></code></p><p><em>Since: 2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Generic:7" class="instance expander" onclick="toggleSection('i:id:FlagName:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> x -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Binary:8" class="instance expander" onclick="toggleSection('i:id:FlagName:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Rep:9" class="instance expander" onclick="toggleSection('i:id:FlagName:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "FlagName" "Distribution.Types.GenericPackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FlagName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:mkFlagName" class="def">mkFlagName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> <a href="#v:mkFlagName" class="selflink">#</a></p><div class="doc"><p>Construct a <code><a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></code> from a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><code><a href="Distribution-PackageDescription.html#v:mkFlagName">mkFlagName</a></code> is the inverse to <code><a href="Distribution-PackageDescription.html#v:unFlagName">unFlagName</a></code></p><p>Note: No validations are performed to ensure that the resulting+ <code><a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></code> is valid</p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:unFlagName" class="def">unFlagName</a> :: <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unFlagName" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></code> to <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:FlagAssignment" class="def">FlagAssignment</a> = [(<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)] <a href="#t:FlagAssignment" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-PackageDescription.html#t:FlagAssignment">FlagAssignment</a></code> is a total or partial mapping of <code><a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></code>s to+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></code> flag values. It represents the flags chosen by the user or+ discovered during configuration. For example <code>--flags=foo --flags=-bar</code>+ becomes <code>[("foo", True), ("bar", False)]</code></p></div></div><div class="top"><p class="src"><a id="v:showFlagValue" class="def">showFlagValue</a> :: (<a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showFlagValue" class="selflink">#</a></p><div class="doc"><p>String representation of a flag-value pair.</p></div></div><div class="top"><p class="src"><a id="v:dispFlagAssignment" class="def">dispFlagAssignment</a> :: <a href="Distribution-PackageDescription.html#t:FlagAssignment">FlagAssignment</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:dispFlagAssignment" class="selflink">#</a></p><div class="doc"><p>Pretty-prints a flag assignment.</p></div></div><div class="top"><p class="src"><a id="v:parseFlagAssignment" class="def">parseFlagAssignment</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:FlagAssignment">FlagAssignment</a> <a href="#v:parseFlagAssignment" class="selflink">#</a></p><div class="doc"><p>Parses a flag assignment.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CondTree" class="def">CondTree</a> v c a <a href="#t:CondTree" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a></code> is used to represent the conditional structure of+ a Cabal file, reflecting a syntax element subject to constraints,+ and then any number of sub-elements which may be enabled subject+ to some condition. Both <code>a</code> and <code>c</code> are usually <code><a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a></code>s.</p><p>To be more concrete, consider the following fragment of a <code>Cabal</code>+ file:</p><pre>build-depends: base >= 4.0+if flag(extra)+ build-depends: base >= 4.2+</pre><p>One way to represent this is to have <code><code><a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a></code> <code>ConfVar</code>+ [<code>Dependency</code>] <code>BuildInfo</code></code>. Here, <code><a href="Distribution-PackageDescription.html#v:condTreeData">condTreeData</a></code> represents+ the actual fields which are not behind any conditional, while+ <code><a href="Distribution-PackageDescription.html#v:condTreeComponents">condTreeComponents</a></code> recursively records any further fields+ which are behind a conditional. <code><a href="Distribution-PackageDescription.html#v:condTreeConstraints">condTreeConstraints</a></code> records+ the constraints (in this case, <code>base >= 4.0</code>) which would+ be applied if you use this syntax; in general, this is+ derived off of <code>targetBuildInfo</code> (perhaps a good refactoring+ would be to convert this into an opaque type, with a smart+ constructor that pre-computes the dependencies.)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CondNode" class="def">CondNode</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:condTreeData" class="def">condTreeData</a> :: a</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condTreeConstraints" class="def">condTreeConstraints</a> :: c</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condTreeComponents" class="def">condTreeComponents</a> :: [<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:CondTree" class="caption collapser" onclick="toggleSection('i:CondTree')">Instances</p><div id="section.i:CondTree" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Functor:1" class="instance expander" onclick="toggleSection('i:id:CondTree:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c b -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Foldable:2" class="instance expander" onclick="toggleSection('i:id:CondTree:Foldable:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Foldable">Foldable</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Foldable:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fold">fold</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c m -> m <a href="#v:fold" class="selflink">#</a></p><p class="src"><a href="#v:foldMap">foldMap</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => (a -> m) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> m <a href="#v:foldMap" class="selflink">#</a></p><p class="src"><a href="#v:foldr">foldr</a> :: (a -> b -> b) -> b -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> b <a href="#v:foldr" class="selflink">#</a></p><p class="src"><a href="#v:foldr-39-">foldr'</a> :: (a -> b -> b) -> b -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> b <a href="#v:foldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldl">foldl</a> :: (b -> a -> b) -> b -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> b <a href="#v:foldl" class="selflink">#</a></p><p class="src"><a href="#v:foldl-39-">foldl'</a> :: (b -> a -> b) -> b -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> b <a href="#v:foldl-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr1">foldr1</a> :: (a -> a -> a) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:foldr1" class="selflink">#</a></p><p class="src"><a href="#v:foldl1">foldl1</a> :: (a -> a -> a) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:foldl1" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> [a] <a href="#v:toList" class="selflink">#</a></p><p class="src"><a href="#v:null">null</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:null" class="selflink">#</a></p><p class="src"><a href="#v:length">length</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:length" class="selflink">#</a></p><p class="src"><a href="#v:elem">elem</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => a -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:elem" class="selflink">#</a></p><p class="src"><a href="#v:maximum">maximum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:maximum" class="selflink">#</a></p><p class="src"><a href="#v:minimum">minimum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:minimum" class="selflink">#</a></p><p class="src"><a href="#v:sum">sum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:sum" class="selflink">#</a></p><p class="src"><a href="#v:product">product</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:product" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Traversable:3" class="instance expander" onclick="toggleSection('i:id:CondTree:Traversable:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Traversable</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Traversable:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:traverse">traverse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => (a -> f b) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> f (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c b) <a href="#v:traverse" class="selflink">#</a></p><p class="src"><a href="#v:sequenceA">sequenceA</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c (f a) -> f (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) <a href="#v:sequenceA" class="selflink">#</a></p><p class="src"><a href="#v:mapM">mapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> m (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c b) <a href="#v:mapM" class="selflink">#</a></p><p class="src"><a href="#v:sequence">sequence</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c (m a) -> m (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) <a href="#v:sequence" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Eq:4" class="instance expander" onclick="toggleSection('i:id:CondTree:Eq:4')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> c, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Eq:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Data:5" class="instance expander" onclick="toggleSection('i:id:CondTree:Data:5')"></span> (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> a, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> c, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> v) => <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Data:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> c (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> m (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> m (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> m (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Show:6" class="instance expander" onclick="toggleSection('i:id:CondTree:Show:6')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> v, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> c, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Show:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Generic:7" class="instance expander" onclick="toggleSection('i:id:CondTree:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) x -> <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Binary:8" class="instance expander" onclick="toggleSection('i:id:CondTree:Binary:8')"></span> (<a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> v, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> c, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a) => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Rep:9" class="instance expander" onclick="toggleSection('i:id:CondTree:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:CondTree">CondTree</a> v c a) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "CondTree" "Distribution.Types.CondTree" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CondNode" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condTreeData") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> a)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condTreeConstraints") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> c)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condTreeComponents") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a])))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ConfVar" class="def">ConfVar</a> <a href="#t:ConfVar" class="selflink">#</a></p><div class="doc"><p>A <code>ConfVar</code> represents the variable type used.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:OS" class="def">OS</a> <a href="Distribution-System.html#t:OS">OS</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Arch" class="def">Arch</a> <a href="Distribution-System.html#t:Arch">Arch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Flag" class="def">Flag</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Impl" class="def">Impl</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ConfVar" class="caption collapser" onclick="toggleSection('i:ConfVar')">Instances</p><div id="section.i:ConfVar" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Eq:1" class="instance expander" onclick="toggleSection('i:id:ConfVar:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Data:2" class="instance expander" onclick="toggleSection('i:id:ConfVar:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> c <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> m <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> m <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> m <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Show:3" class="instance expander" onclick="toggleSection('i:id:ConfVar:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Generic:4" class="instance expander" onclick="toggleSection('i:id:ConfVar:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> x -> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Binary:5" class="instance expander" onclick="toggleSection('i:id:ConfVar:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Rep:6" class="instance expander" onclick="toggleSection('i:id:ConfVar:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:ConfVar">ConfVar</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ConfVar" "Distribution.Types.GenericPackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OS" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-System.html#t:OS">OS</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Arch" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-System.html#t:Arch">Arch</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Flag" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:FlagName">FlagName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Impl" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Condition" class="def">Condition</a> c <a href="#t:Condition" class="selflink">#</a></p><div class="doc"><p>A boolean expression parameterized over the variable type used.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Var" class="def">Var</a> c</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Lit" class="def">Lit</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CNot" class="def">CNot</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:COr" class="def">COr</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CAnd" class="def">CAnd</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Condition" class="caption collapser" onclick="toggleSection('i:Condition')">Instances</p><div id="section.i:Condition" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Monad:1" class="instance expander" onclick="toggleSection('i:id:Condition:Monad:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(>>=)</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> (a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(>>)</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Functor:2" class="instance expander" onclick="toggleSection('i:id:Condition:Functor:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Applicative:3" class="instance expander" onclick="toggleSection('i:id:Condition:Applicative:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Applicative:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(<*>)</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> (a -> b) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -> b -> c) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*>)</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(<*)</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Foldable:4" class="instance expander" onclick="toggleSection('i:id:Condition:Foldable:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Foldable">Foldable</a> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Foldable:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fold">fold</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> m -> m <a href="#v:fold" class="selflink">#</a></p><p class="src"><a href="#v:foldMap">foldMap</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => (a -> m) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> m <a href="#v:foldMap" class="selflink">#</a></p><p class="src"><a href="#v:foldr">foldr</a> :: (a -> b -> b) -> b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> b <a href="#v:foldr" class="selflink">#</a></p><p class="src"><a href="#v:foldr-39-">foldr'</a> :: (a -> b -> b) -> b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> b <a href="#v:foldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldl">foldl</a> :: (b -> a -> b) -> b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> b <a href="#v:foldl" class="selflink">#</a></p><p class="src"><a href="#v:foldl-39-">foldl'</a> :: (b -> a -> b) -> b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> b <a href="#v:foldl-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr1">foldr1</a> :: (a -> a -> a) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> a <a href="#v:foldr1" class="selflink">#</a></p><p class="src"><a href="#v:foldl1">foldl1</a> :: (a -> a -> a) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> a <a href="#v:foldl1" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> [a] <a href="#v:toList" class="selflink">#</a></p><p class="src"><a href="#v:null">null</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:null" class="selflink">#</a></p><p class="src"><a href="#v:length">length</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:length" class="selflink">#</a></p><p class="src"><a href="#v:elem">elem</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:elem" class="selflink">#</a></p><p class="src"><a href="#v:maximum">maximum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> a <a href="#v:maximum" class="selflink">#</a></p><p class="src"><a href="#v:minimum">minimum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> a <a href="#v:minimum" class="selflink">#</a></p><p class="src"><a href="#v:sum">sum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> a <a href="#v:sum" class="selflink">#</a></p><p class="src"><a href="#v:product">product</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> a <a href="#v:product" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Traversable:5" class="instance expander" onclick="toggleSection('i:id:Condition:Traversable:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Traversable</a> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Traversable:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:traverse">traverse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => (a -> f b) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> f (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b) <a href="#v:traverse" class="selflink">#</a></p><p class="src"><a href="#v:sequenceA">sequenceA</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> (f a) -> f (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a) <a href="#v:sequenceA" class="selflink">#</a></p><p class="src"><a href="#v:mapM">mapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> m (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> b) <a href="#v:mapM" class="selflink">#</a></p><p class="src"><a href="#v:sequence">sequence</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> (m a) -> m (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a) <a href="#v:sequence" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Alternative:6" class="instance expander" onclick="toggleSection('i:id:Condition:Alternative:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Alternative">Alternative</a> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Alternative:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(<|>)</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:MonadPlus:7" class="instance expander" onclick="toggleSection('i:id:Condition:MonadPlus:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:MonadPlus:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:mplus" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Eq:8" class="instance expander" onclick="toggleSection('i:id:Condition:Eq:8')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> c => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Eq:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Data:9" class="instance expander" onclick="toggleSection('i:id:Condition:Data:9')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> c => <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Data:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> c (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> m (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> m (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> m (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Show:10" class="instance expander" onclick="toggleSection('i:id:Condition:Show:10')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> c => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Show:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Generic:11" class="instance expander" onclick="toggleSection('i:id:Condition:Generic:11')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Generic:11" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) x -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Semigroup:12" class="instance expander" onclick="toggleSection('i:id:Condition:Semigroup:12')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Semigroup:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a) -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Monoid:13" class="instance expander" onclick="toggleSection('i:id:Condition:Monoid:13')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Monoid:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a] -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Binary:14" class="instance expander" onclick="toggleSection('i:id:Condition:Binary:14')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> c => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Binary:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Rep:15" class="instance expander" onclick="toggleSection('i:id:Condition:Rep:15')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Rep:15" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Condition" "Distribution.Types.Condition" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Var" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> c))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Lit" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CNot" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "COr" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CAnd" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-PackageDescription.html#t:Condition">Condition</a> c))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:cNot" class="def">cNot</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:cNot" class="selflink">#</a></p><div class="doc"><p>Boolean negation of a <code><a href="Distribution-PackageDescription.html#t:Condition">Condition</a></code> value.</p></div></div><div class="top"><p class="src"><a id="v:cAnd" class="def">cAnd</a> :: <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> a <a href="#v:cAnd" class="selflink">#</a></p><div class="doc"><p>Boolean AND of two <code>Condtion</code> values.</p></div></div><div class="top"><p class="src"><a id="v:cOr" class="def">cOr</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v => <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> v -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> v -> <a href="Distribution-PackageDescription.html#t:Condition">Condition</a> v <a href="#v:cOr" class="selflink">#</a></p><div class="doc"><p>Boolean OR of two <code><a href="Distribution-PackageDescription.html#t:Condition">Condition</a></code> values.</p></div></div><h1 id="g:10">Source repositories</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SourceRepo" class="def">SourceRepo</a> <a href="#t:SourceRepo" class="selflink">#</a></p><div class="doc"><p>Information about the source revision control system for a package.</p><p>When specifying a repo it is useful to know the meaning or intention of the+ information as doing so enables automation. There are two obvious common+ purposes: one is to find the repo for the latest development version, the+ other is to find the repo for this specific release. The <code>ReopKind</code>+ specifies which one we mean (or another custom one).</p><p>A package can specify one or the other kind or both. Most will specify just+ a head repo but some may want to specify a repo to reconstruct the sources+ for this package release.</p><p>The required information is the <code><a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></code> which tells us if it's using+ <code><a href="Distribution-PackageDescription.html#v:Darcs">Darcs</a></code>, <code><a href="Distribution-PackageDescription.html#v:Git">Git</a></code> for example. The <code><a href="Distribution-PackageDescription.html#v:repoLocation">repoLocation</a></code> and other details are+ interpreted according to the repo type.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:SourceRepo" class="def">SourceRepo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:repoKind" class="def">repoKind</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></dfn><div class="doc"><p>The kind of repo. This field is required.</p></div></li><li><dfn class="src"><a id="v:repoType" class="def">repoType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></dfn><div class="doc"><p>The type of the source repository system for this repo, eg <code><a href="Distribution-PackageDescription.html#v:Darcs">Darcs</a></code> or+ <code><a href="Distribution-PackageDescription.html#v:Git">Git</a></code>. This field is required.</p></div></li><li><dfn class="src"><a id="v:repoLocation" class="def">repoLocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The location of the repository. For most <code><a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></code>s this is a URL.+ This field is required.</p></div></li><li><dfn class="src"><a id="v:repoModule" class="def">repoModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p><code><a href="Distribution-PackageDescription.html#v:CVS">CVS</a></code> can put multiple "modules" on one server and requires a+ module name in addition to the location to identify a particular repo.+ Logically this is part of the location but unfortunately has to be+ specified separately. This field is required for the <code><a href="Distribution-PackageDescription.html#v:CVS">CVS</a></code> <code><a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></code> and+ should not be given otherwise.</p></div></li><li><dfn class="src"><a id="v:repoBranch" class="def">repoBranch</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The name or identifier of the branch, if any. Many source control+ systems have the notion of multiple branches in a repo that exist in the+ same location. For example <code><a href="Distribution-PackageDescription.html#v:Git">Git</a></code> and <code><a href="Distribution-PackageDescription.html#v:CVS">CVS</a></code> use this while systems like+ <code><a href="Distribution-PackageDescription.html#v:Darcs">Darcs</a></code> use different locations for different branches. This field is+ optional but should be used if necessary to identify the sources,+ especially for the <code><a href="Distribution-PackageDescription.html#v:RepoThis">RepoThis</a></code> repo kind.</p></div></li><li><dfn class="src"><a id="v:repoTag" class="def">repoTag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The tag identify a particular state of the repository. This should be+ given for the <code><a href="Distribution-PackageDescription.html#v:RepoThis">RepoThis</a></code> repo kind and not for <code><a href="Distribution-PackageDescription.html#v:RepoHead">RepoHead</a></code> kind.</p></div></li><li><dfn class="src"><a id="v:repoSubdir" class="def">repoSubdir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Some repositories contain multiple projects in different subdirectories+ This field specifies the subdirectory where this packages sources can be+ found, eg the subdirectory containing the <code>.cabal</code> file. It is interpreted+ relative to the root of the repository. This field is optional. If not+ given the default is "." ie no subdirectory.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:SourceRepo" class="caption collapser" onclick="toggleSection('i:SourceRepo')">Instances</p><div id="section.i:SourceRepo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Eq:1" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Data:2" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> c <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> m <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> m <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> m <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Read:3" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Show:4" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Generic:5" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> x -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Binary:6" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Rep:7" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "SourceRepo" "Distribution.Types.SourceRepo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SourceRepo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoKind") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoType") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoLocation") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoModule") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoBranch") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoTag") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoSubdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RepoKind" class="def">RepoKind</a> <a href="#t:RepoKind" class="selflink">#</a></p><div class="doc"><p>What this repo info is for, what it represents.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RepoHead" class="def">RepoHead</a></td><td class="doc"><p>The repository for the "head" or development version of the project.+ This repo is where we should track the latest development activity or+ the usual repo people should get to contribute patches.</p></td></tr><tr><td class="src"><a id="v:RepoThis" class="def">RepoThis</a></td><td class="doc"><p>The repository containing the sources for this exact package version+ or release. For this kind of repo a tag should be given to give enough+ information to re-create the exact sources.</p></td></tr><tr><td class="src"><a id="v:RepoKindUnknown" class="def">RepoKindUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:RepoKind" class="caption collapser" onclick="toggleSection('i:RepoKind')">Instances</p><div id="section.i:RepoKind" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Eq:1" class="instance expander" onclick="toggleSection('i:id:RepoKind:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Data:2" class="instance expander" onclick="toggleSection('i:id:RepoKind:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> c <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> m <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> m <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> m <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Ord:3" class="instance expander" onclick="toggleSection('i:id:RepoKind:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Read:4" class="instance expander" onclick="toggleSection('i:id:RepoKind:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Show:5" class="instance expander" onclick="toggleSection('i:id:RepoKind:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Generic:6" class="instance expander" onclick="toggleSection('i:id:RepoKind:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> x -> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Binary:7" class="instance expander" onclick="toggleSection('i:id:RepoKind:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Text:8" class="instance expander" onclick="toggleSection('i:id:RepoKind:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Rep:9" class="instance expander" onclick="toggleSection('i:id:RepoKind:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "RepoKind" "Distribution.Types.SourceRepo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RepoHead" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RepoThis" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RepoKindUnknown" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RepoType" class="def">RepoType</a> <a href="#t:RepoType" class="selflink">#</a></p><div class="doc"><p>An enumeration of common source control systems. The fields used in the+ <code><a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a></code> depend on the type of repo. The tools and methods used to+ obtain and track the repo depend on the repo type.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Darcs" class="def">Darcs</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Git" class="def">Git</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:SVN" class="def">SVN</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CVS" class="def">CVS</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Mercurial" class="def">Mercurial</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:GnuArch" class="def">GnuArch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Bazaar" class="def">Bazaar</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Monotone" class="def">Monotone</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OtherRepoType" class="def">OtherRepoType</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:RepoType" class="caption collapser" onclick="toggleSection('i:RepoType')">Instances</p><div id="section.i:RepoType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Eq:1" class="instance expander" onclick="toggleSection('i:id:RepoType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Data:2" class="instance expander" onclick="toggleSection('i:id:RepoType:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> c <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> m <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> m <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> m <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Ord:3" class="instance expander" onclick="toggleSection('i:id:RepoType:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Read:4" class="instance expander" onclick="toggleSection('i:id:RepoType:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Show:5" class="instance expander" onclick="toggleSection('i:id:RepoType:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Generic:6" class="instance expander" onclick="toggleSection('i:id:RepoType:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> x -> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Binary:7" class="instance expander" onclick="toggleSection('i:id:RepoType:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Text:8" class="instance expander" onclick="toggleSection('i:id:RepoType:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Rep:9" class="instance expander" onclick="toggleSection('i:id:RepoType:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "RepoType" "Distribution.Types.SourceRepo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Darcs" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Git" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SVN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CVS" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Mercurial" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GnuArch" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Bazaar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Monotone" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OtherRepoType" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownRepoTypes" class="def">knownRepoTypes</a> :: [<a href="Distribution-PackageDescription.html#t:RepoType">RepoType</a>] <a href="#v:knownRepoTypes" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emptySourceRepo" class="def">emptySourceRepo</a> :: <a href="Distribution-PackageDescription.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-PackageDescription.html#t:SourceRepo">SourceRepo</a> <a href="#v:emptySourceRepo" class="selflink">#</a></p></div><h1 id="g:11">Custom setup build information</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SetupBuildInfo" class="def">SetupBuildInfo</a> <a href="#t:SetupBuildInfo" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:SetupBuildInfo" class="def">SetupBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:setupDepends" class="def">setupDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:defaultSetupDepends" class="def">defaultSetupDepends</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Is this a default 'custom-setup' section added by the cabal-install+ code (as opposed to user-provided)? This field is only used+ internally, and doesn't correspond to anything in the .cabal+ file. See #3199.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:SetupBuildInfo" class="caption collapser" onclick="toggleSection('i:SetupBuildInfo')">Instances</p><div id="section.i:SetupBuildInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Eq:1" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Data:2" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> c <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> m <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> m <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> m <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Read:3" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Show:4" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Generic:5" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> x -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Monoid:7" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a>] -> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Binary:8" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Rep:9" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">SetupBuildInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "SetupBuildInfo" "Distribution.Types.SetupBuildInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SetupBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "setupDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "defaultSetupDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-ReadE.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.ReadE</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Jose Iborra 2008</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.ReadE</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">ReadE</a></li><li><a href="#g:2">Projections</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Simple parsing with failure</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">newtype</span> <a href="#t:ReadE">ReadE</a> a = <a href="#v:ReadE">ReadE</a> {<ul class="subs"><li><a href="#v:runReadE">runReadE</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> ErrorMsg a</li></ul>}</li><li class="src short"><a href="#v:succeedReadE">succeedReadE</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a) -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a</li><li class="src short"><a href="#v:failReadE">failReadE</a> :: ErrorMsg -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a</li><li class="src short"><a href="#v:parseReadE">parseReadE</a> :: <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><a href="#v:readEOrFail">readEOrFail</a> :: <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a</li><li class="src short"><a href="#v:readP_to_E">readP_to_E</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> ErrorMsg) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a</li></ul></div><div id="interface"><h1 id="g:1">ReadE</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:ReadE" class="def">ReadE</a> a <a href="#t:ReadE" class="selflink">#</a></p><div class="doc"><p>Parser with simple error reporting</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ReadE" class="def">ReadE</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:runReadE" class="def">runReadE</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> ErrorMsg a</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ReadE" class="caption collapser" onclick="toggleSection('i:ReadE')">Instances</p><div id="section.i:ReadE" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReadE:Functor:1" class="instance expander" onclick="toggleSection('i:id:ReadE:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a></span> <a href="#t:ReadE" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ReadE:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> b -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:succeedReadE" class="def">succeedReadE</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a) -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a <a href="#v:succeedReadE" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:failReadE" class="def">failReadE</a> :: ErrorMsg -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a <a href="#v:failReadE" class="selflink">#</a></p></div><h1 id="g:2">Projections</h1><div class="top"><p class="src"><a id="v:parseReadE" class="def">parseReadE</a> :: <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:parseReadE" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:readEOrFail" class="def">readEOrFail</a> :: <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> a <a href="#v:readEOrFail" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:readP_to_E" class="def">readP_to_E</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> ErrorMsg) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a <a href="#v:readP_to_E" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Bench.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Bench</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Johan Tibell 2011</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Bench</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is the entry point into running the benchmarks in a built+ package. It performs the "<code>./setup bench</code>" action. It runs+ benchmarks designated in the package description.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:bench">bench</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:bench" class="def">bench</a> <a href="#v:bench" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a></td><td class="doc"><p>positional command-line arguments</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>information from the .cabal file</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc"><p>information from the configure step</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></td><td class="doc"><p>flags sent to benchmark</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Perform the "<code>./setup bench</code>" action.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Build-Macros.html view
@@ -0,0 +1,10 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Build.Macros</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Simon Marlow 2008</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Build.Macros</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Generate cabal_macros.h - CPP macros for package version testing</p><p>When using CPP you get</p><pre>VERSION_<package>+MIN_VERSION_<package>(A,B,C)</pre><p>for each <em>package</em> in <code>build-depends</code>, which is true if the version of+ <em>package</em> in use is <code>>= A.B.C</code>, using the normal ordering on version+ numbers.</p><p>TODO Figure out what to do about backpack and internal libraries. It is very+ suspecious that this stuff works with munged package identifiers</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:generate">generate</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:generatePackageVersionMacros">generatePackageVersionMacros</a> :: [<a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:generate" class="def">generate</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:generate" class="selflink">#</a></p><div class="doc"><p>The contents of the <code>cabal_macros.h</code> for the given configured package.</p></div></div><div class="top"><p class="src"><a id="v:generatePackageVersionMacros" class="def">generatePackageVersionMacros</a> :: [<a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:generatePackageVersionMacros" class="selflink">#</a></p><div class="doc"><p>Helper function that generates just the <code>VERSION_pkg</code> and <code>MIN_VERSION_pkg</code>+ macros for a list of package ids (usually used with the specific deps of+ a configured package).</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Build-PathsModule.html view
@@ -0,0 +1,9 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Build.PathsModule</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005<br />Ross Paterson 2006<br />Duncan Coutts 2007-2008</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Build.PathsModule</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Generating the Paths_pkgname module.</p><p>This is a module that Cabal generates for the benefit of packages. It+ enables them to find their version number and find any installed data files+ at runtime. This code should probably be split off into another module.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:generate">generate</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:pkgPathEnvVar">pkgPathEnvVar</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:generate" class="def">generate</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:generate" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pkgPathEnvVar" class="def">pkgPathEnvVar</a> <a href="#v:pkgPathEnvVar" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>path component; one of "bindir", "libdir",+ "datadir", "libexecdir", or "sysconfdir"</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>environment variable name</p></td></tr></table></div><div class="doc"><p>Generates the name of the environment variable controlling the path+ component of interest.</p><p>Note: The format of these strings is part of Cabal's public API;+ changing this function constitutes a *backwards-compatibility* break.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Build.html view
@@ -0,0 +1,7 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Build</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005<br />Ross Paterson 2006<br />Duncan Coutts 2007-2008 2012</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Build</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is the entry point to actually building the modules in a package. It+ doesn't actually do much itself, most of the work is delegated to+ compiler-specific actions. It does do some non-compiler specific bits like+ running pre-processors.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:build">build</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:repl">repl</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:startInterpreter">startInterpreter</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:initialBuildSteps">initialBuildSteps</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:componentInitialBuildSteps">componentInitialBuildSteps</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:writeAutogenFiles">writeAutogenFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:build" class="def">build</a> <a href="#v:build" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>Mostly information from the .cabal file</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc"><p>Configuration information</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></td><td class="doc"><p>Flags that the user passed to build</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</td><td class="doc"><p>preprocessors to run before compiling</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Build the libraries and executables in this package.</p></div></div><div class="top"><p class="src"><a id="v:repl" class="def">repl</a> <a href="#v:repl" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>Mostly information from the .cabal file</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc"><p>Configuration information</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></td><td class="doc"><p>Flags that the user passed to build</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</td><td class="doc"><p>preprocessors to run before compiling</p></td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:startInterpreter" class="def">startInterpreter</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:startInterpreter" class="selflink">#</a></p><div class="doc"><p>Start an interpreter without loading any package files.</p></div></div><div class="top"><p class="src"><a id="v:initialBuildSteps" class="def">initialBuildSteps</a> <a href="#v:initialBuildSteps" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>"dist" prefix</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>mostly information from the .cabal file</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc"><p>Configuration information</p></td></tr><tr><td class="src">-> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc"><p>The verbosity to use</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Runs <code><a href="Distribution-Simple-Build.html#v:componentInitialBuildSteps">componentInitialBuildSteps</a></code> on every configured component.</p></div></div><div class="top"><p class="src"><a id="v:componentInitialBuildSteps" class="def">componentInitialBuildSteps</a> <a href="#v:componentInitialBuildSteps" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>"dist" prefix</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>mostly information from the .cabal file</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc"><p>Configuration information</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc"><p>The verbosity to use</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Creates the autogenerated files for a particular configured component.</p></div></div><div class="top"><p class="src"><a id="v:writeAutogenFiles" class="def">writeAutogenFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:writeAutogenFiles" class="selflink">#</a></p><div class="doc"><p>Generate and write out the Paths_<a href="pkg">pkg</a>.hs and cabal_macros.h files</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-BuildPaths.html view
@@ -0,0 +1,11 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.BuildPaths</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004<br />Duncan Coutts 2008</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.BuildPaths</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Source files & build directories</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A bunch of dirs, paths and file names used for intermediate build steps.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:defaultDistPref">defaultDistPref</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:srcPref">srcPref</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:haddockDirName">haddockDirName</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:hscolourPref">hscolourPref</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:haddockPref">haddockPref</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:autogenModulesDir">autogenModulesDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:autogenPackageModulesDir">autogenPackageModulesDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:autogenComponentModulesDir">autogenComponentModulesDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:autogenModuleName">autogenModuleName</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:autogenPathsModuleName">autogenPathsModuleName</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:cppHeaderName">cppHeaderName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:haddockName">haddockName</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:mkLibName">mkLibName</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkProfLibName">mkProfLibName</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkSharedLibName">mkSharedLibName</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:exeExtension">exeExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:objExtension">objExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:dllExtension">dllExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:staticLibExtension">staticLibExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:getSourceFiles">getSourceFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li class="src short"><a href="#v:getLibSourceFiles">getLibSourceFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li class="src short"><a href="#v:getExeSourceFiles">getExeSourceFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li class="src short"><a href="#v:getFLibSourceFiles">getFLibSourceFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li class="src short"><a href="#v:exeBuildDir">exeBuildDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:flibBuildDir">flibBuildDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:defaultDistPref" class="def">defaultDistPref</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:defaultDistPref" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:srcPref" class="def">srcPref</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:srcPref" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haddockDirName" class="def">haddockDirName</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:haddockDirName" class="selflink">#</a></p><div class="doc"><p>This is the name of the directory in which the generated haddocks+ should be stored. It does not include the <code><a href="dist">dist</a><em>doc</em>html</code> prefix.</p></div></div><div class="top"><p class="src"><a id="v:hscolourPref" class="def">hscolourPref</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:hscolourPref" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haddockPref" class="def">haddockPref</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:haddockPref" class="selflink">#</a></p><div class="doc"><p>The directory to which generated haddock documentation should be written.</p></div></div><div class="top"><p class="src"><a id="v:autogenModulesDir" class="def">autogenModulesDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:autogenModulesDir" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: If you can, use <code><a href="Distribution-Simple-BuildPaths.html#v:autogenComponentModulesDir">autogenComponentModulesDir</a></code> instead, but if you really wanted package-global generated modules, use <code><a href="Distribution-Simple-BuildPaths.html#v:autogenPackageModulesDir">autogenPackageModulesDir</a></code>. In Cabal 2.0, we avoid using autogenerated files which apply to all components, because the information you often want in these files, e.g., dependency information, is best specified per component, so that reconfiguring a different component (e.g., enabling tests) doesn't force the entire to be rebuilt. <code><a href="Distribution-Simple-BuildPaths.html#v:autogenPackageModulesDir">autogenPackageModulesDir</a></code> still provides a place to put files you want to apply to the entire package, but most users of <code><a href="Distribution-Simple-BuildPaths.html#v:autogenModulesDir">autogenModulesDir</a></code> should seriously consider <code><a href="Distribution-Simple-BuildPaths.html#v:autogenComponentModulesDir">autogenComponentModulesDir</a></code> if you really wanted the module to apply to one component.</p></div><p>The directory in which we put auto-generated modules for EVERY+ component in the package. See deprecation notice.</p></div></div><div class="top"><p class="src"><a id="v:autogenPackageModulesDir" class="def">autogenPackageModulesDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:autogenPackageModulesDir" class="selflink">#</a></p><div class="doc"><p>The directory in which we put auto-generated modules for EVERY+ component in the package.</p></div></div><div class="top"><p class="src"><a id="v:autogenComponentModulesDir" class="def">autogenComponentModulesDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:autogenComponentModulesDir" class="selflink">#</a></p><div class="doc"><p>The directory in which we put auto-generated modules for a+ particular component.</p></div></div><div class="top"><p class="src"><a id="v:autogenModuleName" class="def">autogenModuleName</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:autogenModuleName" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use autogenPathsModuleName instead</p></div><p>The name of the auto-generated module associated with a package</p></div></div><div class="top"><p class="src"><a id="v:autogenPathsModuleName" class="def">autogenPathsModuleName</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:autogenPathsModuleName" class="selflink">#</a></p><div class="doc"><p>The name of the auto-generated Paths_* module associated with a package</p></div></div><div class="top"><p class="src"><a id="v:cppHeaderName" class="def">cppHeaderName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:cppHeaderName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haddockName" class="def">haddockName</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:haddockName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mkLibName" class="def">mkLibName</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:mkLibName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mkProfLibName" class="def">mkProfLibName</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:mkProfLibName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mkSharedLibName" class="def">mkSharedLibName</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:mkSharedLibName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:exeExtension" class="def">exeExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:exeExtension" class="selflink">#</a></p><div class="doc"><p>Default extension for executable files on the current platform.+ (typically <code>""</code> on Unix and <code>"exe"</code> on Windows or OS/2)</p></div></div><div class="top"><p class="src"><a id="v:objExtension" class="def">objExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:objExtension" class="selflink">#</a></p><div class="doc"><p>Extension for object files. For GHC the extension is <code>"o"</code>.</p></div></div><div class="top"><p class="src"><a id="v:dllExtension" class="def">dllExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:dllExtension" class="selflink">#</a></p><div class="doc"><p>Extension for dynamically linked (or shared) libraries+ (typically <code>"so"</code> on Unix and <code>"dll"</code> on Windows)</p></div></div><div class="top"><p class="src"><a id="v:staticLibExtension" class="def">staticLibExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:staticLibExtension" class="selflink">#</a></p><div class="doc"><p>Extension for static libraries</p><p>TODO: Here, as well as in dllExtension, it's really the target OS that we're+ interested in, not the build OS.</p></div></div><h1 id="g:1">Source files & build directories</h1><div class="top"><p class="src"><a id="v:getSourceFiles" class="def">getSourceFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] <a href="#v:getSourceFiles" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getLibSourceFiles" class="def">getLibSourceFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] <a href="#v:getLibSourceFiles" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getExeSourceFiles" class="def">getExeSourceFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] <a href="#v:getExeSourceFiles" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getFLibSourceFiles" class="def">getFLibSourceFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] <a href="#v:getFLibSourceFiles" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:exeBuildDir" class="def">exeBuildDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:exeBuildDir" class="selflink">#</a></p><div class="doc"><p>The directory where we put build results for an executable</p></div></div><div class="top"><p class="src"><a id="v:flibBuildDir" class="def">flibBuildDir</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:flibBuildDir" class="selflink">#</a></p><div class="doc"><p>The directory where we put build results for a foreign library</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-BuildTarget.html view
@@ -0,0 +1,10 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.BuildTarget</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) Duncan Coutts 2012</td></tr><tr><th>License</th><td>BSD-like</td></tr><tr><th>Maintainer</th><td>duncan@community.haskell.org</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.BuildTarget</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Main interface</a></li><li><a href="#g:2">Build targets</a></li><li><a href="#g:3">Parsing user build targets</a></li><li><a href="#g:4">Resolving build targets</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Handling for user-specified build targets</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:readTargetInfos">readTargetInfos</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>]</li><li class="src short"><a href="#v:readBuildTargets">readBuildTargets</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:BuildTarget">BuildTarget</a><ul class="subs"><li>= <a href="#v:BuildTargetComponent">BuildTargetComponent</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li>| <a href="#v:BuildTargetModule">BuildTargetModule</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li>| <a href="#v:BuildTargetFile">BuildTargetFile</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul></li><li class="src short"><a href="#v:showBuildTarget">showBuildTarget</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:QualLevel">QualLevel</a><ul class="subs"><li>= <a href="#v:QL1">QL1</a></li><li>| <a href="#v:QL2">QL2</a></li><li>| <a href="#v:QL3">QL3</a></li></ul></li><li class="src short"><a href="#v:buildTargetComponentName">buildTargetComponentName</a> :: <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:UserBuildTarget">UserBuildTarget</a></li><li class="src short"><a href="#v:readUserBuildTargets">readUserBuildTargets</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> ([<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">UserBuildTargetProblem</a>], [<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a>])</li><li class="src short"><a href="#v:showUserBuildTarget">showUserBuildTarget</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:UserBuildTargetProblem">UserBuildTargetProblem</a> = <a href="#v:UserBuildTargetUnrecognised">UserBuildTargetUnrecognised</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:reportUserBuildTargetProblems">reportUserBuildTargetProblems</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">UserBuildTargetProblem</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:resolveBuildTargets">resolveBuildTargets</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [(<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)] -> ([<a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">BuildTargetProblem</a>], [<a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a>])</li><li class="src short"><span class="keyword">data</span> <a href="#t:BuildTargetProblem">BuildTargetProblem</a><ul class="subs"><li>= <a href="#v:BuildTargetExpected">BuildTargetExpected</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li>| <a href="#v:BuildTargetNoSuch">BuildTargetNoSuch</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li>| <a href="#v:BuildTargetAmbiguous">BuildTargetAmbiguous</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> [(<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a>, <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a>)]</li></ul></li><li class="src short"><a href="#v:reportBuildTargetProblems">reportBuildTargetProblems</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">BuildTargetProblem</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1 id="g:1">Main interface</h1><div class="top"><p class="src"><a id="v:readTargetInfos" class="def">readTargetInfos</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>] <a href="#v:readTargetInfos" class="selflink">#</a></p><div class="doc"><p>Take a list of <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code> build targets, and parse and validate them+ into actual <code><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></code>s to be built<em>registered</em>whatever.</p></div></div><div class="top"><p class="src"><a id="v:readBuildTargets" class="def">readBuildTargets</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a>] <a href="#v:readBuildTargets" class="selflink">#</a></p><div class="doc"><p>Read a list of user-supplied build target strings and resolve them to+ <code><a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a></code>s according to a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code>. If there are problems+ with any of the targets e.g. they don't exist or are misformatted, throw an+ <code>IOException</code>.</p></div></div><h1 id="g:2">Build targets</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BuildTarget" class="def">BuildTarget</a> <a href="#t:BuildTarget" class="selflink">#</a></p><div class="doc"><p>A fully resolved build target.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BuildTargetComponent" class="def">BuildTargetComponent</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></td><td class="doc"><p>A specific component</p></td></tr><tr><td class="src"><a id="v:BuildTargetModule" class="def">BuildTargetModule</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></td><td class="doc"><p>A specific module within a specific component.</p></td></tr><tr><td class="src"><a id="v:BuildTargetFile" class="def">BuildTargetFile</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>A specific file within a specific component.</p></td></tr></table></div><div class="subs instances"><p id="control.i:BuildTarget" class="caption collapser" onclick="toggleSection('i:BuildTarget')">Instances</p><div id="section.i:BuildTarget" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildTarget:Eq:1" class="instance expander" onclick="toggleSection('i:id:BuildTarget:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a></span> <a href="#t:BuildTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildTarget:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildTarget:Show:2" class="instance expander" onclick="toggleSection('i:id:BuildTarget:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a></span> <a href="#t:BuildTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildTarget:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildTarget:Generic:3" class="instance expander" onclick="toggleSection('i:id:BuildTarget:Generic:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a></span> <a href="#t:BuildTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildTarget:Generic:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> x -> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildTarget:Binary:4" class="instance expander" onclick="toggleSection('i:id:BuildTarget:Binary:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a></span> <a href="#t:BuildTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildTarget:Binary:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildTarget:Rep:5" class="instance expander" onclick="toggleSection('i:id:BuildTarget:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a></span> <a href="#t:BuildTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildTarget:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BuildTarget" "Distribution.Simple.BuildTarget" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BuildTargetComponent" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BuildTargetModule" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BuildTargetFile" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:showBuildTarget" class="def">showBuildTarget</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showBuildTarget" class="selflink">#</a></p><div class="doc"><p>Unambiguously render a <code><a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a></code>, so that it can+ be parsed in all situations.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:QualLevel" class="def">QualLevel</a> <a href="#t:QualLevel" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:QL1" class="def">QL1</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:QL2" class="def">QL2</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:QL3" class="def">QL3</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:QualLevel" class="caption collapser" onclick="toggleSection('i:QualLevel')">Instances</p><div id="section.i:QualLevel" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:QualLevel:Enum:1" class="instance expander" onclick="toggleSection('i:id:QualLevel:Enum:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a></span> <a href="#t:QualLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:QualLevel:Enum:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> [<a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> [<a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> [<a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> [<a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:QualLevel:Show:2" class="instance expander" onclick="toggleSection('i:id:QualLevel:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a></span> <a href="#t:QualLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:QualLevel:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-BuildTarget.html#t:QualLevel">QualLevel</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:buildTargetComponentName" class="def">buildTargetComponentName</a> :: <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:buildTargetComponentName" class="selflink">#</a></p></div><h1 id="g:3">Parsing user build targets</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:UserBuildTarget" class="def">UserBuildTarget</a> <a href="#t:UserBuildTarget" class="selflink">#</a></p><div class="doc"><p>Various ways that a user may specify a build target.</p></div><div class="subs instances"><p id="control.i:UserBuildTarget" class="caption collapser" onclick="toggleSection('i:UserBuildTarget')">Instances</p><div id="section.i:UserBuildTarget" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UserBuildTarget:Eq:1" class="instance expander" onclick="toggleSection('i:id:UserBuildTarget:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a></span> <a href="#t:UserBuildTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UserBuildTarget:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UserBuildTarget:Ord:2" class="instance expander" onclick="toggleSection('i:id:UserBuildTarget:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a></span> <a href="#t:UserBuildTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UserBuildTarget:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UserBuildTarget:Show:3" class="instance expander" onclick="toggleSection('i:id:UserBuildTarget:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a></span> <a href="#t:UserBuildTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UserBuildTarget:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:readUserBuildTargets" class="def">readUserBuildTargets</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> ([<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">UserBuildTargetProblem</a>], [<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a>]) <a href="#v:readUserBuildTargets" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showUserBuildTarget" class="def">showUserBuildTarget</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showUserBuildTarget" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:UserBuildTargetProblem" class="def">UserBuildTargetProblem</a> <a href="#t:UserBuildTargetProblem" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:UserBuildTargetUnrecognised" class="def">UserBuildTargetUnrecognised</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:UserBuildTargetProblem" class="caption collapser" onclick="toggleSection('i:UserBuildTargetProblem')">Instances</p><div id="section.i:UserBuildTargetProblem" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UserBuildTargetProblem:Show:1" class="instance expander" onclick="toggleSection('i:id:UserBuildTargetProblem:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">UserBuildTargetProblem</a></span> <a href="#t:UserBuildTargetProblem" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UserBuildTargetProblem:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">UserBuildTargetProblem</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">UserBuildTargetProblem</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">UserBuildTargetProblem</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:reportUserBuildTargetProblems" class="def">reportUserBuildTargetProblems</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">UserBuildTargetProblem</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:reportUserBuildTargetProblems" class="selflink">#</a></p></div><h1 id="g:4">Resolving build targets</h1><div class="top"><p class="src"><a id="v:resolveBuildTargets" class="def">resolveBuildTargets</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [(<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)] -> ([<a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">BuildTargetProblem</a>], [<a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a>]) <a href="#v:resolveBuildTargets" class="selflink">#</a></p><div class="doc"><p>Given a bunch of user-specified targets, try to resolve what it is they+ refer to.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BuildTargetProblem" class="def">BuildTargetProblem</a> <a href="#t:BuildTargetProblem" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BuildTargetExpected" class="def">BuildTargetExpected</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><dl><dt>expected thing</dt><dd>(actually got)</dd></dl></td></tr><tr><td class="src"><a id="v:BuildTargetNoSuch" class="def">BuildTargetNoSuch</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</td><td class="doc"><dl><dt>(no such thing, actually got)</dt><dd></dd></dl></td></tr><tr><td class="src"><a id="v:BuildTargetAmbiguous" class="def">BuildTargetAmbiguous</a> <a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a> [(<a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">UserBuildTarget</a>, <a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">BuildTarget</a>)]</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:BuildTargetProblem" class="caption collapser" onclick="toggleSection('i:BuildTargetProblem')">Instances</p><div id="section.i:BuildTargetProblem" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildTargetProblem:Show:1" class="instance expander" onclick="toggleSection('i:id:BuildTargetProblem:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">BuildTargetProblem</a></span> <a href="#t:BuildTargetProblem" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildTargetProblem:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">BuildTargetProblem</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">BuildTargetProblem</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">BuildTargetProblem</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:reportBuildTargetProblems" class="def">reportBuildTargetProblems</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">BuildTargetProblem</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:reportBuildTargetProblems" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-BuildToolDepends.html view
@@ -0,0 +1,25 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.BuildToolDepends</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.BuildToolDepends</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This modules provides functions for working with both the legacy+ "build-tools" field, and its replacement, "build-tool-depends". Prefer using+ the functions contained to access those fields directly.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:desugarBuildTool">desugarBuildTool</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></li><li class="src short"><a href="#v:getAllToolDependencies">getAllToolDependencies</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>]</li><li class="src short"><a href="#v:isInternal">isInternal</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:getAllInternalToolDependencies">getAllInternalToolDependencies</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:desugarBuildTool" class="def">desugarBuildTool</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:desugarBuildTool" class="selflink">#</a></p><div class="doc"><p>Desugar a "build-tools" entry into proper a executable dependency if+ possible.</p><p>An entry can be so desguared in two cases:</p><ol><li>The name in build-tools matches a locally defined executable. The+ executable dependency produced is on that exe in the current package.</li><li>The name in build-tools matches a hard-coded set of known tools. For now,+ the executable dependency produced is one an executable in a package of+ the same, but the hard-coding could just as well be per-key.</li></ol><p>The first cases matches first.</p></div></div><div class="top"><p class="src"><a id="v:getAllToolDependencies" class="def">getAllToolDependencies</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>] <a href="#v:getAllToolDependencies" class="selflink">#</a></p><div class="doc"><p>Get everything from "build-tool-depends", along with entries from+ "build-tools" that we know how to desugar.</p><p>This should almost always be used instead of just accessing the+ <code><a href="Distribution-Types-BuildInfo.html#v:buildToolDepends">buildToolDepends</a></code> field directly.</p></div></div><div class="top"><p class="src"><a id="v:isInternal" class="def">isInternal</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isInternal" class="selflink">#</a></p><div class="doc"><p>Does the given executable dependency map to this current package?</p><p>This is a tiny function, but used in a number of places.</p><p>This function is only sound to call on <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code>s from the given package+ description. This is because it just filters the package names of each+ dependency, and does not check whether version bounds in fact exclude the+ current package, or the referenced components in fact exist in the current+ package.</p><p>This is OK because when a package is loaded, it is checked (in+ <code><a href="Distribution-Package.html#v:Check">Check</a></code>) that dependencies matching internal components+ do indeed have version bounds accepting the current package, and any+ depended-on component in the current package actually exists. In fact this+ check is performed by gathering the internal tool dependencies of each+ component of the package according to this module, and ensuring those+ properties on each so-gathered dependency.</p><p>version bounds and components of the package are unchecked. This is because+ we sanitize exe deps so that the matching name implies these other+ conditions.</p></div></div><div class="top"><p class="src"><a id="v:getAllInternalToolDependencies" class="def">getAllInternalToolDependencies</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>] <a href="#v:getAllInternalToolDependencies" class="selflink">#</a></p><div class="doc"><p>Get internal "build-tool-depends", along with internal "build-tools"</p><p>This is a tiny function, but used in a number of places. The same+ restrictions that apply to <code><a href="Distribution-Simple-BuildToolDepends.html#v:isInternal">isInternal</a></code> also apply to this function.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-CCompiler.html view
@@ -0,0 +1,13 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.CCompiler</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>2011 Dan Knapp</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.CCompiler</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This simple package provides types and functions for interacting with+ C compilers. Currently it's just a type enumerating extant C-like+ languages, which we call dialects.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:CDialect">CDialect</a><ul class="subs"><li>= <a href="#v:C">C</a></li><li>| <a href="#v:ObjectiveC">ObjectiveC</a></li><li>| <a href="#v:CPlusPlus">CPlusPlus</a></li><li>| <a href="#v:ObjectiveCPlusPlus">ObjectiveCPlusPlus</a></li></ul></li><li class="src short"><a href="#v:cSourceExtensions">cSourceExtensions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:cDialectFilenameExtension">cDialectFilenameExtension</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:filenameCDialect">filenameCDialect</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CDialect" class="def">CDialect</a> <a href="#t:CDialect" class="selflink">#</a></p><div class="doc"><p>Represents a dialect of C. The Monoid instance expresses backward+ compatibility, in the sense that 'mappend a b' is the least inclusive+ dialect which both <code>a</code> and <code>b</code> can be correctly interpreted as.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:C" class="def">C</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ObjectiveC" class="def">ObjectiveC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CPlusPlus" class="def">CPlusPlus</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ObjectiveCPlusPlus" class="def">ObjectiveCPlusPlus</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:CDialect" class="caption collapser" onclick="toggleSection('i:CDialect')">Instances</p><div id="section.i:CDialect" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CDialect:Eq:1" class="instance expander" onclick="toggleSection('i:id:CDialect:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a></span> <a href="#t:CDialect" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CDialect:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CDialect:Show:2" class="instance expander" onclick="toggleSection('i:id:CDialect:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a></span> <a href="#t:CDialect" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CDialect:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CDialect:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:CDialect:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a></span> <a href="#t:CDialect" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CDialect:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CDialect:Monoid:4" class="instance expander" onclick="toggleSection('i:id:CDialect:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a></span> <a href="#t:CDialect" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CDialect:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a>] -> <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:cSourceExtensions" class="def">cSourceExtensions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:cSourceExtensions" class="selflink">#</a></p><div class="doc"><p>A list of all file extensions which are recognized as possibly containing+ some dialect of C code. Note that this list is only for source files,+ not for header files.</p></div></div><div class="top"><p class="src"><a id="v:cDialectFilenameExtension" class="def">cDialectFilenameExtension</a> :: <a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:cDialectFilenameExtension" class="selflink">#</a></p><div class="doc"><p>Takes a dialect of C and whether code is intended to be passed through+ the preprocessor, and returns a filename extension for containing that+ code.</p></div></div><div class="top"><p class="src"><a id="v:filenameCDialect" class="def">filenameCDialect</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-Simple-CCompiler.html#t:CDialect">CDialect</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) <a href="#v:filenameCDialect" class="selflink">#</a></p><div class="doc"><p>Infers from a filename's extension the dialect of C which it contains,+ and whether it is intended to be passed through the preprocessor.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Command.html view
@@ -0,0 +1,30 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Command</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2007</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>non-portable (ExistentialQuantification)</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Command</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Command interface</a><ul><li><a href="#g:2">Constructing commands</a></li><li><a href="#g:3">Associating actions with commands</a></li><li><a href="#g:4">Building lists of commands</a></li><li><a href="#g:5">Running commands</a></li></ul></li><li><a href="#g:6">Option Fields</a><ul><li><a href="#g:7">Constructing Option Fields</a></li><li><a href="#g:8">Liftings & Projections</a></li></ul></li><li><a href="#g:9">Option Descriptions</a><ul><li><a href="#g:10">OptDescr <code>smart</code> constructors</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is to do with command line handling. The Cabal command line is+ organised into a number of named sub-commands (much like darcs). The+ <code><a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a></code> abstraction represents one of these sub-commands, with a name,+ description, a set of flags. Commands can be associated with actions and+ run. It handles some common stuff automatically, like the <code>--help</code> and+ command line completion flags. It is designed to allow other tools make+ derived commands. This feature is used heavily in <code>cabal-install</code>.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:CommandUI">CommandUI</a> flags = <a href="#v:CommandUI">CommandUI</a> {<ul class="subs"><li><a href="#v:commandName">commandName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:commandSynopsis">commandSynopsis</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:commandUsage">commandUsage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:commandDescription">commandDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</li><li><a href="#v:commandNotes">commandNotes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</li><li><a href="#v:commandDefaultFlags">commandDefaultFlags</a> :: flags</li><li><a href="#v:commandOptions">commandOptions</a> :: <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags]</li></ul>}</li><li class="src short"><a href="#v:commandShowOptions">commandShowOptions</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags -> flags -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:CommandParse">CommandParse</a> flags<ul class="subs"><li>= <a href="#v:CommandHelp">CommandHelp</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</li><li>| <a href="#v:CommandList">CommandList</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li>| <a href="#v:CommandErrors">CommandErrors</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li>| <a href="#v:CommandReadyToGo">CommandReadyToGo</a> flags</li></ul></li><li class="src short"><a href="#v:commandParseArgs">commandParseArgs</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> (flags -> flags, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])</li><li class="src short"><a href="#v:getNormalCommandDescriptions">getNormalCommandDescriptions</a> :: [<a href="Distribution-Simple-Command.html#t:Command">Command</a> action] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li class="src short"><a href="#v:helpCommandUI">helpCommandUI</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> ()</li><li class="src short"><span class="keyword">data</span> <a href="#t:ShowOrParseArgs">ShowOrParseArgs</a><ul class="subs"><li>= <a href="#v:ShowArgs">ShowArgs</a></li><li>| <a href="#v:ParseArgs">ParseArgs</a></li></ul></li><li class="src short"><a href="#v:usageDefault">usageDefault</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:usageAlternatives">usageAlternatives</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkCommandUI">mkCommandUI</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> flags -> (<a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags]) -> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags</li><li class="src short"><a href="#v:hiddenCommand">hiddenCommand</a> :: <a href="Distribution-Simple-Command.html#t:Command">Command</a> action -> <a href="Distribution-Simple-Command.html#t:Command">Command</a> action</li><li class="src short"><span class="keyword">data</span> <a href="#t:Command">Command</a> action</li><li class="src short"><a href="#v:commandAddAction">commandAddAction</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags -> (flags -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> action) -> <a href="Distribution-Simple-Command.html#t:Command">Command</a> action</li><li class="src short"><a href="#v:noExtraFlags">noExtraFlags</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><span class="keyword">data</span> <a href="#t:CommandType">CommandType</a><ul class="subs"><li>= <a href="#v:NormalCommand">NormalCommand</a></li><li>| <a href="#v:HiddenCommand">HiddenCommand</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:CommandSpec">CommandSpec</a> action = <a href="#v:CommandSpec">CommandSpec</a> (<a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags) (<a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags -> <a href="Distribution-Simple-Command.html#t:Command">Command</a> action) <a href="Distribution-Simple-Command.html#t:CommandType">CommandType</a></li><li class="src short"><a href="#v:commandFromSpec">commandFromSpec</a> :: <a href="Distribution-Simple-Command.html#t:CommandSpec">CommandSpec</a> a -> <a href="Distribution-Simple-Command.html#t:Command">Command</a> a</li><li class="src short"><a href="#v:commandsRun">commandsRun</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> a -> [<a href="Distribution-Simple-Command.html#t:Command">Command</a> action] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> (a, <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> action)</li><li class="src short"><span class="keyword">data</span> <a href="#t:OptionField">OptionField</a> a = <a href="#v:OptionField">OptionField</a> {<ul class="subs"><li><a href="#v:optionName">optionName</a> :: <a href="Distribution-Simple-Command.html#t:Name">Name</a></li><li><a href="#v:optionDescr">optionDescr</a> :: [<a href="Distribution-Simple-Command.html#t:OptDescr">OptDescr</a> a]</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:Name">Name</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:option">option</a> :: <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:LFlags">LFlags</a> -> <a href="Distribution-Simple-Command.html#t:Description">Description</a> -> get -> set -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> get set a -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> a</li><li class="src short"><a href="#v:multiOption">multiOption</a> :: <a href="Distribution-Simple-Command.html#t:Name">Name</a> -> get -> set -> [get -> set -> <a href="Distribution-Simple-Command.html#t:OptDescr">OptDescr</a> a] -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> a</li><li class="src short"><a href="#v:liftOption">liftOption</a> :: (b -> a) -> (a -> b -> b) -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> a -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> b</li><li class="src short"><a href="#v:viewAsFieldDescr">viewAsFieldDescr</a> :: <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> a -> <a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:OptDescr">OptDescr</a> a<ul class="subs"><li>= <a href="#v:ReqArg">ReqArg</a> <a href="Distribution-Simple-Command.html#t:Description">Description</a> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> (<a href="Distribution-ReadE.html#t:ReadE">ReadE</a> (a -> a)) (a -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])</li><li>| <a href="#v:OptArg">OptArg</a> <a href="Distribution-Simple-Command.html#t:Description">Description</a> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> (<a href="Distribution-ReadE.html#t:ReadE">ReadE</a> (a -> a)) (a -> a) (a -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])</li><li>| <a href="#v:ChoiceOpt">ChoiceOpt</a> [(<a href="Distribution-Simple-Command.html#t:Description">Description</a>, <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a>, a -> a, a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)]</li><li>| <a href="#v:BoolOpt">BoolOpt</a> <a href="Distribution-Simple-Command.html#t:Description">Description</a> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)</li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Description">Description</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:SFlags">SFlags</a> = [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a>]</li><li class="src short"><span class="keyword">type</span> <a href="#t:LFlags">LFlags</a> = [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><span class="keyword">type</span> <a href="#t:OptFlags">OptFlags</a> = (<a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a>, <a href="Distribution-Simple-Command.html#t:LFlags">LFlags</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:ArgPlaceHolder">ArgPlaceHolder</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:MkOptDescr">MkOptDescr</a> get set a = <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:LFlags">LFlags</a> -> <a href="Distribution-Simple-Command.html#t:Description">Description</a> -> get -> set -> <a href="Distribution-Simple-Command.html#t:OptDescr">OptDescr</a> a</li><li class="src short"><a href="#v:reqArg">reqArg</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b => <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> b -> (b -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a</li><li class="src short"><a href="#v:reqArg-39-">reqArg'</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b => <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> b) -> (b -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a</li><li class="src short"><a href="#v:optArg">optArg</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b => <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> b -> b -> (b -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a</li><li class="src short"><a href="#v:optArg-39-">optArg'</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b => <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> b) -> (b -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a</li><li class="src short"><a href="#v:noArg">noArg</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> b => b -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a</li><li class="src short"><a href="#v:boolOpt">boolOpt</a> :: (b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> b) -> <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a</li><li class="src short"><a href="#v:boolOpt-39-">boolOpt'</a> :: (b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> b) -> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> -> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a</li><li class="src short"><a href="#v:choiceOpt">choiceOpt</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> b => [(b, <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a>, <a href="Distribution-Simple-Command.html#t:Description">Description</a>)] -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a</li><li class="src short"><a href="#v:choiceOptFromEnum">choiceOptFromEnum</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> b, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> b, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> b, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> b) => <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a</li></ul></div><div id="interface"><h1 id="g:1">Command interface</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CommandUI" class="def">CommandUI</a> flags <a href="#t:CommandUI" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CommandUI" class="def">CommandUI</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:commandName" class="def">commandName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The name of the command as it would be entered on the command line.+ For example <code>"build"</code>.</p></div></li><li><dfn class="src"><a id="v:commandSynopsis" class="def">commandSynopsis</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A short, one line description of the command to use in help texts.</p></div></li><li><dfn class="src"><a id="v:commandUsage" class="def">commandUsage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A function that maps a program name to a usage summary for this+ command.</p></div></li><li><dfn class="src"><a id="v:commandDescription" class="def">commandDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</dfn><div class="doc"><p>Additional explanation of the command to use in help texts.</p></div></li><li><dfn class="src"><a id="v:commandNotes" class="def">commandNotes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</dfn><div class="doc"><p>Post-Usage notes and examples in help texts</p></div></li><li><dfn class="src"><a id="v:commandDefaultFlags" class="def">commandDefaultFlags</a> :: flags</dfn><div class="doc"><p>Initial / empty flags</p></div></li><li><dfn class="src"><a id="v:commandOptions" class="def">commandOptions</a> :: <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags]</dfn><div class="doc"><p>All the Option fields for this command</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:commandShowOptions" class="def">commandShowOptions</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags -> flags -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:commandShowOptions" class="selflink">#</a></p><div class="doc"><p>Show flags in the standard long option command line format</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CommandParse" class="def">CommandParse</a> flags <a href="#t:CommandParse" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CommandHelp" class="def">CommandHelp</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CommandList" class="def">CommandList</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CommandErrors" class="def">CommandErrors</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CommandReadyToGo" class="def">CommandReadyToGo</a> flags</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:CommandParse" class="caption collapser" onclick="toggleSection('i:CommandParse')">Instances</p><div id="section.i:CommandParse" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CommandParse:Functor:1" class="instance expander" onclick="toggleSection('i:id:CommandParse:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a></span> <a href="#t:CommandParse" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CommandParse:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> a -> <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> b -> <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:commandParseArgs" class="def">commandParseArgs</a> <a href="#v:commandParseArgs" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc"><p>Is the command a global or subcommand?</p></td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> (flags -> flags, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Parse a bunch of command line arguments</p></div></div><div class="top"><p class="src"><a id="v:getNormalCommandDescriptions" class="def">getNormalCommandDescriptions</a> :: [<a href="Distribution-Simple-Command.html#t:Command">Command</a> action] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] <a href="#v:getNormalCommandDescriptions" class="selflink">#</a></p><div class="doc"><p>Helper function for creating globalCommand description</p></div></div><div class="top"><p class="src"><a id="v:helpCommandUI" class="def">helpCommandUI</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> () <a href="#v:helpCommandUI" class="selflink">#</a></p></div><h2 id="g:2">Constructing commands</h2><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ShowOrParseArgs" class="def">ShowOrParseArgs</a> <a href="#t:ShowOrParseArgs" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ShowArgs" class="def">ShowArgs</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ParseArgs" class="def">ParseArgs</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:usageDefault" class="def">usageDefault</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:usageDefault" class="selflink">#</a></p><div class="doc"><p>Default "usage" documentation text for commands.</p></div></div><div class="top"><p class="src"><a id="v:usageAlternatives" class="def">usageAlternatives</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:usageAlternatives" class="selflink">#</a></p><div class="doc"><p>Create "usage" documentation from a list of parameter+ configurations.</p></div></div><div class="top"><p class="src"><a id="v:mkCommandUI" class="def">mkCommandUI</a> <a href="#v:mkCommandUI" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>name</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>synopsis</p></td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc"><p>usage alternatives</p></td></tr><tr><td class="src">-> flags</td><td class="doc"><p>initial/empty flags</p></td></tr><tr><td class="src">-> (<a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags])</td><td class="doc"><p>options</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Make a Command from standard <code>GetOpt</code> options.</p></div></div><div class="top"><p class="src"><a id="v:hiddenCommand" class="def">hiddenCommand</a> :: <a href="Distribution-Simple-Command.html#t:Command">Command</a> action -> <a href="Distribution-Simple-Command.html#t:Command">Command</a> action <a href="#v:hiddenCommand" class="selflink">#</a></p><div class="doc"><p>Mark command as hidden. Hidden commands don't show up in the 'progname+ help' or 'progname --help' output.</p></div></div><h2 id="g:3">Associating actions with commands</h2><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Command" class="def">Command</a> action <a href="#t:Command" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:commandAddAction" class="def">commandAddAction</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags -> (flags -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> action) -> <a href="Distribution-Simple-Command.html#t:Command">Command</a> action <a href="#v:commandAddAction" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:noExtraFlags" class="def">noExtraFlags</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:noExtraFlags" class="selflink">#</a></p><div class="doc"><p>Utility function, many commands do not accept additional flags. This+ action fails with a helpful error message if the user supplies any extra.</p></div></div><h2 id="g:4">Building lists of commands</h2><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CommandType" class="def">CommandType</a> <a href="#t:CommandType" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NormalCommand" class="def">NormalCommand</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:HiddenCommand" class="def">HiddenCommand</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CommandSpec" class="def">CommandSpec</a> action <a href="#t:CommandSpec" class="selflink">#</a></p><div class="doc"><p>wraps a <code>CommandUI</code> together with a function that turns it into a <code>Command</code>.+ By hiding the type of flags for the UI allows construction of a list of all UIs at the+ top level of the program. That list can then be used for generation of manual page+ as well as for executing the selected command.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CommandSpec" class="def">CommandSpec</a> (<a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags) (<a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> flags -> <a href="Distribution-Simple-Command.html#t:Command">Command</a> action) <a href="Distribution-Simple-Command.html#t:CommandType">CommandType</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:commandFromSpec" class="def">commandFromSpec</a> :: <a href="Distribution-Simple-Command.html#t:CommandSpec">CommandSpec</a> a -> <a href="Distribution-Simple-Command.html#t:Command">Command</a> a <a href="#v:commandFromSpec" class="selflink">#</a></p></div><h2 id="g:5">Running commands</h2><div class="top"><p class="src"><a id="v:commandsRun" class="def">commandsRun</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> a -> [<a href="Distribution-Simple-Command.html#t:Command">Command</a> action] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> (a, <a href="Distribution-Simple-Command.html#t:CommandParse">CommandParse</a> action) <a href="#v:commandsRun" class="selflink">#</a></p></div><h1 id="g:6">Option Fields</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:OptionField" class="def">OptionField</a> a <a href="#t:OptionField" class="selflink">#</a></p><div class="doc"><p>We usually have a data type for storing configuration values, where+ every field stores a configuration option, and the user sets+ the value either via command line flags or a configuration file.+ An individual OptionField models such a field, and we usually+ build a list of options associated to a configuration data type.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:OptionField" class="def">OptionField</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:optionName" class="def">optionName</a> :: <a href="Distribution-Simple-Command.html#t:Name">Name</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:optionDescr" class="def">optionDescr</a> :: [<a href="Distribution-Simple-Command.html#t:OptDescr">OptDescr</a> a]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Name" class="def">Name</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#t:Name" class="selflink">#</a></p></div><h2 id="g:7">Constructing Option Fields</h2><div class="top"><p class="src"><a id="v:option" class="def">option</a> :: <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:LFlags">LFlags</a> -> <a href="Distribution-Simple-Command.html#t:Description">Description</a> -> get -> set -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> get set a -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> a <a href="#v:option" class="selflink">#</a></p><div class="doc"><p>Create an option taking a single OptDescr.+ No explicit Name is given for the Option, the name is the first LFlag given.</p></div></div><div class="top"><p class="src"><a id="v:multiOption" class="def">multiOption</a> <a href="#v:multiOption" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-Command.html#t:Name">Name</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> get</td><td class="doc empty"> </td></tr><tr><td class="src">-> set</td><td class="doc empty"> </td></tr><tr><td class="src">-> [get -> set -> <a href="Distribution-Simple-Command.html#t:OptDescr">OptDescr</a> a]</td><td class="doc"><p>MkOptDescr constructors partially+ applied to flags and description.</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Create an option taking several OptDescrs.+ You will have to give the flags and description individually to the+ OptDescr constructor.</p></div></div><h2 id="g:8">Liftings & Projections</h2><div class="top"><p class="src"><a id="v:liftOption" class="def">liftOption</a> :: (b -> a) -> (a -> b -> b) -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> a -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> b <a href="#v:liftOption" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:viewAsFieldDescr" class="def">viewAsFieldDescr</a> :: <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> a -> <a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">FieldDescr</a> a <a href="#v:viewAsFieldDescr" class="selflink">#</a></p><div class="doc"><p>to view as a FieldDescr, we sort the list of interfaces (Req > Bool >+ Choice > Opt) and consider only the first one.</p></div></div><h1 id="g:9">Option Descriptions</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:OptDescr" class="def">OptDescr</a> a <a href="#t:OptDescr" class="selflink">#</a></p><div class="doc"><p>An OptionField takes one or more OptDescrs, describing the command line+ interface for the field.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ReqArg" class="def">ReqArg</a> <a href="Distribution-Simple-Command.html#t:Description">Description</a> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> (<a href="Distribution-ReadE.html#t:ReadE">ReadE</a> (a -> a)) (a -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OptArg" class="def">OptArg</a> <a href="Distribution-Simple-Command.html#t:Description">Description</a> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> (<a href="Distribution-ReadE.html#t:ReadE">ReadE</a> (a -> a)) (a -> a) (a -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ChoiceOpt" class="def">ChoiceOpt</a> [(<a href="Distribution-Simple-Command.html#t:Description">Description</a>, <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a>, a -> a, a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)]</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:BoolOpt" class="def">BoolOpt</a> <a href="Distribution-Simple-Command.html#t:Description">Description</a> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Description" class="def">Description</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#t:Description" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:SFlags" class="def">SFlags</a> = [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a>] <a href="#t:SFlags" class="selflink">#</a></p><div class="doc"><p>Short command line option strings</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:LFlags" class="def">LFlags</a> = [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#t:LFlags" class="selflink">#</a></p><div class="doc"><p>Long command line option strings</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:OptFlags" class="def">OptFlags</a> = (<a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a>, <a href="Distribution-Simple-Command.html#t:LFlags">LFlags</a>) <a href="#t:OptFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ArgPlaceHolder" class="def">ArgPlaceHolder</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#t:ArgPlaceHolder" class="selflink">#</a></p></div><h2 id="g:10">OptDescr <code>smart</code> constructors</h2><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:MkOptDescr" class="def">MkOptDescr</a> get set a = <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:LFlags">LFlags</a> -> <a href="Distribution-Simple-Command.html#t:Description">Description</a> -> get -> set -> <a href="Distribution-Simple-Command.html#t:OptDescr">OptDescr</a> a <a href="#t:MkOptDescr" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:reqArg" class="def">reqArg</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b => <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> b -> (b -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a <a href="#v:reqArg" class="selflink">#</a></p><div class="doc"><p>Create a string-valued command line interface.</p></div></div><div class="top"><p class="src"><a id="v:reqArg-39-" class="def">reqArg'</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b => <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> b) -> (b -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a <a href="#v:reqArg-39-" class="selflink">#</a></p><div class="doc"><p>(String -> a) variant of "reqArg"</p></div></div><div class="top"><p class="src"><a id="v:optArg" class="def">optArg</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b => <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> b -> b -> (b -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a <a href="#v:optArg" class="selflink">#</a></p><div class="doc"><p>Create a string-valued command line interface with a default value.</p></div></div><div class="top"><p class="src"><a id="v:optArg-39-" class="def">optArg'</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> b => <a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">ArgPlaceHolder</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> b) -> (b -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a <a href="#v:optArg-39-" class="selflink">#</a></p><div class="doc"><p>(String -> a) variant of "optArg"</p></div></div><div class="top"><p class="src"><a id="v:noArg" class="def">noArg</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> b => b -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a <a href="#v:noArg" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:boolOpt" class="def">boolOpt</a> :: (b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> b) -> <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a <a href="#v:boolOpt" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:boolOpt-39-" class="def">boolOpt'</a> :: (b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> b) -> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> -> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a <a href="#v:boolOpt-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:choiceOpt" class="def">choiceOpt</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> b => [(b, <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a>, <a href="Distribution-Simple-Command.html#t:Description">Description</a>)] -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a <a href="#v:choiceOpt" class="selflink">#</a></p><div class="doc"><p>create a Choice option</p></div></div><div class="top"><p class="src"><a id="v:choiceOptFromEnum" class="def">choiceOptFromEnum</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> b, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> b, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> b, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> b) => <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> b) (b -> a -> a) a <a href="#v:choiceOptFromEnum" class="selflink">#</a></p><div class="doc"><p>create a Choice option out of an enumeration type.+ As long flags, the Show output is used. As short flags, the first character+ which does not conflict with a previous one is used.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Compiler.html view
@@ -0,0 +1,42 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Compiler</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Compiler</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Haskell implementations</a></li><li><a href="#g:2">Support for package databases</a></li><li><a href="#g:3">Support for optimisation levels</a></li><li><a href="#g:4">Support for debug info levels</a></li><li><a href="#g:5">Support for language extensions</a></li><li><a href="#g:6">Support for profiling detail levels</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This should be a much more sophisticated abstraction than it is. Currently+ it's just a bit of data about the compiler, like it's flavour and name and+ version. The reason it's just data is because currently it has to be in+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a></code> so it can be saved along with the <code>LocalBuildInfo</code>. The+ only interesting bit of info it contains is a mapping between language+ extensions and compiler command line flags. This module also defines a+ <code><a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></code> type which is used to refer to package databases. Most compilers+ only know about a single global package collection but GHC has a global and+ per-user one and it lets you create arbitrary other package databases. We do+ not yet fully support this latter feature.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short">module <a href="Distribution-Compiler.html">Distribution.Compiler</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Compiler">Compiler</a> = <a href="#v:Compiler">Compiler</a> {<ul class="subs"><li><a href="#v:compilerId">compilerId</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></li><li><a href="#v:compilerAbiTag">compilerAbiTag</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></li><li><a href="#v:compilerCompat">compilerCompat</a> :: [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>]</li><li><a href="#v:compilerLanguages">compilerLanguages</a> :: [(<a href="Language-Haskell-Extension.html#t:Language">Language</a>, <a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>)]</li><li><a href="#v:compilerExtensions">compilerExtensions</a> :: [(<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>, <a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>)]</li><li><a href="#v:compilerProperties">compilerProperties</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul>}</li><li class="src short"><a href="#v:showCompilerId">showCompilerId</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:showCompilerIdWithAbi">showCompilerIdWithAbi</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:compilerFlavor">compilerFlavor</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></li><li class="src short"><a href="#v:compilerVersion">compilerVersion</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:compilerCompatFlavor">compilerCompatFlavor</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:compilerCompatVersion">compilerCompatVersion</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:compilerInfo">compilerInfo</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:PackageDB">PackageDB</a><ul class="subs"><li>= <a href="#v:GlobalPackageDB">GlobalPackageDB</a></li><li>| <a href="#v:UserPackageDB">UserPackageDB</a></li><li>| <a href="#v:SpecificPackageDB">SpecificPackageDB</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:PackageDBStack">PackageDBStack</a> = [<a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>]</li><li class="src short"><a href="#v:registrationPackageDB">registrationPackageDB</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></li><li class="src short"><a href="#v:absolutePackageDBPaths">absolutePackageDBPaths</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></li><li class="src short"><a href="#v:absolutePackageDBPath">absolutePackageDBPath</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:OptimisationLevel">OptimisationLevel</a><ul class="subs"><li>= <a href="#v:NoOptimisation">NoOptimisation</a></li><li>| <a href="#v:NormalOptimisation">NormalOptimisation</a></li><li>| <a href="#v:MaximumOptimisation">MaximumOptimisation</a></li></ul></li><li class="src short"><a href="#v:flagToOptimisationLevel">flagToOptimisationLevel</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:DebugInfoLevel">DebugInfoLevel</a><ul class="subs"><li>= <a href="#v:NoDebugInfo">NoDebugInfo</a></li><li>| <a href="#v:MinimalDebugInfo">MinimalDebugInfo</a></li><li>| <a href="#v:NormalDebugInfo">NormalDebugInfo</a></li><li>| <a href="#v:MaximalDebugInfo">MaximalDebugInfo</a></li></ul></li><li class="src short"><a href="#v:flagToDebugInfoLevel">flagToDebugInfoLevel</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:Flag">Flag</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:languageToFlags">languageToFlags</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> [<a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>]</li><li class="src short"><a href="#v:unsupportedLanguages">unsupportedLanguages</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] -> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</li><li class="src short"><a href="#v:extensionsToFlags">extensionsToFlags</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] -> [<a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>]</li><li class="src short"><a href="#v:unsupportedExtensions">unsupportedExtensions</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li class="src short"><a href="#v:parmakeSupported">parmakeSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:reexportedModulesSupported">reexportedModulesSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:renamingPackageFlagsSupported">renamingPackageFlagsSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:unifiedIPIDRequired">unifiedIPIDRequired</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:packageKeySupported">packageKeySupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:unitIdSupported">unitIdSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:coverageSupported">coverageSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:profilingSupported">profilingSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:backpackSupported">backpackSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:libraryDynDirSupported">libraryDynDirSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ProfDetailLevel">ProfDetailLevel</a><ul class="subs"><li>= <a href="#v:ProfDetailNone">ProfDetailNone</a></li><li>| <a href="#v:ProfDetailDefault">ProfDetailDefault</a></li><li>| <a href="#v:ProfDetailExportedFunctions">ProfDetailExportedFunctions</a></li><li>| <a href="#v:ProfDetailToplevelFunctions">ProfDetailToplevelFunctions</a></li><li>| <a href="#v:ProfDetailAllFunctions">ProfDetailAllFunctions</a></li><li>| <a href="#v:ProfDetailOther">ProfDetailOther</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:knownProfDetailLevels">knownProfDetailLevels</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>], <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>)]</li><li class="src short"><a href="#v:flagToProfDetailLevel">flagToProfDetailLevel</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></li><li class="src short"><a href="#v:showProfDetailLevel">showProfDetailLevel</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1 id="g:1">Haskell implementations</h1><div class="top"><p class="src">module <a href="Distribution-Compiler.html">Distribution.Compiler</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Compiler" class="def">Compiler</a> <a href="#t:Compiler" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Compiler" class="def">Compiler</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:compilerId" class="def">compilerId</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></dfn><div class="doc"><p>Compiler flavour and version.</p></div></li><li><dfn class="src"><a id="v:compilerAbiTag" class="def">compilerAbiTag</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></dfn><div class="doc"><p>Tag for distinguishing incompatible ABI's on the same+ architecture/os.</p></div></li><li><dfn class="src"><a id="v:compilerCompat" class="def">compilerCompat</a> :: [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>]</dfn><div class="doc"><p>Other implementations that this compiler claims to be+ compatible with.</p></div></li><li><dfn class="src"><a id="v:compilerLanguages" class="def">compilerLanguages</a> :: [(<a href="Language-Haskell-Extension.html#t:Language">Language</a>, <a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>)]</dfn><div class="doc"><p>Supported language standards.</p></div></li><li><dfn class="src"><a id="v:compilerExtensions" class="def">compilerExtensions</a> :: [(<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>, <a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>)]</dfn><div class="doc"><p>Supported extensions.</p></div></li><li><dfn class="src"><a id="v:compilerProperties" class="def">compilerProperties</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A key-value map for properties not covered by the above fields.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Compiler" class="caption collapser" onclick="toggleSection('i:Compiler')">Instances</p><div id="section.i:Compiler" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Compiler:Eq:1" class="instance expander" onclick="toggleSection('i:id:Compiler:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></span> <a href="#t:Compiler" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Compiler:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Compiler:Read:2" class="instance expander" onclick="toggleSection('i:id:Compiler:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></span> <a href="#t:Compiler" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Compiler:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Compiler:Show:3" class="instance expander" onclick="toggleSection('i:id:Compiler:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></span> <a href="#t:Compiler" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Compiler:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Compiler:Generic:4" class="instance expander" onclick="toggleSection('i:id:Compiler:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></span> <a href="#t:Compiler" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Compiler:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> x -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Compiler:Binary:5" class="instance expander" onclick="toggleSection('i:id:Compiler:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></span> <a href="#t:Compiler" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Compiler:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Compiler:Rep:6" class="instance expander" onclick="toggleSection('i:id:Compiler:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></span> <a href="#t:Compiler" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Compiler:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Compiler" "Distribution.Simple.Compiler" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Compiler" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerAbiTag") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerCompat") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerLanguages") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Language-Haskell-Extension.html#t:Language">Language</a>, <a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerExtensions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>, <a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compilerProperties") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:showCompilerId" class="def">showCompilerId</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showCompilerId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showCompilerIdWithAbi" class="def">showCompilerIdWithAbi</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showCompilerIdWithAbi" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:compilerFlavor" class="def">compilerFlavor</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:compilerFlavor" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:compilerVersion" class="def">compilerVersion</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:compilerVersion" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:compilerCompatFlavor" class="def">compilerCompatFlavor</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:compilerCompatFlavor" class="selflink">#</a></p><div class="doc"><p>Is this compiler compatible with the compiler flavour we're interested in?</p><p>For example this checks if the compiler is actually GHC or is another+ compiler that claims to be compatible with some version of GHC, e.g. GHCJS.</p><pre>if compilerCompatFlavor GHC compiler then ... else ...</pre></div></div><div class="top"><p class="src"><a id="v:compilerCompatVersion" class="def">compilerCompatVersion</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:compilerCompatVersion" class="selflink">#</a></p><div class="doc"><p>Is this compiler compatible with the compiler flavour we're interested in,+ and if so what version does it claim to be compatible with.</p><p>For example this checks if the compiler is actually GHC-7.x or is another+ compiler that claims to be compatible with some GHC-7.x version.</p><pre>case compilerCompatVersion GHC compiler of+ Just (Version (7:_)) -> ...+ _ -> ...</pre></div></div><div class="top"><p class="src"><a id="v:compilerInfo" class="def">compilerInfo</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> <a href="#v:compilerInfo" class="selflink">#</a></p></div><h1 id="g:2">Support for package databases</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PackageDB" class="def">PackageDB</a> <a href="#t:PackageDB" class="selflink">#</a></p><div class="doc"><p>Some compilers have a notion of a database of available packages.+ For some there is just one global db of packages, other compilers+ support a per-user or an arbitrary db specified at some location in+ the file system. This can be used to build isloated environments of+ packages, for example to build a collection of related packages+ without installing them globally.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GlobalPackageDB" class="def">GlobalPackageDB</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:UserPackageDB" class="def">UserPackageDB</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:SpecificPackageDB" class="def">SpecificPackageDB</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:PackageDB" class="caption collapser" onclick="toggleSection('i:PackageDB')">Instances</p><div id="section.i:PackageDB" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDB:Eq:1" class="instance expander" onclick="toggleSection('i:id:PackageDB:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></span> <a href="#t:PackageDB" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDB:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDB:Ord:2" class="instance expander" onclick="toggleSection('i:id:PackageDB:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></span> <a href="#t:PackageDB" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDB:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDB:Read:3" class="instance expander" onclick="toggleSection('i:id:PackageDB:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></span> <a href="#t:PackageDB" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDB:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDB:Show:4" class="instance expander" onclick="toggleSection('i:id:PackageDB:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></span> <a href="#t:PackageDB" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDB:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDB:Generic:5" class="instance expander" onclick="toggleSection('i:id:PackageDB:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></span> <a href="#t:PackageDB" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDB:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> x -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDB:Binary:6" class="instance expander" onclick="toggleSection('i:id:PackageDB:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></span> <a href="#t:PackageDB" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDB:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDB:Rep:7" class="instance expander" onclick="toggleSection('i:id:PackageDB:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></span> <a href="#t:PackageDB" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDB:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "PackageDB" "Distribution.Simple.Compiler" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GlobalPackageDB" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UserPackageDB" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SpecificPackageDB" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:PackageDBStack" class="def">PackageDBStack</a> = [<a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] <a href="#t:PackageDBStack" class="selflink">#</a></p><div class="doc"><p>We typically get packages from several databases, and stack them+ together. This type lets us be explicit about that stacking. For example+ typical stacks include:</p><pre>[GlobalPackageDB]+[GlobalPackageDB, UserPackageDB]+[GlobalPackageDB, SpecificPackageDB "package.conf.inplace"]</pre><p>Note that the <code><a href="Distribution-Simple-Compiler.html#v:GlobalPackageDB">GlobalPackageDB</a></code> is invariably at the bottom since it+ contains the rts, base and other special compiler-specific packages.</p><p>We are not restricted to using just the above combinations. In particular+ we can use several custom package dbs and the user package db together.</p><p>When it comes to writing, the top most (last) package is used.</p></div></div><div class="top"><p class="src"><a id="v:registrationPackageDB" class="def">registrationPackageDB</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> <a href="#v:registrationPackageDB" class="selflink">#</a></p><div class="doc"><p>Return the package that we should register into. This is the package db at+ the top of the stack.</p></div></div><div class="top"><p class="src"><a id="v:absolutePackageDBPaths" class="def">absolutePackageDBPaths</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> <a href="#v:absolutePackageDBPaths" class="selflink">#</a></p><div class="doc"><p>Make package paths absolute</p></div></div><div class="top"><p class="src"><a id="v:absolutePackageDBPath" class="def">absolutePackageDBPath</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> <a href="#v:absolutePackageDBPath" class="selflink">#</a></p></div><h1 id="g:3">Support for optimisation levels</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:OptimisationLevel" class="def">OptimisationLevel</a> <a href="#t:OptimisationLevel" class="selflink">#</a></p><div class="doc"><p>Some compilers support optimising. Some have different levels.+ For compilers that do not the level is just capped to the level+ they do support.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoOptimisation" class="def">NoOptimisation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:NormalOptimisation" class="def">NormalOptimisation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:MaximumOptimisation" class="def">MaximumOptimisation</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:OptimisationLevel" class="caption collapser" onclick="toggleSection('i:OptimisationLevel')">Instances</p><div id="section.i:OptimisationLevel" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptimisationLevel:Bounded:1" class="instance expander" onclick="toggleSection('i:id:OptimisationLevel:Bounded:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></span> <a href="#t:OptimisationLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptimisationLevel:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptimisationLevel:Enum:2" class="instance expander" onclick="toggleSection('i:id:OptimisationLevel:Enum:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></span> <a href="#t:OptimisationLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptimisationLevel:Enum:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> [<a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> [<a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> [<a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> [<a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptimisationLevel:Eq:3" class="instance expander" onclick="toggleSection('i:id:OptimisationLevel:Eq:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></span> <a href="#t:OptimisationLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptimisationLevel:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptimisationLevel:Read:4" class="instance expander" onclick="toggleSection('i:id:OptimisationLevel:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></span> <a href="#t:OptimisationLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptimisationLevel:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptimisationLevel:Show:5" class="instance expander" onclick="toggleSection('i:id:OptimisationLevel:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></span> <a href="#t:OptimisationLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptimisationLevel:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptimisationLevel:Generic:6" class="instance expander" onclick="toggleSection('i:id:OptimisationLevel:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></span> <a href="#t:OptimisationLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptimisationLevel:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> x -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptimisationLevel:Binary:7" class="instance expander" onclick="toggleSection('i:id:OptimisationLevel:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></span> <a href="#t:OptimisationLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptimisationLevel:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptimisationLevel:Rep:8" class="instance expander" onclick="toggleSection('i:id:OptimisationLevel:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></span> <a href="#t:OptimisationLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptimisationLevel:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "OptimisationLevel" "Distribution.Simple.Compiler" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NoOptimisation" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NormalOptimisation" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MaximumOptimisation" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:flagToOptimisationLevel" class="def">flagToOptimisationLevel</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a> <a href="#v:flagToOptimisationLevel" class="selflink">#</a></p></div><h1 id="g:4">Support for debug info levels</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DebugInfoLevel" class="def">DebugInfoLevel</a> <a href="#t:DebugInfoLevel" class="selflink">#</a></p><div class="doc"><p>Some compilers support emitting debug info. Some have different+ levels. For compilers that do not the level is just capped to the+ level they do support.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoDebugInfo" class="def">NoDebugInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:MinimalDebugInfo" class="def">MinimalDebugInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:NormalDebugInfo" class="def">NormalDebugInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:MaximalDebugInfo" class="def">MaximalDebugInfo</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:DebugInfoLevel" class="caption collapser" onclick="toggleSection('i:DebugInfoLevel')">Instances</p><div id="section.i:DebugInfoLevel" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DebugInfoLevel:Bounded:1" class="instance expander" onclick="toggleSection('i:id:DebugInfoLevel:Bounded:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></span> <a href="#t:DebugInfoLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DebugInfoLevel:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DebugInfoLevel:Enum:2" class="instance expander" onclick="toggleSection('i:id:DebugInfoLevel:Enum:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></span> <a href="#t:DebugInfoLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DebugInfoLevel:Enum:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> [<a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> [<a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> [<a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> [<a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DebugInfoLevel:Eq:3" class="instance expander" onclick="toggleSection('i:id:DebugInfoLevel:Eq:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></span> <a href="#t:DebugInfoLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DebugInfoLevel:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DebugInfoLevel:Read:4" class="instance expander" onclick="toggleSection('i:id:DebugInfoLevel:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></span> <a href="#t:DebugInfoLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DebugInfoLevel:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DebugInfoLevel:Show:5" class="instance expander" onclick="toggleSection('i:id:DebugInfoLevel:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></span> <a href="#t:DebugInfoLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DebugInfoLevel:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DebugInfoLevel:Generic:6" class="instance expander" onclick="toggleSection('i:id:DebugInfoLevel:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></span> <a href="#t:DebugInfoLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DebugInfoLevel:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> x -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DebugInfoLevel:Binary:7" class="instance expander" onclick="toggleSection('i:id:DebugInfoLevel:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></span> <a href="#t:DebugInfoLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DebugInfoLevel:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DebugInfoLevel:Rep:8" class="instance expander" onclick="toggleSection('i:id:DebugInfoLevel:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></span> <a href="#t:DebugInfoLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DebugInfoLevel:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "DebugInfoLevel" "Distribution.Simple.Compiler" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NoDebugInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MinimalDebugInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NormalDebugInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MaximalDebugInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:flagToDebugInfoLevel" class="def">flagToDebugInfoLevel</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a> <a href="#v:flagToDebugInfoLevel" class="selflink">#</a></p></div><h1 id="g:5">Support for language extensions</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Flag" class="def">Flag</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#t:Flag" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:languageToFlags" class="def">languageToFlags</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> [<a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>] <a href="#v:languageToFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:unsupportedLanguages" class="def">unsupportedLanguages</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] -> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] <a href="#v:unsupportedLanguages" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extensionsToFlags" class="def">extensionsToFlags</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] -> [<a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>] <a href="#v:extensionsToFlags" class="selflink">#</a></p><div class="doc"><p>For the given compiler, return the flags for the supported extensions.</p></div></div><div class="top"><p class="src"><a id="v:unsupportedExtensions" class="def">unsupportedExtensions</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] <a href="#v:unsupportedExtensions" class="selflink">#</a></p><div class="doc"><p>For the given compiler, return the extensions it does not support.</p></div></div><div class="top"><p class="src"><a id="v:parmakeSupported" class="def">parmakeSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:parmakeSupported" class="selflink">#</a></p><div class="doc"><p>Does this compiler support parallel --make mode?</p></div></div><div class="top"><p class="src"><a id="v:reexportedModulesSupported" class="def">reexportedModulesSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:reexportedModulesSupported" class="selflink">#</a></p><div class="doc"><p>Does this compiler support reexported-modules?</p></div></div><div class="top"><p class="src"><a id="v:renamingPackageFlagsSupported" class="def">renamingPackageFlagsSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:renamingPackageFlagsSupported" class="selflink">#</a></p><div class="doc"><p>Does this compiler support thinning/renaming on package flags?</p></div></div><div class="top"><p class="src"><a id="v:unifiedIPIDRequired" class="def">unifiedIPIDRequired</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:unifiedIPIDRequired" class="selflink">#</a></p><div class="doc"><p>Does this compiler have unified IPIDs (so no package keys)</p></div></div><div class="top"><p class="src"><a id="v:packageKeySupported" class="def">packageKeySupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:packageKeySupported" class="selflink">#</a></p><div class="doc"><p>Does this compiler support package keys?</p></div></div><div class="top"><p class="src"><a id="v:unitIdSupported" class="def">unitIdSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:unitIdSupported" class="selflink">#</a></p><div class="doc"><p>Does this compiler support unit IDs?</p></div></div><div class="top"><p class="src"><a id="v:coverageSupported" class="def">coverageSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:coverageSupported" class="selflink">#</a></p><div class="doc"><p>Does this compiler support Haskell program coverage?</p></div></div><div class="top"><p class="src"><a id="v:profilingSupported" class="def">profilingSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:profilingSupported" class="selflink">#</a></p><div class="doc"><p>Does this compiler support profiling?</p></div></div><div class="top"><p class="src"><a id="v:backpackSupported" class="def">backpackSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:backpackSupported" class="selflink">#</a></p><div class="doc"><p>Does this compiler support Backpack?</p></div></div><div class="top"><p class="src"><a id="v:libraryDynDirSupported" class="def">libraryDynDirSupported</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:libraryDynDirSupported" class="selflink">#</a></p><div class="doc"><p>Does this compiler support a package database entry with:+ "dynamic-library-dirs"?</p></div></div><h1 id="g:6">Support for profiling detail levels</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProfDetailLevel" class="def">ProfDetailLevel</a> <a href="#t:ProfDetailLevel" class="selflink">#</a></p><div class="doc"><p>Some compilers (notably GHC) support profiling and can instrument+ programs so the system can account costs to different functions. There are+ different levels of detail that can be used for this accounting.+ For compilers that do not support this notion or the particular detail+ levels, this is either ignored or just capped to some similar level+ they do support.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ProfDetailNone" class="def">ProfDetailNone</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ProfDetailDefault" class="def">ProfDetailDefault</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ProfDetailExportedFunctions" class="def">ProfDetailExportedFunctions</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ProfDetailToplevelFunctions" class="def">ProfDetailToplevelFunctions</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ProfDetailAllFunctions" class="def">ProfDetailAllFunctions</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ProfDetailOther" class="def">ProfDetailOther</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ProfDetailLevel" class="caption collapser" onclick="toggleSection('i:ProfDetailLevel')">Instances</p><div id="section.i:ProfDetailLevel" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProfDetailLevel:Eq:1" class="instance expander" onclick="toggleSection('i:id:ProfDetailLevel:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></span> <a href="#t:ProfDetailLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProfDetailLevel:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProfDetailLevel:Read:2" class="instance expander" onclick="toggleSection('i:id:ProfDetailLevel:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></span> <a href="#t:ProfDetailLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProfDetailLevel:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProfDetailLevel:Show:3" class="instance expander" onclick="toggleSection('i:id:ProfDetailLevel:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></span> <a href="#t:ProfDetailLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProfDetailLevel:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProfDetailLevel:Generic:4" class="instance expander" onclick="toggleSection('i:id:ProfDetailLevel:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></span> <a href="#t:ProfDetailLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProfDetailLevel:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> x -> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProfDetailLevel:Binary:5" class="instance expander" onclick="toggleSection('i:id:ProfDetailLevel:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></span> <a href="#t:ProfDetailLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProfDetailLevel:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProfDetailLevel:Rep:6" class="instance expander" onclick="toggleSection('i:id:ProfDetailLevel:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></span> <a href="#t:ProfDetailLevel" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProfDetailLevel:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ProfDetailLevel" "Distribution.Simple.Compiler" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProfDetailNone" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProfDetailDefault" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProfDetailExportedFunctions" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProfDetailToplevelFunctions" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProfDetailAllFunctions" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProfDetailOther" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownProfDetailLevels" class="def">knownProfDetailLevels</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>], <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>)] <a href="#v:knownProfDetailLevels" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:flagToProfDetailLevel" class="def">flagToProfDetailLevel</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> <a href="#v:flagToProfDetailLevel" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showProfDetailLevel" class="def">showProfDetailLevel</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showProfDetailLevel" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Configure.html view
@@ -0,0 +1,97 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Configure</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Configure</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This deals with the <em>configure</em> phase. It provides the <code><a href="Distribution-Simple-Configure.html#v:configure">configure</a></code> action+ which is given the package description and configure flags. It then tries+ to: configure the compiler; resolves any conditionals in the package+ description; resolve the package dependencies; check if all the extensions+ used by this package are supported by the compiler; check that all the build+ tools are available (including version checks if appropriate); checks for+ any required <code>pkg-config</code> packages (updating the <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> with the+ results)</p><p>Then based on all this it saves the info in the <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> and writes+ it out to the <code>dist/setup-config</code> file. It also displays various details to+ the user, the amount of information displayed depending on the verbosity+ level.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:configure">configure</a> :: (<a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>, <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a>) -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></li><li class="src short"><a href="#v:writePersistBuildConfig">writePersistBuildConfig</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:getConfigStateFile">getConfigStateFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></li><li class="src short"><a href="#v:getPersistBuildConfig">getPersistBuildConfig</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></li><li class="src short"><a href="#v:checkPersistBuildConfigOutdated">checkPersistBuildConfigOutdated</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:tryGetPersistBuildConfig">tryGetPersistBuildConfig</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>)</li><li class="src short"><a href="#v:maybeGetPersistBuildConfig">maybeGetPersistBuildConfig</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>)</li><li class="src short"><a href="#v:findDistPref">findDistPref</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:findDistPrefOrDefault">findDistPrefOrDefault</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:getInternalPackages">getInternalPackages</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)</li><li class="src short"><a href="#v:computeComponentId">computeComponentId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> ([<a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>], <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a>) -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li class="src short"><a href="#v:computeCompatPackageKey">computeCompatPackageKey</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:computeCompatPackageName">computeCompatPackageName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></li><li class="src short"><a href="#v:localBuildInfoFile">localBuildInfoFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:getInstalledPackages">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:getInstalledPackagesMonitorFiles">getInstalledPackagesMonitorFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li class="src short"><a href="#v:getPackageDBContents">getPackageDBContents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:configCompiler">configCompiler</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:configCompilerAux">configCompilerAux</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:configCompilerEx">configCompilerEx</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:configCompilerAuxEx">configCompilerAuxEx</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:computeEffectiveProfiling">computeEffectiveProfiling</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)</li><li class="src short"><a href="#v:ccLdOptionsBuildInfo">ccLdOptionsBuildInfo</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li><li class="src short"><a href="#v:checkForeignDeps">checkForeignDeps</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:interpretPackageDbFlags">interpretPackageDbFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ConfigStateFileError">ConfigStateFileError</a><ul class="subs"><li>= <a href="#v:ConfigStateFileNoHeader">ConfigStateFileNoHeader</a></li><li>| <a href="#v:ConfigStateFileBadHeader">ConfigStateFileBadHeader</a></li><li>| <a href="#v:ConfigStateFileNoParse">ConfigStateFileNoParse</a></li><li>| <a href="#v:ConfigStateFileMissing">ConfigStateFileMissing</a></li><li>| <a href="#v:ConfigStateFileBadVersion">ConfigStateFileBadVersion</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>)</li></ul></li><li class="src short"><a href="#v:tryGetConfigStateFile">tryGetConfigStateFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>)</li><li class="src short"><a href="#v:platformDefines">platformDefines</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:relaxPackageDeps">relaxPackageDeps</a> :: (<a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>) -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:configure" class="def">configure</a> :: (<a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>, <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a>) -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> <a href="#v:configure" class="selflink">#</a></p><div class="doc"><p>Perform the "<code>./setup configure</code>" action.+ Returns the <code>.setup-config</code> file.</p></div></div><div class="top"><p class="src"><a id="v:writePersistBuildConfig" class="def">writePersistBuildConfig</a> <a href="#v:writePersistBuildConfig" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>The <code>dist</code> directory path.</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc"><p>The <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> to write.</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>After running configure, output the <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> to the+ <code><a href="Distribution-Simple-Configure.html#v:localBuildInfoFile">localBuildInfoFile</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:getConfigStateFile" class="def">getConfigStateFile</a> <a href="#v:getConfigStateFile" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>The file path of the <code>setup-config</code> file.</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Read the <code><a href="Distribution-Simple-Configure.html#v:localBuildInfoFile">localBuildInfoFile</a></code>. Throw an exception if the file is+ missing, if the file cannot be read, or if the file was created by an older+ version of Cabal.</p></div></div><div class="top"><p class="src"><a id="v:getPersistBuildConfig" class="def">getPersistBuildConfig</a> <a href="#v:getPersistBuildConfig" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>The <code>dist</code> directory path.</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Read the <code><a href="Distribution-Simple-Configure.html#v:localBuildInfoFile">localBuildInfoFile</a></code>. Throw an exception if the file is+ missing, if the file cannot be read, or if the file was created by an older+ version of Cabal.</p></div></div><div class="top"><p class="src"><a id="v:checkPersistBuildConfigOutdated" class="def">checkPersistBuildConfigOutdated</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:checkPersistBuildConfigOutdated" class="selflink">#</a></p><div class="doc"><p>Check that localBuildInfoFile is up-to-date with respect to the+ .cabal file.</p></div></div><div class="top"><p class="src"><a id="v:tryGetPersistBuildConfig" class="def">tryGetPersistBuildConfig</a> <a href="#v:tryGetPersistBuildConfig" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>The <code>dist</code> directory path.</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Try to read the <code><a href="Distribution-Simple-Configure.html#v:localBuildInfoFile">localBuildInfoFile</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:maybeGetPersistBuildConfig" class="def">maybeGetPersistBuildConfig</a> <a href="#v:maybeGetPersistBuildConfig" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>The <code>dist</code> directory path.</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Try to read the <code><a href="Distribution-Simple-Configure.html#v:localBuildInfoFile">localBuildInfoFile</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:findDistPref" class="def">findDistPref</a> <a href="#v:findDistPref" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>default "dist" prefix</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>override "dist" prefix</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Return the "dist/" prefix, or the default prefix. The prefix is taken+ from (in order of highest to lowest preference) the override prefix, the+ "CABAL_BUILDDIR" environment variable, or the default prefix.</p></div></div><div class="top"><p class="src"><a id="v:findDistPrefOrDefault" class="def">findDistPrefOrDefault</a> <a href="#v:findDistPrefOrDefault" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>override "dist" prefix</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Return the "dist/" prefix, or the default prefix. The prefix is taken+ from (in order of highest to lowest preference) the override prefix, the+ "CABAL_BUILDDIR" environment variable, or <code><a href="Distribution-Simple-Setup.html#v:defaultDistPref">defaultDistPref</a></code> is used. Call+ this function to resolve a <code>*DistPref</code> flag whenever it is not known to be+ set. (The <code>*DistPref</code> flags are always set to a definite value before+ invoking <code>UserHooks</code>.)</p></div></div><div class="top"><p class="src"><a id="v:getInternalPackages" class="def">getInternalPackages</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>) <a href="#v:getInternalPackages" class="selflink">#</a></p><div class="doc"><p>Create a PackageIndex that makes *any libraries that might be*+ defined internally to this package look like installed packages, in+ case an executable should refer to any of them as dependencies.</p><p>It must be *any libraries that might be* defined rather than the+ actual definitions, because these depend on conditionals in the .cabal+ file, and we haven't resolved them yet. finalizePD+ does the resolution of conditionals, and it takes internalPackageSet+ as part of its input.</p></div></div><div class="top"><p class="src"><a id="v:computeComponentId" class="def">computeComponentId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> ([<a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>], <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a>) -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:computeComponentId" class="selflink">#</a></p><div class="doc"><p>This method computes a default, "good enough" <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code>+ for a package. The intent is that cabal-install (or the user) will+ specify a more detailed IPID via the <code>--ipid</code> flag if necessary.</p></div></div><div class="top"><p class="src"><a id="v:computeCompatPackageKey" class="def">computeCompatPackageKey</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:computeCompatPackageKey" class="selflink">#</a></p><div class="doc"><p>In GHC 8.0, the string we pass to GHC to use for symbol+ names for a package can be an arbitrary, IPID-compatible string.+ However, prior to GHC 8.0 there are some restrictions on what+ format this string can be (due to how ghc-pkg parsed the key):</p><ol><li>In GHC 7.10, the string had either be of the form+ foo_ABCD, where foo is a non-semantic alphanumeric/hyphenated+ prefix and ABCD is two base-64 encoded 64-bit integers,+ or a GHC 7.8 style identifier.</li><li>In GHC 7.8, the string had to be a valid package identifier+ like foo-0.1.</li></ol><p>So, the problem is that Cabal, in general, has a general IPID,+ but needs to figure out a package key / package ID that the+ old ghc-pkg will actually accept. But there's an EVERY WORSE+ problem: if ghc-pkg decides to parse an identifier foo-0.1-xxx+ as if it were a package identifier, which means it will SILENTLY+ DROP the "xxx" (because it's a tag, and Cabal does not allow tags.)+ So we must CONNIVE to ensure that we don't pick something that+ looks like this.</p><p>So this function attempts to define a mapping into the old formats.</p><p>The mapping for GHC 7.8 and before:</p><ul><li>We use the *compatibility* package name and version. For+ public libraries this is just the package identifier; for+ internal libraries, it's something like "z-pkgname-z-libname-0.1".+ See <code><a href="Distribution-Simple-Configure.html#v:computeCompatPackageName">computeCompatPackageName</a></code> for more details.</li></ul><p>The mapping for GHC 7.10:</p><ul><li><p>For CLibName:+ If the IPID is of the form foo-0.1-ABCDEF where foo_ABCDEF would+ validly parse as a package key, we pass <a href="ABCDEF.html">ABCDEF</a>. (NB: not+ all hashes parse this way, because GHC 7.10 mandated that+ these hashes be two base-62 encoded 64 bit integers),+ but hashes that Cabal generated using <code><a href="Distribution-Simple-Configure.html#v:computeComponentId">computeComponentId</a></code>+ are guaranteed to have this form.</p><p>If it is not of this form, we rehash the IPID into the+correct form and pass that.</p></li><li>For sub-components, we rehash the IPID into the correct format+ and pass that.</li></ul></div></div><div class="top"><p class="src"><a id="v:computeCompatPackageName" class="def">computeCompatPackageName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:computeCompatPackageName" class="selflink">#</a></p><div class="doc"><p>Computes the package name for a library. If this is the public+ library, it will just be the original package name; otherwise,+ it will be a munged package name recording the original package+ name as well as the name of the internal library.</p><p>A lot of tooling in the Haskell ecosystem assumes that if something+ is installed to the package database with the package name <code>foo</code>,+ then it actually is an entry for the (only public) library in package+ <code>foo</code>. With internal packages, this is not necessarily true:+ a public library as well as arbitrarily many internal libraries may+ come from the same package. To prevent tools from getting confused+ in this case, the package name of these internal libraries is munged+ so that they do not conflict the public library proper. A particular+ case where this matters is ghc-pkg: if we don't munge the package+ name, the inplace registration will OVERRIDE a different internal+ library.</p><p>We munge into a reserved namespace, "z-", and encode both the+ component name and the package name of an internal library using the+ following format:</p><p>compat-pkg-name ::= "z-" package-name "-z-" library-name</p><p>where package-name and library-name have "-" ( "z" + ) "-"+ segments encoded by adding an extra "z".</p><p>When we have the public library, the compat-pkg-name is just the+ package-name, no surprises there!</p></div></div><div class="top"><p class="src"><a id="v:localBuildInfoFile" class="def">localBuildInfoFile</a> <a href="#v:localBuildInfoFile" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>The <code>dist</code> directory path.</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Get the path of <code>dist/setup-config</code>.</p></div></div><div class="top"><p class="src"><a id="v:getInstalledPackages" class="def">getInstalledPackages</a> <a href="#v:getInstalledPackages" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></td><td class="doc"><p>The stack of package databases.</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>List all installed packages in the given package databases.</p></div></div><div class="top"><p class="src"><a id="v:getInstalledPackagesMonitorFiles" class="def">getInstalledPackagesMonitorFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] <a href="#v:getInstalledPackagesMonitorFiles" class="selflink">#</a></p><div class="doc"><p>A set of files (or directories) that can be monitored to detect when+ there might have been a change in the installed packages.</p></div></div><div class="top"><p class="src"><a id="v:getPackageDBContents" class="def">getPackageDBContents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:getPackageDBContents" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Configure.html#v:getInstalledPackages">getInstalledPackages</a></code>, but for a single package DB.</p><p>NB: Why isn't this always a fall through to <code><a href="Distribution-Simple-Configure.html#v:getInstalledPackages">getInstalledPackages</a></code>?+ That is because <code><a href="Distribution-Simple-Configure.html#v:getInstalledPackages">getInstalledPackages</a></code> performs some sanity checks+ on the package database stack in question. However, when sandboxes+ are involved these sanity checks are not desirable.</p></div></div><div class="top"><p class="src"><a id="v:configCompiler" class="def">configCompiler</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configCompiler" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: <code><a href="Distribution-Simple-Configure.html#v:configCompiler">configCompiler</a></code> is deprecated. Use <code><a href="Distribution-Simple-Configure.html#v:configCompilerEx">configCompilerEx</a></code> instead.</p></div></div></div><div class="top"><p class="src"><a id="v:configCompilerAux" class="def">configCompilerAux</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configCompilerAux" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: configCompilerAux is deprecated. Use <code><a href="Distribution-Simple-Configure.html#v:configCompilerAuxEx">configCompilerAuxEx</a></code> instead.</p></div></div></div><div class="top"><p class="src"><a id="v:configCompilerEx" class="def">configCompilerEx</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configCompilerEx" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:configCompilerAuxEx" class="def">configCompilerAuxEx</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configCompilerAuxEx" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:computeEffectiveProfiling" class="def">computeEffectiveProfiling</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) <a href="#v:computeEffectiveProfiling" class="selflink">#</a></p><div class="doc"><p>Compute the effective value of the profiling flags+ <code>--enable-library-profiling</code> and <code>--enable-executable-profiling</code>+ from the specified <code><a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></code>. This may be useful for+ external Cabal tools which need to interact with Setup in+ a backwards-compatible way: the most predictable mechanism+ for enabling profiling across many legacy versions is to+ NOT use <code>--enable-profiling</code> and use those two flags instead.</p><p>Note that <code>--enable-executable-profiling</code> also affects profiling+ of benchmarks and (non-detailed) test suites.</p></div></div><div class="top"><p class="src"><a id="v:ccLdOptionsBuildInfo" class="def">ccLdOptionsBuildInfo</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:ccLdOptionsBuildInfo" class="selflink">#</a></p><div class="doc"><p>Makes a <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> from C compiler and linker flags.</p><p>This can be used with the output from configuration programs like pkg-config+ and similar package-specific programs like mysql-config, freealut-config etc.+ For example:</p><pre>ccflags <- getDbProgramOutput verbosity prog progdb ["--cflags"]+ldflags <- getDbProgramOutput verbosity prog progdb ["--libs"]+return (ccldOptionsBuildInfo (words ccflags) (words ldflags))</pre></div></div><div class="top"><p class="src"><a id="v:checkForeignDeps" class="def">checkForeignDeps</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:checkForeignDeps" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:interpretPackageDbFlags" class="def">interpretPackageDbFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> <a href="#v:interpretPackageDbFlags" class="selflink">#</a></p><div class="doc"><p>The user interface specifies the package dbs to use with a combination of+ <code>--global</code>, <code>--user</code> and <code>--package-db=global|user|clear|$file</code>.+ This function combines the global/user flag and interprets the package-db+ flag into a single package db stack.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ConfigStateFileError" class="def">ConfigStateFileError</a> <a href="#t:ConfigStateFileError" class="selflink">#</a></p><div class="doc"><p>The errors that can be thrown when reading the <code>setup-config</code> file.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ConfigStateFileNoHeader" class="def">ConfigStateFileNoHeader</a></td><td class="doc"><p>No header found.</p></td></tr><tr><td class="src"><a id="v:ConfigStateFileBadHeader" class="def">ConfigStateFileBadHeader</a></td><td class="doc"><p>Incorrect header.</p></td></tr><tr><td class="src"><a id="v:ConfigStateFileNoParse" class="def">ConfigStateFileNoParse</a></td><td class="doc"><p>Cannot parse file contents.</p></td></tr><tr><td class="src"><a id="v:ConfigStateFileMissing" class="def">ConfigStateFileMissing</a></td><td class="doc"><p>No file!</p></td></tr><tr><td class="src"><a id="v:ConfigStateFileBadVersion" class="def">ConfigStateFileBadVersion</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>)</td><td class="doc"><p>Mismatched version.</p></td></tr></table></div><div class="subs instances"><p id="control.i:ConfigStateFileError" class="caption collapser" onclick="toggleSection('i:ConfigStateFileError')">Instances</p><div id="section.i:ConfigStateFileError" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigStateFileError:Show:1" class="instance expander" onclick="toggleSection('i:id:ConfigStateFileError:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a></span> <a href="#t:ConfigStateFileError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigStateFileError:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigStateFileError:Exception:2" class="instance expander" onclick="toggleSection('i:id:ConfigStateFileError:Exception:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:Exception">Exception</a> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a></span> <a href="#t:ConfigStateFileError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigStateFileError:Exception:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:tryGetConfigStateFile" class="def">tryGetConfigStateFile</a> <a href="#v:tryGetConfigStateFile" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>The file path of the <code>setup-config</code> file.</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">ConfigStateFileError</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Read the <code><a href="Distribution-Simple-Configure.html#v:localBuildInfoFile">localBuildInfoFile</a></code>, returning either an error or the local build+ info.</p></div></div><div class="top"><p class="src"><a id="v:platformDefines" class="def">platformDefines</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:platformDefines" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:relaxPackageDeps" class="def">relaxPackageDeps</a> :: (<a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>) -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:relaxPackageDeps" class="selflink">#</a></p><div class="doc"><p>Relax the dependencies of this package if needed.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Doctest.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Doctest</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Moritz Angermann 2017</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Doctest</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module deals with the <code>doctest</code> command.</p></div></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:doctest" class="def">doctest</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:doctest" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-GHC.html view
@@ -0,0 +1,29 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.GHC</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2007</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.GHC</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Constructing GHC environment files</a></li><li><a href="#g:2">Version-specific implementation quirks</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is a fairly large module. It contains most of the GHC-specific code for+ configuring, building and installing packages. It also exports a function+ for finding out what packages are already installed. Configuring involves+ finding the <code>ghc</code> and <code>ghc-pkg</code> programs, finding what language extensions+ this version of ghc supports and returning a <code><a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></code> value.</p><p><code><a href="Distribution-Simple-GHC.html#v:getInstalledPackages">getInstalledPackages</a></code> involves calling the <code>ghc-pkg</code> program to find out+ what packages are installed.</p><p>Building is somewhat complex as there is quite a bit of information to take+ into account. We have to build libs and programs, possibly for profiling and+ shared libs. We have to support building libraries that will be usable by+ GHCi and also ghc's <code>-split-objs</code> feature. We have to compile any C files+ using ghc. Linking, especially for <code>split-objs</code> is remarkably complex,+ partly because there tend to be 1,000's of <code>.o</code> files and this can often be+ more than we can pass to the <code>ld</code> or <code>ar</code> programs in one go.</p><p>Installing for libs and exes involves finding the right files and copying+ them to the right places. One of the more tricky things about this module is+ remembering the layout of files in the build directory (which is not+ explicitly documented) and thus what search dirs are used for various kinds+ of files.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:getGhcInfo">getGhcInfo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li class="src short"><a href="#v:configure">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:getInstalledPackages">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:getInstalledPackagesMonitorFiles">getInstalledPackagesMonitorFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li class="src short"><a href="#v:getPackageDBContents">getPackageDBContents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:buildLib">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:buildFLib">buildFLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:buildExe">buildExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:replLib">replLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:replFLib">replFLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:replExe">replExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:startInterpreter">startInterpreter</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installLib">installLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installFLib">installFLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installExe">installExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:libAbiHash">libAbiHash</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:hcPkgInfo">hcPkgInfo</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a></li><li class="src short"><a href="#v:registerPackage">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:componentGhcOptions">componentGhcOptions</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></li><li class="src short"><a href="#v:componentCcGhcOptions">componentCcGhcOptions</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></li><li class="src short"><a href="#v:getLibDir">getLibDir</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:isDynamic">isDynamic</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:getGlobalPackageDB">getGlobalPackageDB</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:pkgRoot">pkgRoot</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcEnvironmentFileEntry">GhcEnvironmentFileEntry</a><ul class="subs"><li>= <a href="#v:GhcEnvFileComment">GhcEnvFileComment</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li>| <a href="#v:GhcEnvFilePackageId">GhcEnvFilePackageId</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li>| <a href="#v:GhcEnvFilePackageDb">GhcEnvFilePackageDb</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></li><li>| <a href="#v:GhcEnvFileClearPackageDbStack">GhcEnvFileClearPackageDbStack</a></li></ul></li><li class="src short"><a href="#v:simpleGhcEnvironmentFile">simpleGhcEnvironmentFile</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> [<a href="Distribution-Simple-GHC.html#t:GhcEnvironmentFileEntry">GhcEnvironmentFileEntry</a>]</li><li class="src short"><a href="#v:writeGhcEnvironmentFile">writeGhcEnvironmentFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> [<a href="Distribution-Simple-GHC.html#t:GhcEnvironmentFileEntry">GhcEnvironmentFileEntry</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:getImplInfo">getImplInfo</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-GHC.html#t:GhcImplInfo">GhcImplInfo</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcImplInfo">GhcImplInfo</a> = <a href="#v:GhcImplInfo">GhcImplInfo</a> {<ul class="subs"><li><a href="#v:supportsHaskell2010">supportsHaskell2010</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:reportsNoExt">reportsNoExt</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:alwaysNondecIndent">alwaysNondecIndent</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:flagGhciScript">flagGhciScript</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:flagProfAuto">flagProfAuto</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:flagPackageConf">flagPackageConf</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:flagDebugInfo">flagDebugInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:supportsPkgEnvFiles">supportsPkgEnvFiles</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:flagWarnMissingHomeModules">flagWarnMissingHomeModules</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:getGhcInfo" class="def">getGhcInfo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] <a href="#v:getGhcInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:configure" class="def">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configure" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInstalledPackages" class="def">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:getInstalledPackages" class="selflink">#</a></p><div class="doc"><p>Given a package DB stack, return all installed packages.</p></div></div><div class="top"><p class="src"><a id="v:getInstalledPackagesMonitorFiles" class="def">getInstalledPackagesMonitorFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] <a href="#v:getInstalledPackagesMonitorFiles" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getPackageDBContents" class="def">getPackageDBContents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:getPackageDBContents" class="selflink">#</a></p><div class="doc"><p>Given a single package DB, return all installed packages.</p></div></div><div class="top"><p class="src"><a id="v:buildLib" class="def">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildLib" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildFLib" class="def">buildFLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildFLib" class="selflink">#</a></p><div class="doc"><p>Build a foreign library</p></div></div><div class="top"><p class="src"><a id="v:buildExe" class="def">buildExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildExe" class="selflink">#</a></p><div class="doc"><p>Build an executable with GHC.</p></div></div><div class="top"><p class="src"><a id="v:replLib" class="def">replLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:replLib" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:replFLib" class="def">replFLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:replFLib" class="selflink">#</a></p><div class="doc"><p>Build a foreign library</p></div></div><div class="top"><p class="src"><a id="v:replExe" class="def">replExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:replExe" class="selflink">#</a></p><div class="doc"><p>Build an executable with GHC.</p></div></div><div class="top"><p class="src"><a id="v:startInterpreter" class="def">startInterpreter</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:startInterpreter" class="selflink">#</a></p><div class="doc"><p>Start a REPL without loading any source files.</p></div></div><div class="top"><p class="src"><a id="v:installLib" class="def">installLib</a> <a href="#v:installLib" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>install location</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>install location for dynamic libraries</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Build location</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-Library.html#t:Library">Library</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Install for ghc, .hi, .a and, if --with-ghci given, .o</p></div></div><div class="top"><p class="src"><a id="v:installFLib" class="def">installFLib</a> <a href="#v:installFLib" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>install location</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Build location</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Install foreign library for GHC.</p></div></div><div class="top"><p class="src"><a id="v:installExe" class="def">installExe</a> <a href="#v:installExe" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Where to copy the files to</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Build location</p></td></tr><tr><td class="src">-> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</td><td class="doc"><p>Executable (prefix,suffix)</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Install executables for GHC.</p></div></div><div class="top"><p class="src"><a id="v:libAbiHash" class="def">libAbiHash</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:libAbiHash" class="selflink">#</a></p><div class="doc"><p>Extracts a String representing a hash of the ABI of a built+ library. It can fail if the library has not yet been built.</p></div></div><div class="top"><p class="src"><a id="v:hcPkgInfo" class="def">hcPkgInfo</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> <a href="#v:hcPkgInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:registerPackage" class="def">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:registerPackage" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentGhcOptions" class="def">componentGhcOptions</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:componentGhcOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentCcGhcOptions" class="def">componentCcGhcOptions</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:componentCcGhcOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getLibDir" class="def">getLibDir</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:getLibDir" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isDynamic" class="def">isDynamic</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isDynamic" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getGlobalPackageDB" class="def">getGlobalPackageDB</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:getGlobalPackageDB" class="selflink">#</a></p><div class="doc"><p>Return the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></code> to the global GHC package database.</p></div></div><div class="top"><p class="src"><a id="v:pkgRoot" class="def">pkgRoot</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:pkgRoot" class="selflink">#</a></p></div><h1 id="g:1">Constructing GHC environment files</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcEnvironmentFileEntry" class="def">GhcEnvironmentFileEntry</a> <a href="#t:GhcEnvironmentFileEntry" class="selflink">#</a></p><div class="doc"><p>The kinds of entries we can stick in a <code>.ghc.environment</code> file.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GhcEnvFileComment" class="def">GhcEnvFileComment</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><pre>-- a comment</pre></td></tr><tr><td class="src"><a id="v:GhcEnvFilePackageId" class="def">GhcEnvFilePackageId</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></td><td class="doc"><pre>package-id foo-1.0-4fe301a...</pre></td></tr><tr><td class="src"><a id="v:GhcEnvFilePackageDb" class="def">GhcEnvFilePackageDb</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></td><td class="doc"><p><code>global-package-db</code>,+ <code>user-package-db</code> or+ <code>package-db blah<em>package.conf.d</em></code></p></td></tr><tr><td class="src"><a id="v:GhcEnvFileClearPackageDbStack" class="def">GhcEnvFileClearPackageDbStack</a></td><td class="doc"><pre>clear-package-db</pre></td></tr></table></div></div><div class="top"><p class="src"><a id="v:simpleGhcEnvironmentFile" class="def">simpleGhcEnvironmentFile</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> [<a href="Distribution-Simple-GHC.html#t:GhcEnvironmentFileEntry">GhcEnvironmentFileEntry</a>] <a href="#v:simpleGhcEnvironmentFile" class="selflink">#</a></p><div class="doc"><p>Make entries for a GHC environment file based on a <code><a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></code> and+ a bunch of package (unit) ids.</p><p>If you need to do anything more complicated then either use this as a basis+ and add more entries, or just make all the entries directly.</p></div></div><div class="top"><p class="src"><a id="v:writeGhcEnvironmentFile" class="def">writeGhcEnvironmentFile</a> <a href="#v:writeGhcEnvironmentFile" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>directory in which to put it</p></td></tr><tr><td class="src">-> <a href="Distribution-System.html#t:Platform">Platform</a></td><td class="doc"><p>the GHC target platform</p></td></tr><tr><td class="src">-> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>the GHC version</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-GHC.html#t:GhcEnvironmentFileEntry">GhcEnvironmentFileEntry</a>]</td><td class="doc"><p>the content</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Write a <code>.ghc.environment-$arch-$os-$ver</code> file in the given directory.</p><p>The <code><a href="Distribution-System.html#t:Platform">Platform</a></code> and GHC <code><a href="Distribution-Version.html#t:Version">Version</a></code> are needed as part of the file name.</p></div></div><h1 id="g:2">Version-specific implementation quirks</h1><div class="top"><p class="src"><a id="v:getImplInfo" class="def">getImplInfo</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-GHC.html#t:GhcImplInfo">GhcImplInfo</a> <a href="#v:getImplInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcImplInfo" class="def">GhcImplInfo</a> <a href="#t:GhcImplInfo" class="selflink">#</a></p><div class="doc"><p>Information about features and quirks of a GHC-based implementation.</p><p>Compiler flavors based on GHC behave similarly enough that some of+ the support code for them is shared. Every implementation has its+ own peculiarities, that may or may not be a direct result of the+ underlying GHC version. This record keeps track of these differences.</p><p>All shared code (i.e. everything not in the Distribution.Simple.FLAVOR+ module) should use implementation info rather than version numbers+ to test for supported features.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GhcImplInfo" class="def">GhcImplInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:supportsHaskell2010" class="def">supportsHaskell2010</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><ul><li>XHaskell2010 and -XHaskell98 flags</li></ul></div></li><li><dfn class="src"><a id="v:reportsNoExt" class="def">reportsNoExt</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><ul><li>-supported-languages gives Ext and NoExt</li></ul></div></li><li><dfn class="src"><a id="v:alwaysNondecIndent" class="def">alwaysNondecIndent</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>NondecreasingIndentation is always on</p></div></li><li><dfn class="src"><a id="v:flagGhciScript" class="def">flagGhciScript</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><ul><li>ghci-script flag supported</li></ul></div></li><li><dfn class="src"><a id="v:flagProfAuto" class="def">flagProfAuto</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>new style -fprof-auto* flags</p></div></li><li><dfn class="src"><a id="v:flagPackageConf" class="def">flagPackageConf</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>use package-conf instead of package-db</p></div></li><li><dfn class="src"><a id="v:flagDebugInfo" class="def">flagDebugInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><ul><li>g flag supported</li></ul></div></li><li><dfn class="src"><a id="v:supportsPkgEnvFiles" class="def">supportsPkgEnvFiles</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>picks up <code>.ghc.environment</code> files</p></div></li><li><dfn class="src"><a id="v:flagWarnMissingHomeModules" class="def">flagWarnMissingHomeModules</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><ul><li>Wmissing-home-modules is supported</li></ul></div></li></ul></div></td></tr></table></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-GHCJS.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.GHCJS</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.GHCJS</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:configure">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:getInstalledPackages">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:getPackageDBContents">getPackageDBContents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:buildLib">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:buildExe">buildExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:replLib">replLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:replExe">replExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:startInterpreter">startInterpreter</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installLib">installLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installExe">installExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:libAbiHash">libAbiHash</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:hcPkgInfo">hcPkgInfo</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a></li><li class="src short"><a href="#v:registerPackage">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:componentGhcOptions">componentGhcOptions</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></li><li class="src short"><a href="#v:getLibDir">getLibDir</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:isDynamic">isDynamic</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:getGlobalPackageDB">getGlobalPackageDB</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:runCmd">runCmd</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:configure" class="def">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configure" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInstalledPackages" class="def">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:getInstalledPackages" class="selflink">#</a></p><div class="doc"><p>Given a package DB stack, return all installed packages.</p></div></div><div class="top"><p class="src"><a id="v:getPackageDBContents" class="def">getPackageDBContents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:getPackageDBContents" class="selflink">#</a></p><div class="doc"><p>Given a single package DB, return all installed packages.</p></div></div><div class="top"><p class="src"><a id="v:buildLib" class="def">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildLib" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildExe" class="def">buildExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildExe" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:replLib" class="def">replLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:replLib" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:replExe" class="def">replExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:replExe" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:startInterpreter" class="def">startInterpreter</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:startInterpreter" class="selflink">#</a></p><div class="doc"><p>Start a REPL without loading any source files.</p></div></div><div class="top"><p class="src"><a id="v:installLib" class="def">installLib</a> <a href="#v:installLib" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>install location</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>install location for dynamic libraries</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Build location</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-Library.html#t:Library">Library</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Install for ghc, .hi, .a and, if --with-ghci given, .o</p></div></div><div class="top"><p class="src"><a id="v:installExe" class="def">installExe</a> <a href="#v:installExe" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Where to copy the files to</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Build location</p></td></tr><tr><td class="src">-> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</td><td class="doc"><p>Executable (prefix,suffix)</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:libAbiHash" class="def">libAbiHash</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:libAbiHash" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hcPkgInfo" class="def">hcPkgInfo</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> <a href="#v:hcPkgInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:registerPackage" class="def">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:registerPackage" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentGhcOptions" class="def">componentGhcOptions</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:componentGhcOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getLibDir" class="def">getLibDir</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:getLibDir" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isDynamic" class="def">isDynamic</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isDynamic" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getGlobalPackageDB" class="def">getGlobalPackageDB</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:getGlobalPackageDB" class="selflink">#</a></p><div class="doc"><p>Return the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></code> to the global GHC package database.</p></div></div><div class="top"><p class="src"><a id="v:runCmd" class="def">runCmd</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) <a href="#v:runCmd" class="selflink">#</a></p><div class="doc"><p>Get the JavaScript file name and command and arguments to run a+ program compiled by GHCJS+ the exe should be the base program name without exe extension</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Haddock.html view
@@ -0,0 +1,8 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Haddock</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Haddock</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module deals with the <code>haddock</code> and <code>hscolour</code> commands.+ It uses information about installed packages (from <code>ghc-pkg</code>) to find the+ locations of documentation for dependent packages, so it can create links.</p><p>The <code>hscolour</code> support allows generating HTML versions of the original+ source, with coloured syntax highlighting.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:haddock">haddock</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hscolour">hscolour</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:haddockPackagePaths">haddockPackagePaths</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)], <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:haddock" class="def">haddock</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:haddock" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hscolour" class="def">hscolour</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:hscolour" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haddockPackagePaths" class="def">haddockPackagePaths</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)], <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>) <a href="#v:haddockPackagePaths" class="selflink">#</a></p><div class="doc"><p>Given a list of <code><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></code>s, return a list of interfaces and+ HTML paths, and an optional warning for packages with missing documentation.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-HaskellSuite.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.HaskellSuite</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.HaskellSuite</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:configure" class="def">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configure" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hstoolVersion" class="def">hstoolVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>) <a href="#v:hstoolVersion" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:numericVersion" class="def">numericVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>) <a href="#v:numericVersion" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getCompilerVersion" class="def">getCompilerVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="Distribution-Version.html#t:Version">Version</a>) <a href="#v:getCompilerVersion" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getExtensions" class="def">getExtensions</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>, <a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>)] <a href="#v:getExtensions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getLanguages" class="def">getLanguages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="Language-Haskell-Extension.html#t:Language">Language</a>, <a href="Distribution-Simple-Compiler.html#t:Flag">Flag</a>)] <a href="#v:getLanguages" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInstalledPackages" class="def">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:getInstalledPackages" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildLib" class="def">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildLib" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:installLib" class="def">installLib</a> <a href="#v:installLib" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>install location</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>install location for dynamic libraries</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Build location</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-Library.html#t:Library">Library</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:registerPackage" class="def">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:registerPackage" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:initPackageDB" class="def">initPackageDB</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:initPackageDB" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:packageDbOpt" class="def">packageDbOpt</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:packageDbOpt" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Hpc.html view
@@ -0,0 +1,7 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Hpc</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Thomas Tuegel 2011</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Hpc</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides functions for locating various HPC-related paths and+ a function for adding the necessary options to a PackageDescription to+ build test suites with HPC enabled.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Way">Way</a><ul class="subs"><li>= <a href="#v:Vanilla">Vanilla</a></li><li>| <a href="#v:Prof">Prof</a></li><li>| <a href="#v:Dyn">Dyn</a></li></ul></li><li class="src short"><a href="#v:guessWay">guessWay</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></li><li class="src short"><a href="#v:htmlDir">htmlDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:mixDir">mixDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:tixDir">tixDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:tixFilePath">tixFilePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:markupPackage">markupPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:markupTest">markupTest</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Way" class="def">Way</a> <a href="#t:Way" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Vanilla" class="def">Vanilla</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Prof" class="def">Prof</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Dyn" class="def">Dyn</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Way" class="caption collapser" onclick="toggleSection('i:Way')">Instances</p><div id="section.i:Way" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Way:Bounded:1" class="instance expander" onclick="toggleSection('i:id:Way:Bounded:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></span> <a href="#t:Way" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Way:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Way:Enum:2" class="instance expander" onclick="toggleSection('i:id:Way:Enum:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></span> <a href="#t:Way" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Way:Enum:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> [<a href="Distribution-Simple-Hpc.html#t:Way">Way</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> [<a href="Distribution-Simple-Hpc.html#t:Way">Way</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> [<a href="Distribution-Simple-Hpc.html#t:Way">Way</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> [<a href="Distribution-Simple-Hpc.html#t:Way">Way</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Way:Eq:3" class="instance expander" onclick="toggleSection('i:id:Way:Eq:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></span> <a href="#t:Way" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Way:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Way:Read:4" class="instance expander" onclick="toggleSection('i:id:Way:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></span> <a href="#t:Way" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Way:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Hpc.html#t:Way">Way</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Hpc.html#t:Way">Way</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Way:Show:5" class="instance expander" onclick="toggleSection('i:id:Way:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></span> <a href="#t:Way" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Way:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Hpc.html#t:Way">Way</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:guessWay" class="def">guessWay</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a> <a href="#v:guessWay" class="selflink">#</a></p><div class="doc"><p>Attempt to guess the way the test suites in this package were compiled+ and linked with the library so the correct module interfaces are found.</p></div></div><div class="top"><p class="src"><a id="v:htmlDir" class="def">htmlDir</a> <a href="#v:htmlDir" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>"dist/" prefix</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Component name</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Path to test suite's HTML markup directory</p></td></tr></table></div></div><div class="top"><p class="src"><a id="v:mixDir" class="def">mixDir</a> <a href="#v:mixDir" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>"dist/" prefix</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Component name</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Directory containing test suite's .mix files</p></td></tr></table></div></div><div class="top"><p class="src"><a id="v:tixDir" class="def">tixDir</a> <a href="#v:tixDir" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>"dist/" prefix</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Component name</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Directory containing test suite's .tix files</p></td></tr></table></div></div><div class="top"><p class="src"><a id="v:tixFilePath" class="def">tixFilePath</a> <a href="#v:tixFilePath" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>"dist/" prefix</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Hpc.html#t:Way">Way</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Component name</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Path to test suite's .tix file</p></td></tr></table></div><div class="doc"><p>Path to the .tix file containing a test suite's sum statistics.</p></div></div><div class="top"><p class="src"><a id="v:markupPackage" class="def">markupPackage</a> <a href="#v:markupPackage" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>"dist/" prefix</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Library name</p></td></tr><tr><td class="src">-> [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>]</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Generate the HTML markup for all of a package's test suites.</p></div></div><div class="top"><p class="src"><a id="v:markupTest" class="def">markupTest</a> <a href="#v:markupTest" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>"dist/" prefix</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Library name</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Generate the HTML markup for a test suite.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Install.html view
@@ -0,0 +1,9 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Install</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Install</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is the entry point into installing a built package. Performs the+ "<code>./setup install</code>" and "<code>./setup copy</code>" actions. It moves files into+ place based on the prefix argument. It does the generic bits and then calls+ compiler-specific functions to do the rest.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:install">install</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:install" class="def">install</a> <a href="#v:install" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>information from the .cabal file</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc"><p>information from the configure step</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></td><td class="doc"><p>flags sent to copy or install</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Perform the "<code>./setup install</code>" and "<code>./setup copy</code>"+ actions. Move files into place based on the prefix argument.</p><p>This does NOT register libraries, you should call <code>register</code>+ to do that.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-InstallDirs.html view
@@ -0,0 +1,40 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.InstallDirs</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.InstallDirs</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This manages everything to do with where files get installed (though does+ not get involved with actually doing any installation). It provides an+ <code><a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a></code> type which is a set of directories for where to install+ things. It also handles the fact that we use templates in these install+ dirs. For example most install dirs are relative to some <code>$prefix</code> and by+ changing the prefix all other dirs still end up changed appropriately. So it+ provides a <code><a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></code> type and functions for substituting for these+ templates.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:InstallDirs">InstallDirs</a> dir = <a href="#v:InstallDirs">InstallDirs</a> {<ul class="subs"><li><a href="#v:prefix">prefix</a> :: dir</li><li><a href="#v:bindir">bindir</a> :: dir</li><li><a href="#v:libdir">libdir</a> :: dir</li><li><a href="#v:libsubdir">libsubdir</a> :: dir</li><li><a href="#v:dynlibdir">dynlibdir</a> :: dir</li><li><a href="#v:flibdir">flibdir</a> :: dir</li><li><a href="#v:libexecdir">libexecdir</a> :: dir</li><li><a href="#v:libexecsubdir">libexecsubdir</a> :: dir</li><li><a href="#v:includedir">includedir</a> :: dir</li><li><a href="#v:datadir">datadir</a> :: dir</li><li><a href="#v:datasubdir">datasubdir</a> :: dir</li><li><a href="#v:docdir">docdir</a> :: dir</li><li><a href="#v:mandir">mandir</a> :: dir</li><li><a href="#v:htmldir">htmldir</a> :: dir</li><li><a href="#v:haddockdir">haddockdir</a> :: dir</li><li><a href="#v:sysconfdir">sysconfdir</a> :: dir</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:InstallDirTemplates">InstallDirTemplates</a> = <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li class="src short"><a href="#v:defaultInstallDirs">defaultInstallDirs</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a></li><li class="src short"><a href="#v:defaultInstallDirs-39-">defaultInstallDirs'</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a></li><li class="src short"><a href="#v:combineInstallDirs">combineInstallDirs</a> :: (a -> b -> c) -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> a -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> b -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> c</li><li class="src short"><a href="#v:absoluteInstallDirs">absoluteInstallDirs</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:CopyDest">CopyDest</a><ul class="subs"><li>= <a href="#v:NoCopyDest">NoCopyDest</a></li><li>| <a href="#v:CopyTo">CopyTo</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul></li><li class="src short"><a href="#v:prefixRelativeInstallDirs">prefixRelativeInstallDirs</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:substituteInstallDirTemplates">substituteInstallDirTemplates</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:PathTemplate">PathTemplate</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:PathTemplateVariable">PathTemplateVariable</a><ul class="subs"><li>= <a href="#v:PrefixVar">PrefixVar</a></li><li>| <a href="#v:BindirVar">BindirVar</a></li><li>| <a href="#v:LibdirVar">LibdirVar</a></li><li>| <a href="#v:LibsubdirVar">LibsubdirVar</a></li><li>| <a href="#v:DynlibdirVar">DynlibdirVar</a></li><li>| <a href="#v:DatadirVar">DatadirVar</a></li><li>| <a href="#v:DatasubdirVar">DatasubdirVar</a></li><li>| <a href="#v:DocdirVar">DocdirVar</a></li><li>| <a href="#v:HtmldirVar">HtmldirVar</a></li><li>| <a href="#v:PkgNameVar">PkgNameVar</a></li><li>| <a href="#v:PkgVerVar">PkgVerVar</a></li><li>| <a href="#v:PkgIdVar">PkgIdVar</a></li><li>| <a href="#v:LibNameVar">LibNameVar</a></li><li>| <a href="#v:CompilerVar">CompilerVar</a></li><li>| <a href="#v:OSVar">OSVar</a></li><li>| <a href="#v:ArchVar">ArchVar</a></li><li>| <a href="#v:AbiVar">AbiVar</a></li><li>| <a href="#v:AbiTagVar">AbiTagVar</a></li><li>| <a href="#v:ExecutableNameVar">ExecutableNameVar</a></li><li>| <a href="#v:TestSuiteNameVar">TestSuiteNameVar</a></li><li>| <a href="#v:TestSuiteResultVar">TestSuiteResultVar</a></li><li>| <a href="#v:BenchmarkNameVar">BenchmarkNameVar</a></li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:PathTemplateEnv">PathTemplateEnv</a> = [(<a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a>, <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)]</li><li class="src short"><a href="#v:toPathTemplate">toPathTemplate</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li class="src short"><a href="#v:fromPathTemplate">fromPathTemplate</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:combinePathTemplate">combinePathTemplate</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li class="src short"><a href="#v:substPathTemplate">substPathTemplate</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li class="src short"><a href="#v:initialPathTemplateEnv">initialPathTemplateEnv</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a></li><li class="src short"><a href="#v:platformTemplateEnv">platformTemplateEnv</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a></li><li class="src short"><a href="#v:compilerTemplateEnv">compilerTemplateEnv</a> :: <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a></li><li class="src short"><a href="#v:packageTemplateEnv">packageTemplateEnv</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a></li><li class="src short"><a href="#v:abiTemplateEnv">abiTemplateEnv</a> :: <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a></li><li class="src short"><a href="#v:installDirsTemplateEnv">installDirsTemplateEnv</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:InstallDirs" class="def">InstallDirs</a> dir <a href="#t:InstallDirs" class="selflink">#</a></p><div class="doc"><p>The directories where we will install files for packages.</p><p>We have several different directories for different types of files since+ many systems have conventions whereby different types of files in a package+ are installed in different directories. This is particularly the case on+ Unix style systems.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:InstallDirs" class="def">InstallDirs</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:prefix" class="def">prefix</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:bindir" class="def">bindir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:libdir" class="def">libdir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:libsubdir" class="def">libsubdir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:dynlibdir" class="def">dynlibdir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:flibdir" class="def">flibdir</a> :: dir</dfn><div class="doc"><p>foreign libraries</p></div></li><li><dfn class="src"><a id="v:libexecdir" class="def">libexecdir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:libexecsubdir" class="def">libexecsubdir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:includedir" class="def">includedir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:datadir" class="def">datadir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:datasubdir" class="def">datasubdir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:docdir" class="def">docdir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:mandir" class="def">mandir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:htmldir" class="def">htmldir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockdir" class="def">haddockdir</a> :: dir</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sysconfdir" class="def">sysconfdir</a> :: dir</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:InstallDirs" class="caption collapser" onclick="toggleSection('i:InstallDirs')">Instances</p><div id="section.i:InstallDirs" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallDirs:Functor:1" class="instance expander" onclick="toggleSection('i:id:InstallDirs:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a></span> <a href="#t:InstallDirs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallDirs:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> a -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> b -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallDirs:Eq:2" class="instance expander" onclick="toggleSection('i:id:InstallDirs:Eq:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> dir => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:InstallDirs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallDirs:Eq:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallDirs:Read:3" class="instance expander" onclick="toggleSection('i:id:InstallDirs:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> dir => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:InstallDirs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallDirs:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir) <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir) <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallDirs:Show:4" class="instance expander" onclick="toggleSection('i:id:InstallDirs:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> dir => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:InstallDirs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallDirs:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallDirs:Generic:5" class="instance expander" onclick="toggleSection('i:id:InstallDirs:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:InstallDirs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallDirs:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir) x -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallDirs:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:InstallDirs:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> dir => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:InstallDirs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallDirs:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir) -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallDirs:Monoid:7" class="instance expander" onclick="toggleSection('i:id:InstallDirs:Monoid:7')"></span> (<a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> dir, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> dir) => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:InstallDirs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallDirs:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir] -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallDirs:Binary:8" class="instance expander" onclick="toggleSection('i:id:InstallDirs:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> dir => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:InstallDirs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallDirs:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallDirs:Rep:9" class="instance expander" onclick="toggleSection('i:id:InstallDirs:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir)</span> <a href="#t:InstallDirs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallDirs:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> dir) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "InstallDirs" "Distribution.Simple.InstallDirs" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "InstallDirs" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "prefix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "bindir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libsubdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "dynlibdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flibdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libexecdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libexecsubdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "includedir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "datadir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "datasubdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "docdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "mandir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "htmldir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sysconfdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> dir)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:InstallDirTemplates" class="def">InstallDirTemplates</a> = <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#t:InstallDirTemplates" class="selflink">#</a></p><div class="doc"><p>The installation directories in terms of <code><a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></code>s that contain+ variables.</p><p>The defaults for most of the directories are relative to each other, in+ particular they are all relative to a single prefix. This makes it+ convenient for the user to override the default installation directory+ by only having to specify --prefix=... rather than overriding each+ individually. This is done by allowing $-style variables in the dirs.+ These are expanded by textual substitution (see <code><a href="Distribution-Simple-InstallDirs.html#v:substPathTemplate">substPathTemplate</a></code>).</p><p>A few of these installation directories are split into two components, the+ dir and subdir. The full installation path is formed by combining the two+ together with <code>/</code>. The reason for this is compatibility with other Unix+ build systems which also support <code>--libdir</code> and <code>--datadir</code>. We would like+ users to be able to configure <code>--libdir=/usr/lib64</code> for example but+ because by default we want to support installing multiple versions of+ packages and building the same package for multiple compilers we append the+ libsubdir to get: <code>/usr/lib64/$libname/$compiler</code>.</p><p>An additional complication is the need to support relocatable packages on+ systems which support such things, like Windows.</p></div></div><div class="top"><p class="src"><a id="v:defaultInstallDirs" class="def">defaultInstallDirs</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a> <a href="#v:defaultInstallDirs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultInstallDirs-39-" class="def">defaultInstallDirs'</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a> <a href="#v:defaultInstallDirs-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:combineInstallDirs" class="def">combineInstallDirs</a> :: (a -> b -> c) -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> a -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> b -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> c <a href="#v:combineInstallDirs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:absoluteInstallDirs" class="def">absoluteInstallDirs</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:absoluteInstallDirs" class="selflink">#</a></p><div class="doc"><p>Convert from abstract install directories to actual absolute ones by+ substituting for all the variables in the abstract paths, to get real+ absolute path.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CopyDest" class="def">CopyDest</a> <a href="#t:CopyDest" class="selflink">#</a></p><div class="doc"><p>The location prefix for the <em>copy</em> command.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoCopyDest" class="def">NoCopyDest</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CopyTo" class="def">CopyTo</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:CopyDest" class="caption collapser" onclick="toggleSection('i:CopyDest')">Instances</p><div id="section.i:CopyDest" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CopyDest:Eq:1" class="instance expander" onclick="toggleSection('i:id:CopyDest:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a></span> <a href="#t:CopyDest" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CopyDest:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CopyDest:Show:2" class="instance expander" onclick="toggleSection('i:id:CopyDest:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a></span> <a href="#t:CopyDest" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CopyDest:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:prefixRelativeInstallDirs" class="def">prefixRelativeInstallDirs</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) <a href="#v:prefixRelativeInstallDirs" class="selflink">#</a></p><div class="doc"><p>Check which of the paths are relative to the installation $prefix.</p><p>If any of the paths are not relative, ie they are absolute paths, then it+ prevents us from making a relocatable package (also known as a "prefix+ independent" package).</p></div></div><div class="top"><p class="src"><a id="v:substituteInstallDirTemplates" class="def">substituteInstallDirTemplates</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a> <a href="#v:substituteInstallDirTemplates" class="selflink">#</a></p><div class="doc"><p>Substitute the install dir templates into each other.</p><p>To prevent cyclic substitutions, only some variables are allowed in+ particular dir templates. If out of scope vars are present, they are not+ substituted for. Checking for any remaining unsubstituted vars can be done+ as a subsequent operation.</p><p>The reason it is done this way is so that in <code><a href="Distribution-Simple-InstallDirs.html#v:prefixRelativeInstallDirs">prefixRelativeInstallDirs</a></code> we+ can replace <code><a href="Distribution-Simple-InstallDirs.html#v:prefix">prefix</a></code> with the <code><a href="Distribution-Simple-InstallDirs.html#v:PrefixVar">PrefixVar</a></code> and get resulting+ <code><a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></code>s that still have the <code><a href="Distribution-Simple-InstallDirs.html#v:PrefixVar">PrefixVar</a></code> in them. Doing this makes it+ each to check which paths are relative to the $prefix.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PathTemplate" class="def">PathTemplate</a> <a href="#t:PathTemplate" class="selflink">#</a></p><div class="doc"><p>An abstract path, possibly containing variables that need to be+ substituted for to get a real <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></code>.</p></div><div class="subs instances"><p id="control.i:PathTemplate" class="caption collapser" onclick="toggleSection('i:PathTemplate')">Instances</p><div id="section.i:PathTemplate" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplate:Eq:1" class="instance expander" onclick="toggleSection('i:id:PathTemplate:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></span> <a href="#t:PathTemplate" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplate:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplate:Ord:2" class="instance expander" onclick="toggleSection('i:id:PathTemplate:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></span> <a href="#t:PathTemplate" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplate:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplate:Read:3" class="instance expander" onclick="toggleSection('i:id:PathTemplate:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></span> <a href="#t:PathTemplate" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplate:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplate:Show:4" class="instance expander" onclick="toggleSection('i:id:PathTemplate:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></span> <a href="#t:PathTemplate" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplate:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplate:Generic:5" class="instance expander" onclick="toggleSection('i:id:PathTemplate:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></span> <a href="#t:PathTemplate" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplate:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> x -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplate:Binary:6" class="instance expander" onclick="toggleSection('i:id:PathTemplate:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></span> <a href="#t:PathTemplate" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplate:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplate:Rep:7" class="instance expander" onclick="toggleSection('i:id:PathTemplate:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></span> <a href="#t:PathTemplate" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplate:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PathTemplateVariable" class="def">PathTemplateVariable</a> <a href="#t:PathTemplateVariable" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:PrefixVar" class="def">PrefixVar</a></td><td class="doc"><p>The <code>$prefix</code> path variable</p></td></tr><tr><td class="src"><a id="v:BindirVar" class="def">BindirVar</a></td><td class="doc"><p>The <code>$bindir</code> path variable</p></td></tr><tr><td class="src"><a id="v:LibdirVar" class="def">LibdirVar</a></td><td class="doc"><p>The <code>$libdir</code> path variable</p></td></tr><tr><td class="src"><a id="v:LibsubdirVar" class="def">LibsubdirVar</a></td><td class="doc"><p>The <code>$libsubdir</code> path variable</p></td></tr><tr><td class="src"><a id="v:DynlibdirVar" class="def">DynlibdirVar</a></td><td class="doc"><p>The <code>$dynlibdir</code> path variable</p></td></tr><tr><td class="src"><a id="v:DatadirVar" class="def">DatadirVar</a></td><td class="doc"><p>The <code>$datadir</code> path variable</p></td></tr><tr><td class="src"><a id="v:DatasubdirVar" class="def">DatasubdirVar</a></td><td class="doc"><p>The <code>$datasubdir</code> path variable</p></td></tr><tr><td class="src"><a id="v:DocdirVar" class="def">DocdirVar</a></td><td class="doc"><p>The <code>$docdir</code> path variable</p></td></tr><tr><td class="src"><a id="v:HtmldirVar" class="def">HtmldirVar</a></td><td class="doc"><p>The <code>$htmldir</code> path variable</p></td></tr><tr><td class="src"><a id="v:PkgNameVar" class="def">PkgNameVar</a></td><td class="doc"><p>The <code>$pkg</code> package name path variable</p></td></tr><tr><td class="src"><a id="v:PkgVerVar" class="def">PkgVerVar</a></td><td class="doc"><p>The <code>$version</code> package version path variable</p></td></tr><tr><td class="src"><a id="v:PkgIdVar" class="def">PkgIdVar</a></td><td class="doc"><p>The <code>$pkgid</code> package Id path variable, eg <code>foo-1.0</code></p></td></tr><tr><td class="src"><a id="v:LibNameVar" class="def">LibNameVar</a></td><td class="doc"><p>The <code>$libname</code> path variable</p></td></tr><tr><td class="src"><a id="v:CompilerVar" class="def">CompilerVar</a></td><td class="doc"><p>The compiler name and version, eg <code>ghc-6.6.1</code></p></td></tr><tr><td class="src"><a id="v:OSVar" class="def">OSVar</a></td><td class="doc"><p>The operating system name, eg <code>windows</code> or <code>linux</code></p></td></tr><tr><td class="src"><a id="v:ArchVar" class="def">ArchVar</a></td><td class="doc"><p>The CPU architecture name, eg <code>i386</code> or <code>x86_64</code></p></td></tr><tr><td class="src"><a id="v:AbiVar" class="def">AbiVar</a></td><td class="doc"><p>The Compiler's ABI identifier, $arch-$os-$compiler-$abitag</p></td></tr><tr><td class="src"><a id="v:AbiTagVar" class="def">AbiTagVar</a></td><td class="doc"><p>The optional ABI tag for the compiler</p></td></tr><tr><td class="src"><a id="v:ExecutableNameVar" class="def">ExecutableNameVar</a></td><td class="doc"><p>The executable name; used in shell wrappers</p></td></tr><tr><td class="src"><a id="v:TestSuiteNameVar" class="def">TestSuiteNameVar</a></td><td class="doc"><p>The name of the test suite being run</p></td></tr><tr><td class="src"><a id="v:TestSuiteResultVar" class="def">TestSuiteResultVar</a></td><td class="doc"><p>The result of the test suite being run, eg+ <code>pass</code>, <code>fail</code>, or <code>error</code>.</p></td></tr><tr><td class="src"><a id="v:BenchmarkNameVar" class="def">BenchmarkNameVar</a></td><td class="doc"><p>The name of the benchmark being run</p></td></tr></table></div><div class="subs instances"><p id="control.i:PathTemplateVariable" class="caption collapser" onclick="toggleSection('i:PathTemplateVariable')">Instances</p><div id="section.i:PathTemplateVariable" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplateVariable:Eq:1" class="instance expander" onclick="toggleSection('i:id:PathTemplateVariable:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a></span> <a href="#t:PathTemplateVariable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplateVariable:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplateVariable:Ord:2" class="instance expander" onclick="toggleSection('i:id:PathTemplateVariable:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a></span> <a href="#t:PathTemplateVariable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplateVariable:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplateVariable:Read:3" class="instance expander" onclick="toggleSection('i:id:PathTemplateVariable:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a></span> <a href="#t:PathTemplateVariable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplateVariable:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplateVariable:Show:4" class="instance expander" onclick="toggleSection('i:id:PathTemplateVariable:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a></span> <a href="#t:PathTemplateVariable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplateVariable:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplateVariable:Generic:5" class="instance expander" onclick="toggleSection('i:id:PathTemplateVariable:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a></span> <a href="#t:PathTemplateVariable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplateVariable:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> x -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplateVariable:Binary:6" class="instance expander" onclick="toggleSection('i:id:PathTemplateVariable:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a></span> <a href="#t:PathTemplateVariable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplateVariable:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PathTemplateVariable:Rep:7" class="instance expander" onclick="toggleSection('i:id:PathTemplateVariable:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a></span> <a href="#t:PathTemplateVariable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PathTemplateVariable:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "PathTemplateVariable" "Distribution.Simple.InstallDirs" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PrefixVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BindirVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LibdirVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LibsubdirVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DynlibdirVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DatadirVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DatasubdirVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DocdirVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HtmldirVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PkgNameVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PkgVerVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PkgIdVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LibNameVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CompilerVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OSVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ArchVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AbiVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AbiTagVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExecutableNameVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuiteNameVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuiteResultVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkNameVar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:PathTemplateEnv" class="def">PathTemplateEnv</a> = [(<a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">PathTemplateVariable</a>, <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)] <a href="#t:PathTemplateEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:toPathTemplate" class="def">toPathTemplate</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#v:toPathTemplate" class="selflink">#</a></p><div class="doc"><p>Convert a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></code> to a <code><a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></code> including any template vars.</p></div></div><div class="top"><p class="src"><a id="v:fromPathTemplate" class="def">fromPathTemplate</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:fromPathTemplate" class="selflink">#</a></p><div class="doc"><p>Convert back to a path, any remaining vars are included</p></div></div><div class="top"><p class="src"><a id="v:combinePathTemplate" class="def">combinePathTemplate</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#v:combinePathTemplate" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:substPathTemplate" class="def">substPathTemplate</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> <a href="#v:substPathTemplate" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:initialPathTemplateEnv" class="def">initialPathTemplateEnv</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> <a href="#v:initialPathTemplateEnv" class="selflink">#</a></p><div class="doc"><p>The initial environment has all the static stuff but no paths</p></div></div><div class="top"><p class="src"><a id="v:platformTemplateEnv" class="def">platformTemplateEnv</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> <a href="#v:platformTemplateEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:compilerTemplateEnv" class="def">compilerTemplateEnv</a> :: <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> <a href="#v:compilerTemplateEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:packageTemplateEnv" class="def">packageTemplateEnv</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> <a href="#v:packageTemplateEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:abiTemplateEnv" class="def">abiTemplateEnv</a> :: <a href="Distribution-Compiler.html#t:CompilerInfo">CompilerInfo</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> <a href="#v:abiTemplateEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:installDirsTemplateEnv" class="def">installDirsTemplateEnv</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">PathTemplateEnv</a> <a href="#v:installDirsTemplateEnv" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-JHC.html view
@@ -0,0 +1,7 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.JHC</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2006</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.JHC</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module contains most of the JHC-specific code for configuring, building+ and installing packages.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:configure">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:getInstalledPackages">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:buildLib">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:buildExe">buildExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installLib">installLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installExe">installExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:configure" class="def">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configure" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInstalledPackages" class="def">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:getInstalledPackages" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildLib" class="def">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildLib" class="selflink">#</a></p><div class="doc"><p>Building a package for JHC.+ Currently C source files are not supported.</p></div></div><div class="top"><p class="src"><a id="v:buildExe" class="def">buildExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildExe" class="selflink">#</a></p><div class="doc"><p>Building an executable for JHC.+ Currently C source files are not supported.</p></div></div><div class="top"><p class="src"><a id="v:installLib" class="def">installLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installLib" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:installExe" class="def">installExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installExe" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-LHC.html view
@@ -0,0 +1,19 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.LHC</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2007</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.LHC</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is a fairly large module. It contains most of the GHC-specific code for+ configuring, building and installing packages. It also exports a function+ for finding out what packages are already installed. Configuring involves+ finding the <code>ghc</code> and <code>ghc-pkg</code> programs, finding what language extensions+ this version of ghc supports and returning a <code><a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></code> value.</p><p><code><a href="Distribution-Simple-LHC.html#v:getInstalledPackages">getInstalledPackages</a></code> involves calling the <code>ghc-pkg</code> program to find out+ what packages are installed.</p><p>Building is somewhat complex as there is quite a bit of information to take+ into account. We have to build libs and programs, possibly for profiling and+ shared libs. We have to support building libraries that will be usable by+ GHCi and also ghc's <code>-split-objs</code> feature. We have to compile any C files+ using ghc. Linking, especially for <code>split-objs</code> is remarkably complex,+ partly because there tend to be 1,000's of <code>.o</code> files and this can often be+ more than we can pass to the <code>ld</code> or <code>ar</code> programs in one go.</p><p>Installing for libs and exes involves finding the right files and copying+ them to the right places. One of the more tricky things about this module is+ remembering the layout of files in the build directory (which is not+ explicitly documented) and thus what search dirs are used for various kinds+ of files.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:configure">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:getInstalledPackages">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:buildLib">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:buildExe">buildExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installLib">installLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installExe">installExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:registerPackage">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hcPkgInfo">hcPkgInfo</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a></li><li class="src short"><a href="#v:ghcOptions">ghcOptions</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:ghcVerbosityOptions">ghcVerbosityOptions</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:configure" class="def">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configure" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInstalledPackages" class="def">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:getInstalledPackages" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildLib" class="def">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildLib" class="selflink">#</a></p><div class="doc"><p>Build a library with LHC.</p></div></div><div class="top"><p class="src"><a id="v:buildExe" class="def">buildExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildExe" class="selflink">#</a></p><div class="doc"><p>Build an executable with LHC.</p></div></div><div class="top"><p class="src"><a id="v:installLib" class="def">installLib</a> <a href="#v:installLib" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>install location</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>install location for dynamic libraries</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Build location</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-Library.html#t:Library">Library</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Install for ghc, .hi, .a and, if --with-ghci given, .o</p></div></div><div class="top"><p class="src"><a id="v:installExe" class="def">installExe</a> <a href="#v:installExe" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Where to copy the files to</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Build location</p></td></tr><tr><td class="src">-> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</td><td class="doc"><p>Executable (prefix,suffix)</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Install executables for GHC.</p></div></div><div class="top"><p class="src"><a id="v:registerPackage" class="def">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:registerPackage" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hcPkgInfo" class="def">hcPkgInfo</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> <a href="#v:hcPkgInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ghcOptions" class="def">ghcOptions</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:ghcOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ghcVerbosityOptions" class="def">ghcVerbosityOptions</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:ghcVerbosityOptions" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-LocalBuildInfo.html view
@@ -0,0 +1,154 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.LocalBuildInfo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.LocalBuildInfo</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Buildable package components</a></li><li><a href="#g:2">Installation directories</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Once a package has been configured we have resolved conditionals and+ dependencies, configured the compiler and other needed external programs.+ The <code><a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> is used to hold all this information. It holds the+ install dirs, the compiler, the exact package dependencies, the configured+ programs, the package database to use and a bunch of miscellaneous configure+ flags. It gets saved and reloaded from a file (<code>dist/setup-config</code>). It gets+ passed in to very many subsequent build actions.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:LocalBuildInfo">LocalBuildInfo</a> = <a href="#v:LocalBuildInfo">LocalBuildInfo</a> {<ul class="subs"><li><a href="#v:configFlags">configFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></li><li><a href="#v:flagAssignment">flagAssignment</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></li><li><a href="#v:componentEnabledSpec">componentEnabledSpec</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></li><li><a href="#v:extraConfigArgs">extraConfigArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:installDirTemplates">installDirTemplates</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a></li><li><a href="#v:compiler">compiler</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></li><li><a href="#v:hostPlatform">hostPlatform</a> :: <a href="Distribution-System.html#t:Platform">Platform</a></li><li><a href="#v:buildDir">buildDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:componentGraph">componentGraph</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></li><li><a href="#v:componentNameMap">componentNameMap</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>]</li><li><a href="#v:installedPkgs">installedPkgs</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li><a href="#v:pkgDescrFile">pkgDescrFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:localPkgDescr">localPkgDescr</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li><a href="#v:withPrograms">withPrograms</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li><a href="#v:withPackageDB">withPackageDB</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></li><li><a href="#v:withVanillaLib">withVanillaLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withProfLib">withProfLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withSharedLib">withSharedLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withDynExe">withDynExe</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withProfExe">withProfExe</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withProfLibDetail">withProfLibDetail</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></li><li><a href="#v:withProfExeDetail">withProfExeDetail</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></li><li><a href="#v:withOptimization">withOptimization</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></li><li><a href="#v:withDebugInfo">withDebugInfo</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></li><li><a href="#v:withGHCiLib">withGHCiLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:splitObjs">splitObjs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:stripExes">stripExes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:stripLibs">stripLibs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:exeCoverage">exeCoverage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:libCoverage">libCoverage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:progPrefix">progPrefix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:progSuffix">progSuffix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:relocatable">relocatable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:externalPackageDeps">externalPackageDeps</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li class="src short"><a href="#v:localComponentId">localComponentId</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li class="src short"><a href="#v:localUnitId">localUnitId</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><a href="#v:localCompatPackageKey">localCompatPackageKey</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Component">Component</a><ul class="subs"><li>= <a href="#v:CLib">CLib</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></li><li>| <a href="#v:CFLib">CFLib</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></li><li>| <a href="#v:CExe">CExe</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></li><li>| <a href="#v:CTest">CTest</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></li><li>| <a href="#v:CBench">CBench</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentName">ComponentName</a><ul class="subs"><li>= <a href="#v:CLibName">CLibName</a></li><li>| <a href="#v:CSubLibName">CSubLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CFLibName">CFLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CExeName">CExeName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CTestName">CTestName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CBenchName">CBenchName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li></ul></li><li class="src short"><a href="#v:defaultLibName">defaultLibName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></li><li class="src short"><a href="#v:showComponentName">showComponentName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:componentNameString">componentNameString</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a><ul class="subs"><li>= <a href="#v:LibComponentLocalBuildInfo">LibComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentIsIndefinite_">componentIsIndefinite_</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:componentInstantiatedWith">componentInstantiatedWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentCompatPackageKey">componentCompatPackageKey</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:componentCompatPackageName">componentCompatPackageName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></li><li><a href="#v:componentExposedModules">componentExposedModules</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>]</li><li><a href="#v:componentIsPublic">componentIsPublic</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul> }</li><li>| <a href="#v:FLibComponentLocalBuildInfo">FLibComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li></ul> }</li><li>| <a href="#v:ExeComponentLocalBuildInfo">ExeComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li></ul> }</li><li>| <a href="#v:TestComponentLocalBuildInfo">TestComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li></ul> }</li><li>| <a href="#v:BenchComponentLocalBuildInfo">BenchComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li></ul> }</li></ul></li><li class="src short"><a href="#v:componentBuildDir">componentBuildDir</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:foldComponent">foldComponent</a> :: (<a href="Distribution-Types-Library.html#t:Library">Library</a> -> a) -> (<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> a) -> (<a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> a) -> (<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> a) -> (<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> a) -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> a</li><li class="src short"><a href="#v:componentName">componentName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></li><li class="src short"><a href="#v:componentBuildInfo">componentBuildInfo</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li><li class="src short"><a href="#v:componentBuildable">componentBuildable</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:pkgComponents">pkgComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a>]</li><li class="src short"><a href="#v:pkgBuildableComponents">pkgBuildableComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a>]</li><li class="src short"><a href="#v:lookupComponent">lookupComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a></li><li class="src short"><a href="#v:getComponent">getComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a></li><li class="src short"><a href="#v:getComponentLocalBuildInfo">getComponentLocalBuildInfo</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></li><li class="src short"><a href="#v:allComponentsInBuildOrder">allComponentsInBuildOrder</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>]</li><li class="src short"><a href="#v:componentsInBuildOrder">componentsInBuildOrder</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>] -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>]</li><li class="src short"><a href="#v:depLibraryPaths">depLibraryPaths</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li class="src short"><a href="#v:allLibModules">allLibModules</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:withAllComponentsInBuildOrder">withAllComponentsInBuildOrder</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withComponentsInBuildOrder">withComponentsInBuildOrder</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>] -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withComponentsLBI">withComponentsLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withLibLBI">withLibLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withExeLBI">withExeLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withBenchLBI">withBenchLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withTestLBI">withTestLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:enabledTestLBIs">enabledTestLBIs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)]</li><li class="src short"><a href="#v:enabledBenchLBIs">enabledBenchLBIs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)]</li><li class="src short">module <a href="Distribution-Simple-InstallDirs.html">Distribution.Simple.InstallDirs</a></li><li class="src short"><a href="#v:absoluteInstallDirs">absoluteInstallDirs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:prefixRelativeInstallDirs">prefixRelativeInstallDirs</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:absoluteComponentInstallDirs">absoluteComponentInstallDirs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:prefixRelativeComponentInstallDirs">prefixRelativeComponentInstallDirs</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:substPathTemplate">substPathTemplate</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LocalBuildInfo" class="def">LocalBuildInfo</a> <a href="#t:LocalBuildInfo" class="selflink">#</a></p><div class="doc"><p>Data cached after configuration step. See also+ <code><a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:LocalBuildInfo" class="def">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:configFlags" class="def">configFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></dfn><div class="doc"><p>Options passed to the configuration step.+ Needed to re-run configuration when .cabal is out of date</p></div></li><li><dfn class="src"><a id="v:flagAssignment" class="def">flagAssignment</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></dfn><div class="doc"><p>The final set of flags which were picked for this package</p></div></li><li><dfn class="src"><a id="v:componentEnabledSpec" class="def">componentEnabledSpec</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></dfn><div class="doc"><p>What components were enabled during configuration, and why.</p></div></li><li><dfn class="src"><a id="v:extraConfigArgs" class="def">extraConfigArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>Extra args on the command line for the configuration step.+ Needed to re-run configuration when .cabal is out of date</p></div></li><li><dfn class="src"><a id="v:installDirTemplates" class="def">installDirTemplates</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a></dfn><div class="doc"><p>The installation directories for the various different+ kinds of files+TODO: inplaceDirTemplates :: InstallDirs FilePath</p></div></li><li><dfn class="src"><a id="v:compiler" class="def">compiler</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></dfn><div class="doc"><p>The compiler we're building with</p></div></li><li><dfn class="src"><a id="v:hostPlatform" class="def">hostPlatform</a> :: <a href="Distribution-System.html#t:Platform">Platform</a></dfn><div class="doc"><p>The platform we're building for</p></div></li><li><dfn class="src"><a id="v:buildDir" class="def">buildDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Where to build the package.</p></div></li><li><dfn class="src"><a id="v:componentGraph" class="def">componentGraph</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></dfn><div class="doc"><p>All the components to build, ordered by topological+ sort, and with their INTERNAL dependencies over the+ intrapackage dependency graph.+ TODO: this is assumed to be short; otherwise we want+ some sort of ordered map.</p></div></li><li><dfn class="src"><a id="v:componentNameMap" class="def">componentNameMap</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>]</dfn><div class="doc"><p>A map from component name to all matching+ components. These coincide with <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentGraph">componentGraph</a></code></p></div></li><li><dfn class="src"><a id="v:installedPkgs" class="def">installedPkgs</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></dfn><div class="doc"><p>All the info about the installed packages that the+ current package depends on (directly or indirectly).+ The copy saved on disk does NOT include internal+ dependencies (because we just don't have enough+ information at this point to have an+ <code>InstalledPackageInfo</code> for an internal dep), but we+ will often update it with the internal dependencies;+ see for example <code><a href="Distribution-Simple-Build.html#v:build">build</a></code>.+ (This admonition doesn't apply for per-component builds.)</p></div></li><li><dfn class="src"><a id="v:pkgDescrFile" class="def">pkgDescrFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>the filename containing the .cabal file, if available</p></div></li><li><dfn class="src"><a id="v:localPkgDescr" class="def">localPkgDescr</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></dfn><div class="doc"><p>WARNING WARNING WARNING Be VERY careful about using+ this function; we haven't deprecated it but using it+ could introduce subtle bugs related to+ <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code>.</p><p>In principle, this is supposed to contain the+ resolved package description, that does not contain+ any conditionals. However, it MAY NOT contain+ the description wtih a <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied+ to it; see <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> for the whole sordid saga.+ As much as possible, Cabal library should avoid using+ this parameter.</p></div></li><li><dfn class="src"><a id="v:withPrograms" class="def">withPrograms</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></dfn><div class="doc"><p>Location and args for all programs</p></div></li><li><dfn class="src"><a id="v:withPackageDB" class="def">withPackageDB</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></dfn><div class="doc"><p>What package database to use, global/user</p></div></li><li><dfn class="src"><a id="v:withVanillaLib" class="def">withVanillaLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build normal libs.</p></div></li><li><dfn class="src"><a id="v:withProfLib" class="def">withProfLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build profiling versions of libs.</p></div></li><li><dfn class="src"><a id="v:withSharedLib" class="def">withSharedLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build shared versions of libs.</p></div></li><li><dfn class="src"><a id="v:withDynExe" class="def">withDynExe</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to link executables dynamically</p></div></li><li><dfn class="src"><a id="v:withProfExe" class="def">withProfExe</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build executables for profiling.</p></div></li><li><dfn class="src"><a id="v:withProfLibDetail" class="def">withProfLibDetail</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></dfn><div class="doc"><p>Level of automatic profile detail.</p></div></li><li><dfn class="src"><a id="v:withProfExeDetail" class="def">withProfExeDetail</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></dfn><div class="doc"><p>Level of automatic profile detail.</p></div></li><li><dfn class="src"><a id="v:withOptimization" class="def">withOptimization</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></dfn><div class="doc"><p>Whether to build with optimization (if available).</p></div></li><li><dfn class="src"><a id="v:withDebugInfo" class="def">withDebugInfo</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></dfn><div class="doc"><p>Whether to emit debug info (if available).</p></div></li><li><dfn class="src"><a id="v:withGHCiLib" class="def">withGHCiLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build libs suitable for use with GHCi.</p></div></li><li><dfn class="src"><a id="v:splitObjs" class="def">splitObjs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Use -split-objs with GHC, if available</p></div></li><li><dfn class="src"><a id="v:stripExes" class="def">stripExes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to strip executables during install</p></div></li><li><dfn class="src"><a id="v:stripLibs" class="def">stripLibs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to strip libraries during install</p></div></li><li><dfn class="src"><a id="v:exeCoverage" class="def">exeCoverage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to enable executable program coverage</p></div></li><li><dfn class="src"><a id="v:libCoverage" class="def">libCoverage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to enable library program coverage</p></div></li><li><dfn class="src"><a id="v:progPrefix" class="def">progPrefix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dfn><div class="doc"><p>Prefix to be prepended to installed executables</p></div></li><li><dfn class="src"><a id="v:progSuffix" class="def">progSuffix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dfn><div class="doc"><p>Suffix to be appended to installed executables</p></div></li><li><dfn class="src"><a id="v:relocatable" class="def">relocatable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:LocalBuildInfo" class="caption collapser" onclick="toggleSection('i:LocalBuildInfo')">Instances</p><div id="section.i:LocalBuildInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Read:1" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Read:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Read:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Show:2" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Generic:3" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Generic:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Generic:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> x -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Binary:4" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Binary:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Binary:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Rep:5" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "LocalBuildInfo" "Distribution.Types.LocalBuildInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configFlags") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagAssignment") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentEnabledSpec") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraConfigArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installDirTemplates") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compiler") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hostPlatform") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-System.html#t:Platform">Platform</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentGraph") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentNameMap") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installedPkgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgDescrFile") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "localPkgDescr") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withPrograms") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withPackageDB") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withVanillaLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withProfLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withSharedLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withDynExe") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withProfExe") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withProfLibDetail") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withProfExeDetail") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withOptimization") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withDebugInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withGHCiLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "splitObjs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "stripExes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "stripLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exeCoverage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libCoverage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "progPrefix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "progSuffix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "relocatable") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:externalPackageDeps" class="def">externalPackageDeps</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)] <a href="#v:externalPackageDeps" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: You almost certainly don't want this function, which agglomerates the dependencies of ALL enabled components. If you're using this to write out information on your dependencies, read off the dependencies directly from the actual component in question. To be removed in Cabal 2.2</p></div><p>External package dependencies for the package as a whole. This is the+ union of the individual <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, less any internal deps.</p></div></div><div class="top"><p class="src"><a id="v:localComponentId" class="def">localComponentId</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:localComponentId" class="selflink">#</a></p><div class="doc"><p>Extract the <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> from the public library component of a+ <code><a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> if it exists, or make a fake component ID based+ on the package ID.</p></div></div><div class="top"><p class="src"><a id="v:localUnitId" class="def">localUnitId</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:localUnitId" class="selflink">#</a></p><div class="doc"><p>Extract the <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> from the library component of a+ <code><a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> if it exists, or make a fake unit ID based on+ the package ID.</p></div></div><div class="top"><p class="src"><a id="v:localCompatPackageKey" class="def">localCompatPackageKey</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:localCompatPackageKey" class="selflink">#</a></p><div class="doc"><p>Extract the compatibility package key from the public library component of a+ <code><a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> if it exists, or make a fake package key based+ on the package ID.</p></div></div><h1 id="g:1">Buildable package components</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Component" class="def">Component</a> <a href="#t:Component" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CLib" class="def">CLib</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CFLib" class="def">CFLib</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CExe" class="def">CExe</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CTest" class="def">CTest</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CBench" class="def">CBench</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Component" class="caption collapser" onclick="toggleSection('i:Component')">Instances</p><div id="section.i:Component" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Component:Eq:1" class="instance expander" onclick="toggleSection('i:id:Component:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a></span> <a href="#t:Component" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Component:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Component:Read:2" class="instance expander" onclick="toggleSection('i:id:Component:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a></span> <a href="#t:Component" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Component:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Component:Show:3" class="instance expander" onclick="toggleSection('i:id:Component:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a></span> <a href="#t:Component" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Component:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Component:Semigroup:4" class="instance expander" onclick="toggleSection('i:id:Component:Semigroup:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a></span> <a href="#t:Component" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Component:Semigroup:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ComponentName" class="def">ComponentName</a> <a href="#t:ComponentName" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CLibName" class="def">CLibName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CSubLibName" class="def">CSubLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CFLibName" class="def">CFLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CExeName" class="def">CExeName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CTestName" class="def">CTestName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CBenchName" class="def">CBenchName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ComponentName" class="caption collapser" onclick="toggleSection('i:ComponentName')">Instances</p><div id="section.i:ComponentName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Eq:1" class="instance expander" onclick="toggleSection('i:id:ComponentName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Ord:2" class="instance expander" onclick="toggleSection('i:id:ComponentName:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Read:3" class="instance expander" onclick="toggleSection('i:id:ComponentName:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Show:4" class="instance expander" onclick="toggleSection('i:id:ComponentName:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Generic:5" class="instance expander" onclick="toggleSection('i:id:ComponentName:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> x -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Binary:6" class="instance expander" onclick="toggleSection('i:id:ComponentName:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Text:7" class="instance expander" onclick="toggleSection('i:id:ComponentName:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Rep:8" class="instance expander" onclick="toggleSection('i:id:ComponentName:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ComponentName" "Distribution.Types.ComponentName" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CLibName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CSubLibName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CFLibName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CExeName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CTestName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CBenchName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultLibName" class="def">defaultLibName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> <a href="#v:defaultLibName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showComponentName" class="def">showComponentName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showComponentName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentNameString" class="def">componentNameString</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:componentNameString" class="selflink">#</a></p><div class="doc"><p>This gets the underlying unqualified component name. In fact, it is+ guaranteed to uniquely identify a component, returning+ <code>Nothing</code> if the <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></code> was for the public+ library.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ComponentLocalBuildInfo" class="def">ComponentLocalBuildInfo</a> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></p><div class="doc"><p>The first five fields are common across all algebraic variants.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:LibComponentLocalBuildInfo" class="def">LibComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentIsIndefinite_" class="def">componentIsIndefinite_</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Is this an indefinite component (i.e. has unfilled holes)?</p></div></li><li><dfn class="src"><a id="v:componentInstantiatedWith" class="def">componentInstantiatedWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</dfn><div class="doc"><p>How the component was instantiated</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li><li><dfn class="src"><a id="v:componentCompatPackageKey" class="def">componentCompatPackageKey</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Compatibility "package key" that we pass to older versions of GHC.</p></div></li><li><dfn class="src"><a id="v:componentCompatPackageName" class="def">componentCompatPackageName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></dfn><div class="doc"><p>Compatibility "package name" that we register this component as.</p></div></li><li><dfn class="src"><a id="v:componentExposedModules" class="def">componentExposedModules</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>]</dfn><div class="doc"><p>A list of exposed modules (either defined in this component,+ or reexported from another component.)</p></div></li><li><dfn class="src"><a id="v:componentIsPublic" class="def">componentIsPublic</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Convenience field, specifying whether or not this is the+ "public library" that has the same name as the package.</p></div></li></ul></div></td></tr><tr><td class="src"><a id="v:FLibComponentLocalBuildInfo" class="def">FLibComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li></ul></div></td></tr><tr><td class="src"><a id="v:ExeComponentLocalBuildInfo" class="def">ExeComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li></ul></div></td></tr><tr><td class="src"><a id="v:TestComponentLocalBuildInfo" class="def">TestComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li></ul></div></td></tr><tr><td class="src"><a id="v:BenchComponentLocalBuildInfo" class="def">BenchComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ComponentLocalBuildInfo" class="caption collapser" onclick="toggleSection('i:ComponentLocalBuildInfo')">Instances</p><div id="section.i:ComponentLocalBuildInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Read:1" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Read:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Read:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Show:2" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Generic:3" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Generic:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Generic:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> x -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Binary:4" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Binary:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Binary:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:IsNode:5" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:IsNode:5')"></span> <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:IsNode:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Rep:6" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ComponentLocalBuildInfo" "Distribution.Types.ComponentLocalBuildInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LibComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIsIndefinite_") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInstantiatedWith") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentCompatPackageKey") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentCompatPackageName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExposedModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIsPublic") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FLibComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExeComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])))))))))</div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Key:7" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Key:7')"></span> <span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Key:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> = <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:componentBuildDir" class="def">componentBuildDir</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:componentBuildDir" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:foldComponent" class="def">foldComponent</a> :: (<a href="Distribution-Types-Library.html#t:Library">Library</a> -> a) -> (<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> a) -> (<a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> a) -> (<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> a) -> (<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> a) -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> a <a href="#v:foldComponent" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentName" class="def">componentName</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> <a href="#v:componentName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentBuildInfo" class="def">componentBuildInfo</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:componentBuildInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentBuildable" class="def">componentBuildable</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:componentBuildable" class="selflink">#</a></p><div class="doc"><p>Is a component buildable (i.e., not marked with <code>buildable: False</code>)?+ See also this note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>.</p><p><em>Since: 2.0.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:pkgComponents" class="def">pkgComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a>] <a href="#v:pkgComponents" class="selflink">#</a></p><div class="doc"><p>All the components in the package.</p></div></div><div class="top"><p class="src"><a id="v:pkgBuildableComponents" class="def">pkgBuildableComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a>] <a href="#v:pkgBuildableComponents" class="selflink">#</a></p><div class="doc"><p>A list of all components in the package that are buildable,+ i.e., were not marked with <code>buildable: False</code>. This does NOT+ indicate if we are actually going to build the component,+ see <code><a href="Distribution-Types-PackageDescription.html#v:enabledComponents">enabledComponents</a></code> instead.</p><p><em>Since: 2.0.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:lookupComponent" class="def">lookupComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> <a href="#v:lookupComponent" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getComponent" class="def">getComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> <a href="#v:getComponent" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getComponentLocalBuildInfo" class="def">getComponentLocalBuildInfo</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:getComponentLocalBuildInfo" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: This function is not well-defined, because a <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></code> does not uniquely identify a <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code>. If you have a <code><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></code>, you should use <code><a href="Distribution-Types-TargetInfo.html#v:targetCLBI">targetCLBI</a></code> to get the <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code>. Otherwise, use <code><a href="Distribution-Types-LocalBuildInfo.html#v:componentNameTargets">componentNameTargets</a></code> to get all possible <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code>s. This will be removed in Cabal 2.2.</p></div></div></div><div class="top"><p class="src"><a id="v:allComponentsInBuildOrder" class="def">allComponentsInBuildOrder</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:allComponentsInBuildOrder" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentsInBuildOrder" class="def">componentsInBuildOrder</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>] -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:componentsInBuildOrder" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: You've got <code><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></code> right? Use <code><a href="Distribution-Types-LocalBuildInfo.html#v:neededTargetsInBuildOrder">neededTargetsInBuildOrder</a></code> on the <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>s you can <code>nodeKey</code> out.</p></div></div></div><div class="top"><p class="src"><a id="v:depLibraryPaths" class="def">depLibraryPaths</a> <a href="#v:depLibraryPaths" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc"><p>Building for inplace?</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc"><p>Generate prefix-relative library paths</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc"><p>Component that is being built</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Determine the directories containing the dynamic libraries of the+ transitive dependencies of the component we are building.</p><p>When wanted, and possible, returns paths relative to the installDirs <code><a href="Distribution-Simple-InstallDirs.html#v:prefix">prefix</a></code></p></div></div><div class="top"><p class="src"><a id="v:allLibModules" class="def">allLibModules</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:allLibModules" class="selflink">#</a></p><div class="doc"><p>Get all module names that needed to be built by GHC; i.e., all+ of these <code><a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></code>s have interface files associated with them+ that need to be installed.</p></div></div><div class="top"><p class="src"><a id="v:withAllComponentsInBuildOrder" class="def">withAllComponentsInBuildOrder</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withAllComponentsInBuildOrder" class="selflink">#</a></p><div class="doc"><p>Perform the action on each buildable <code><a href="Distribution-Types-Library.html#t:Library">Library</a></code> or <code><a href="Distribution-Types-Executable.html#t:Executable">Executable</a></code> (Component)+ in the PackageDescription, subject to the build order specified by the+ <code>compBuildOrder</code> field of the given <code><a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code></p></div></div><div class="top"><p class="src"><a id="v:withComponentsInBuildOrder" class="def">withComponentsInBuildOrder</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>] -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withComponentsInBuildOrder" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: You have got a <code><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></code> right? Use <code><a href="Distribution-Types-LocalBuildInfo.html#v:withNeededTargetsInBuildOrder">withNeededTargetsInBuildOrder</a></code> on the <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>s you can <code>nodeKey</code> out.</p></div></div></div><div class="top"><p class="src"><a id="v:withComponentsLBI" class="def">withComponentsLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withComponentsLBI" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use withAllComponentsInBuildOrder</p></div></div></div><div class="top"><p class="src"><a id="v:withLibLBI" class="def">withLibLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withLibLBI" class="selflink">#</a></p><div class="doc"><p>Perform the action on each enabled <code><a href="Distribution-Types-PackageDescription.html#v:library">library</a></code> in the package+ description with the <code><a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:withExeLBI" class="def">withExeLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withExeLBI" class="selflink">#</a></p><div class="doc"><p>Perform the action on each enabled <code><a href="Distribution-Types-Executable.html#t:Executable">Executable</a></code> in the package+ description. Extended version of <code><a href="Distribution-Types-PackageDescription.html#v:withExe">withExe</a></code> that also gives corresponding+ build info.</p></div></div><div class="top"><p class="src"><a id="v:withBenchLBI" class="def">withBenchLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withBenchLBI" class="selflink">#</a></p><div class="doc"><p>Perform the action on each enabled <code><a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></code> in the package+ description.</p></div></div><div class="top"><p class="src"><a id="v:withTestLBI" class="def">withTestLBI</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withTestLBI" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:enabledTestLBIs" class="def">enabledTestLBIs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)] <a href="#v:enabledTestLBIs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:enabledBenchLBIs" class="def">enabledBenchLBIs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)] <a href="#v:enabledBenchLBIs" class="selflink">#</a></p></div><h1 id="g:2">Installation directories</h1><div class="top"><p class="src">module <a href="Distribution-Simple-InstallDirs.html">Distribution.Simple.InstallDirs</a></p></div><div class="top"><p class="src"><a id="v:absoluteInstallDirs" class="def">absoluteInstallDirs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:absoluteInstallDirs" class="selflink">#</a></p><div class="doc"><p>Backwards compatibility function which computes the InstallDirs+ assuming that <code>$libname</code> points to the public library (or some fake+ package identifier if there is no public library.) IF AT ALL+ POSSIBLE, please use <code><a href="Distribution-Simple-LocalBuildInfo.html#v:absoluteComponentInstallDirs">absoluteComponentInstallDirs</a></code> instead.</p></div></div><div class="top"><p class="src"><a id="v:prefixRelativeInstallDirs" class="def">prefixRelativeInstallDirs</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) <a href="#v:prefixRelativeInstallDirs" class="selflink">#</a></p><div class="doc"><p>Backwards compatibility function which computes the InstallDirs+ assuming that <code>$libname</code> points to the public library (or some fake+ package identifier if there is no public library.) IF AT ALL+ POSSIBLE, please use <code><a href="Distribution-Simple-LocalBuildInfo.html#v:prefixRelativeComponentInstallDirs">prefixRelativeComponentInstallDirs</a></code> instead.</p></div></div><div class="top"><p class="src"><a id="v:absoluteComponentInstallDirs" class="def">absoluteComponentInstallDirs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:absoluteComponentInstallDirs" class="selflink">#</a></p><div class="doc"><p>See <code><a href="Distribution-Simple-InstallDirs.html#v:absoluteInstallDirs">absoluteInstallDirs</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:prefixRelativeComponentInstallDirs" class="def">prefixRelativeComponentInstallDirs</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) <a href="#v:prefixRelativeComponentInstallDirs" class="selflink">#</a></p><div class="doc"><p>See <code><a href="Distribution-Simple-InstallDirs.html#v:prefixRelativeInstallDirs">prefixRelativeInstallDirs</a></code></p></div></div><div class="top"><p class="src"><a id="v:substPathTemplate" class="def">substPathTemplate</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:substPathTemplate" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-PackageIndex.html view
@@ -0,0 +1,63 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.PackageIndex</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) David Himmelstrup 2005<br />Bjorn Bringert 2007<br />Duncan Coutts 2008-2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.PackageIndex</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Package index data type</a></li><li><a href="#g:2">Creating an index</a></li><li><a href="#g:3">Updates</a></li><li><a href="#g:4">Queries</a><ul><li><a href="#g:5">Precise lookups</a></li><li><a href="#g:6">Case-insensitive searches</a></li><li><a href="#g:7">Bulk queries</a></li><li><a href="#g:8">Special queries</a></li></ul></li><li><a href="#g:9">Backwards compatibility</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>An index of packages whose primary key is <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>. Public libraries+ are additionally indexed by <code><a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></code> and <code><a href="Distribution-Version.html#t:Version">Version</a></code>.+ Technically, these are an index of *units* (so we should eventually+ rename it to <code>UnitIndex</code>); but in the absence of internal libraries+ or Backpack each unit is equivalent to a package.</p><p>While <code><a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a></code> is parametric over what it actually records,+ it is in fact only ever instantiated with a single element:+ The <code><a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></code> (defined here) contains a graph of+ <code>InstalledPackageInfo</code>s representing the packages in a+ package database stack. It is used in a variety of ways:</p><ul><li>The primary use to let Cabal access the same installed+ package database which is used by GHC during compilation.+ For example, this data structure is used by 'ghc-pkg'+ and <code>Cabal</code> to do consistency checks on the database+ (are the references closed).</li><li>Given a set of dependencies, we can compute the transitive+ closure of dependencies. This is to check if the versions+ of packages are consistent, and also needed by multiple+ tools (Haddock must be explicitly told about the every+ transitive package to do cross-package linking;+ preprocessors must know about the include paths of all+ transitive dependencies.)</li></ul><p>This <code><a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a></code> is NOT to be confused with+ <code><a href="Distribution-Client.html#v:PackageIndex">PackageIndex</a></code>, which indexes packages only by+ <code><a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></code> (this makes it suitable for indexing source packages,+ for which we don't know <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>s.)</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:InstalledPackageIndex">InstalledPackageIndex</a> = <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:PackageIndex">PackageIndex</a> a</li><li class="src short"><a href="#v:fromList">fromList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:merge">merge</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:insert">insert</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:deleteUnitId">deleteUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:deleteSourcePackageId">deleteSourcePackageId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:deletePackageName">deletePackageName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:lookupUnitId">lookupUnitId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:lookupComponentId">lookupComponentId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:lookupSourcePackageId">lookupSourcePackageId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> [a]</li><li class="src short"><a href="#v:lookupPackageId">lookupPackageId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:lookupPackageName">lookupPackageName</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> [(<a href="Distribution-Version.html#t:Version">Version</a>, [a])]</li><li class="src short"><a href="#v:lookupDependency">lookupDependency</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> [(<a href="Distribution-Version.html#t:Version">Version</a>, [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>])]</li><li class="src short"><a href="#v:lookupInternalDependency">lookupInternalDependency</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> [(<a href="Distribution-Version.html#t:Version">Version</a>, [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>])]</li><li class="src short"><a href="#v:searchByName">searchByName</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-PackageIndex.html#t:SearchResult">SearchResult</a> [a]</li><li class="src short"><span class="keyword">data</span> <a href="#t:SearchResult">SearchResult</a> a<ul class="subs"><li>= <a href="#v:None">None</a></li><li>| <a href="#v:Unambiguous">Unambiguous</a> a</li><li>| <a href="#v:Ambiguous">Ambiguous</a> [a]</li></ul></li><li class="src short"><a href="#v:searchByNameSubstring">searchByNameSubstring</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [a]</li><li class="src short"><a href="#v:allPackages">allPackages</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [a]</li><li class="src short"><a href="#v:allPackagesByName">allPackagesByName</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [(<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>, [a])]</li><li class="src short"><a href="#v:allPackagesBySourcePackageId">allPackagesBySourcePackageId</a> :: <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [(<a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a>, [a])]</li><li class="src short"><a href="#v:allPackagesBySourcePackageIdAndLibName">allPackagesBySourcePackageIdAndLibName</a> :: <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [((<a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>), [a])]</li><li class="src short"><a href="#v:brokenPackages">brokenPackages</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [(a, [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])]</li><li class="src short"><a href="#v:dependencyClosure">dependencyClosure</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> [(<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>, [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])]</li><li class="src short"><a href="#v:reverseDependencyClosure">reverseDependencyClosure</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> [a]</li><li class="src short"><a href="#v:topologicalOrder">topologicalOrder</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [a]</li><li class="src short"><a href="#v:reverseTopologicalOrder">reverseTopologicalOrder</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [a]</li><li class="src short"><a href="#v:dependencyInconsistencies">dependencyInconsistencies</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> [(DepUniqueKey, [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>])])]</li><li class="src short"><a href="#v:dependencyCycles">dependencyCycles</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [[a]]</li><li class="src short"><a href="#v:dependencyGraph">dependencyGraph</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Graph">Graph</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Vertex">Vertex</a> -> a, <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Vertex">Vertex</a>)</li><li class="src short"><a href="#v:moduleNameIndex">moduleNameIndex</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>]</li><li class="src short"><a href="#v:deleteInstalledPackageId">deleteInstalledPackageId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li class="src short"><a href="#v:lookupInstalledPackageId">lookupInstalledPackageId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li></ul></div><div id="interface"><h1 id="g:1">Package index data type</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:InstalledPackageIndex" class="def">InstalledPackageIndex</a> = <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#t:InstalledPackageIndex" class="selflink">#</a></p><div class="doc"><p>The default package index which contains <code>InstalledPackageInfo</code>. Normally+ use this.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PackageIndex" class="def">PackageIndex</a> a <a href="#t:PackageIndex" class="selflink">#</a></p><div class="doc"><p>The collection of information about packages from one or more <code>PackageDB</code>s.+ These packages generally should have an instance of <code><a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a></code></p><p>Packages are uniquely identified in by their <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>, they can+ also be efficiently looked up by package name or by name and version.</p></div><div class="subs instances"><p id="control.i:PackageIndex" class="caption collapser" onclick="toggleSection('i:PackageIndex')">Instances</p><div id="section.i:PackageIndex" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIndex:Eq:1" class="instance expander" onclick="toggleSection('i:id:PackageIndex:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a)</span> <a href="#t:PackageIndex" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIndex:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIndex:Read:2" class="instance expander" onclick="toggleSection('i:id:PackageIndex:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a)</span> <a href="#t:PackageIndex" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIndex:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a) <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a) <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIndex:Show:3" class="instance expander" onclick="toggleSection('i:id:PackageIndex:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a)</span> <a href="#t:PackageIndex" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIndex:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIndex:Generic:4" class="instance expander" onclick="toggleSection('i:id:PackageIndex:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a)</span> <a href="#t:PackageIndex" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIndex:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a) x -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIndex:Semigroup:5" class="instance expander" onclick="toggleSection('i:id:PackageIndex:Semigroup:5')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>)</span> <a href="#t:PackageIndex" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIndex:Semigroup:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>) -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIndex:Monoid:6" class="instance expander" onclick="toggleSection('i:id:PackageIndex:Monoid:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>)</span> <a href="#t:PackageIndex" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIndex:Monoid:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] -> <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIndex:Binary:7" class="instance expander" onclick="toggleSection('i:id:PackageIndex:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a)</span> <a href="#t:PackageIndex" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIndex:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIndex:Rep:8" class="instance expander" onclick="toggleSection('i:id:PackageIndex:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a)</span> <a href="#t:PackageIndex" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIndex:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "PackageIndex" "Distribution.Simple.PackageIndex" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PackageIndex" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "unitIdIndex") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:SourceStrict">SourceStrict</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedStrict">DecidedStrict</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> a))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "packageIdIndex") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:SourceStrict">SourceStrict</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedStrict">DecidedStrict</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> (<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>) (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Version.html#t:Version">Version</a> [a]))))))</div></div></td></tr></table></div></div></div><h1 id="g:2">Creating an index</h1><div class="top"><p class="src"><a id="v:fromList" class="def">fromList</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:fromList" class="selflink">#</a></p><div class="doc"><p>Build an index out of a bunch of packages.</p><p>If there are duplicates by <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> then later ones mask earlier+ ones.</p></div></div><h1 id="g:3">Updates</h1><div class="top"><p class="src"><a id="v:merge" class="def">merge</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:merge" class="selflink">#</a></p><div class="doc"><p>Merge two indexes.</p><p>Packages from the second mask packages from the first if they have the exact+ same <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>.</p><p>For packages with the same source <code><a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></code>, packages from the second are+ "preferred" over those from the first. Being preferred means they are top+ result when we do a lookup by source <code><a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></code>. This is the mechanism we+ use to prefer user packages over global packages.</p></div></div><div class="top"><p class="src"><a id="v:insert" class="def">insert</a> :: <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:insert" class="selflink">#</a></p><div class="doc"><p>Inserts a single package into the index.</p><p>This is equivalent to (but slightly quicker than) using <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> or+ <code><a href="Distribution-Simple-PackageIndex.html#v:merge">merge</a></code> with a singleton index.</p></div></div><div class="top"><p class="src"><a id="v:deleteUnitId" class="def">deleteUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:deleteUnitId" class="selflink">#</a></p><div class="doc"><p>Removes a single installed package from the index.</p></div></div><div class="top"><p class="src"><a id="v:deleteSourcePackageId" class="def">deleteSourcePackageId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:deleteSourcePackageId" class="selflink">#</a></p><div class="doc"><p>Removes all packages with this source <code><a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></code> from the index.</p></div></div><div class="top"><p class="src"><a id="v:deletePackageName" class="def">deletePackageName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:deletePackageName" class="selflink">#</a></p><div class="doc"><p>Removes all packages with this (case-sensitive) name from the index.</p><p>NB: Does NOT delete internal libraries from this package.</p></div></div><h1 id="g:4">Queries</h1><h2 id="g:5">Precise lookups</h2><div class="top"><p class="src"><a id="v:lookupUnitId" class="def">lookupUnitId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:lookupUnitId" class="selflink">#</a></p><div class="doc"><p>Does a lookup by unit identifier.</p><p>Since multiple package DBs mask each other by <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>,+ then we get back at most one package.</p></div></div><div class="top"><p class="src"><a id="v:lookupComponentId" class="def">lookupComponentId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:lookupComponentId" class="selflink">#</a></p><div class="doc"><p>Does a lookup by component identifier. In the absence+ of Backpack, this is just a <code><a href="Distribution-Simple-PackageIndex.html#v:lookupUnitId">lookupUnitId</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:lookupSourcePackageId" class="def">lookupSourcePackageId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> [a] <a href="#v:lookupSourcePackageId" class="selflink">#</a></p><div class="doc"><p>Does a lookup by source package id (name & version).</p><p>There can be multiple installed packages with the same source <code><a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></code>+ but different <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>. They are returned in order of+ preference, with the most preferred first.</p></div></div><div class="top"><p class="src"><a id="v:lookupPackageId" class="def">lookupPackageId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:lookupPackageId" class="selflink">#</a></p><div class="doc"><p>Convenient alias of <code><a href="Distribution-Simple-PackageIndex.html#v:lookupSourcePackageId">lookupSourcePackageId</a></code>, but assuming only+ one package per package ID.</p></div></div><div class="top"><p class="src"><a id="v:lookupPackageName" class="def">lookupPackageName</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> [(<a href="Distribution-Version.html#t:Version">Version</a>, [a])] <a href="#v:lookupPackageName" class="selflink">#</a></p><div class="doc"><p>Does a lookup by source package name.</p></div></div><div class="top"><p class="src"><a id="v:lookupDependency" class="def">lookupDependency</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> [(<a href="Distribution-Version.html#t:Version">Version</a>, [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>])] <a href="#v:lookupDependency" class="selflink">#</a></p><div class="doc"><p>Does a lookup by source package name and a range of versions.</p><p>We get back any number of versions of the specified package name, all+ satisfying the version range constraint.</p><p>This does NOT work for internal dependencies, DO NOT use this+ function on those; use <code><a href="Distribution-Simple-PackageIndex.html#v:lookupInternalDependency">lookupInternalDependency</a></code> instead.</p><p>INVARIANT: List of eligible <code><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></code> is non-empty.</p></div></div><div class="top"><p class="src"><a id="v:lookupInternalDependency" class="def">lookupInternalDependency</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> [(<a href="Distribution-Version.html#t:Version">Version</a>, [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>])] <a href="#v:lookupInternalDependency" class="selflink">#</a></p><div class="doc"><p>Does a lookup by source package name and a range of versions.</p><p>We get back any number of versions of the specified package name, all+ satisfying the version range constraint.</p><p>INVARIANT: List of eligible <code><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></code> is non-empty.</p></div></div><h2 id="g:6">Case-insensitive searches</h2><div class="top"><p class="src"><a id="v:searchByName" class="def">searchByName</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-PackageIndex.html#t:SearchResult">SearchResult</a> [a] <a href="#v:searchByName" class="selflink">#</a></p><div class="doc"><p>Does a case-insensitive search by package name.</p><p>If there is only one package that compares case-insensitively to this name+ then the search is unambiguous and we get back all versions of that package.+ If several match case-insensitively but one matches exactly then it is also+ unambiguous.</p><p>If however several match case-insensitively and none match exactly then we+ have an ambiguous result, and we get back all the versions of all the+ packages. The list of ambiguous results is split by exact package name. So+ it is a non-empty list of non-empty lists.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SearchResult" class="def">SearchResult</a> a <a href="#t:SearchResult" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:None" class="def">None</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Unambiguous" class="def">Unambiguous</a> a</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Ambiguous" class="def">Ambiguous</a> [a]</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:searchByNameSubstring" class="def">searchByNameSubstring</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [a] <a href="#v:searchByNameSubstring" class="selflink">#</a></p><div class="doc"><p>Does a case-insensitive substring search by package name.</p><p>That is, all packages that contain the given string in their name.</p></div></div><h2 id="g:7">Bulk queries</h2><div class="top"><p class="src"><a id="v:allPackages" class="def">allPackages</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [a] <a href="#v:allPackages" class="selflink">#</a></p><div class="doc"><p>Get all the packages from the index.</p></div></div><div class="top"><p class="src"><a id="v:allPackagesByName" class="def">allPackagesByName</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [(<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>, [a])] <a href="#v:allPackagesByName" class="selflink">#</a></p><div class="doc"><p>Get all the packages from the index.</p><p>They are grouped by package name (case-sensitively).</p><p>(Doesn't include private libraries.)</p></div></div><div class="top"><p class="src"><a id="v:allPackagesBySourcePackageId" class="def">allPackagesBySourcePackageId</a> :: <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [(<a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a>, [a])] <a href="#v:allPackagesBySourcePackageId" class="selflink">#</a></p><div class="doc"><p>Get all the packages from the index.</p><p>They are grouped by source package id (package name and version).</p><p>(Doesn't include private libraries)</p></div></div><div class="top"><p class="src"><a id="v:allPackagesBySourcePackageIdAndLibName" class="def">allPackagesBySourcePackageIdAndLibName</a> :: <a href="Distribution-Package.html#t:HasUnitId">HasUnitId</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [((<a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>), [a])] <a href="#v:allPackagesBySourcePackageIdAndLibName" class="selflink">#</a></p><div class="doc"><p>Get all the packages from the index.</p><p>They are grouped by source package id and library name.</p><p>This DOES include internal libraries.</p></div></div><h2 id="g:8">Special queries</h2><div class="top"><p class="src"><a id="v:brokenPackages" class="def">brokenPackages</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [(a, [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])] <a href="#v:brokenPackages" class="selflink">#</a></p><div class="doc"><p>All packages that have immediate dependencies that are not in the index.</p><p>Returns such packages along with the dependencies that they're missing.</p></div></div><div class="top"><p class="src"><a id="v:dependencyClosure" class="def">dependencyClosure</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> [(<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>, [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])] <a href="#v:dependencyClosure" class="selflink">#</a></p><div class="doc"><p>Tries to take the transitive closure of the package dependencies.</p><p>If the transitive closure is complete then it returns that subset of the+ index. Otherwise it returns the broken packages as in <code><a href="Distribution-Simple-PackageIndex.html#v:brokenPackages">brokenPackages</a></code>.</p><ul><li>Note that if the result is <code>Right []</code> it is because at least one of+ the original given <code><a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></code>s do not occur in the index.</li></ul></div></div><div class="top"><p class="src"><a id="v:reverseDependencyClosure" class="def">reverseDependencyClosure</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> [a] <a href="#v:reverseDependencyClosure" class="selflink">#</a></p><div class="doc"><p>Takes the transitive closure of the packages reverse dependencies.</p><ul><li>The given <code><a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></code>s must be in the index.</li></ul></div></div><div class="top"><p class="src"><a id="v:topologicalOrder" class="def">topologicalOrder</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [a] <a href="#v:topologicalOrder" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:reverseTopologicalOrder" class="def">reverseTopologicalOrder</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [a] <a href="#v:reverseTopologicalOrder" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:dependencyInconsistencies" class="def">dependencyInconsistencies</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> [(DepUniqueKey, [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>])])] <a href="#v:dependencyInconsistencies" class="selflink">#</a></p><div class="doc"><p>Given a package index where we assume we want to use all the packages+ (use <code><a href="Distribution-Simple-PackageIndex.html#v:dependencyClosure">dependencyClosure</a></code> if you need to get such a index subset) find out+ if the dependencies within it use consistent versions of each package.+ Return all cases where multiple packages depend on different versions of+ some other package.</p><p>Each element in the result is a package name along with the packages that+ depend on it and the versions they require. These are guaranteed to be+ distinct.</p></div></div><div class="top"><p class="src"><a id="v:dependencyCycles" class="def">dependencyCycles</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> [[a]] <a href="#v:dependencyCycles" class="selflink">#</a></p><div class="doc"><p>Find if there are any cycles in the dependency graph. If there are no+ cycles the result is <code>[]</code>.</p><p>This actually computes the strongly connected components. So it gives us a+ list of groups of packages where within each group they all depend on each+ other, directly or indirectly.</p></div></div><div class="top"><p class="src"><a id="v:dependencyGraph" class="def">dependencyGraph</a> :: <a href="Distribution-Package.html#t:PackageInstalled">PackageInstalled</a> a => <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Graph">Graph</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Vertex">Vertex</a> -> a, <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/containers-0.5.10.2/Data-Graph.html#t:Vertex">Vertex</a>) <a href="#v:dependencyGraph" class="selflink">#</a></p><div class="doc"><p>Builds a graph of the package dependencies.</p><p>Dependencies on other packages that are not in the index are discarded.+ You can check if there are any such dependencies with <code><a href="Distribution-Simple-PackageIndex.html#v:brokenPackages">brokenPackages</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:moduleNameIndex" class="def">moduleNameIndex</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] <a href="#v:moduleNameIndex" class="selflink">#</a></p><div class="doc"><p>A rough approximation of GHC's module finder, takes a+ <code><a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></code> and turns it into a map from module names to their+ source packages. It's used to initialize the <code>build-deps</code> field in <code>cabal+ init</code>.</p></div></div><h1 id="g:9">Backwards compatibility</h1><div class="top"><p class="src"><a id="v:deleteInstalledPackageId" class="def">deleteInstalledPackageId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> -> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:deleteInstalledPackageId" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use deleteUnitId instead</p></div><p>Backwards compatibility wrapper for Cabal pre-1.24.</p></div></div><div class="top"><p class="src"><a id="v:lookupInstalledPackageId" class="def">lookupInstalledPackageId</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a> a -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:lookupInstalledPackageId" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use lookupUnitId instead</p></div><p>Backwards compatibility for Cabal pre-1.24.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-PreProcess-Unlit.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.PreProcess.Unlit</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>...</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.PreProcess.Unlit</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Remove the "literal" markups from a Haskell source file, including+ "<code>></code>", "<code>\begin{code}</code>", "<code>\end{code}</code>", and "<code>#</code>"</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:unlit">unlit</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:plain">plain</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:unlit" class="def">unlit</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unlit" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-Simple-PreProcess-Unlit.html#v:unlit">unlit</a></code> takes a filename (for error reports), and transforms the+ given string, to eliminate the literate comments from the program text.</p></div></div><div class="top"><p class="src"><a id="v:plain" class="def">plain</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:plain" class="selflink">#</a></p><div class="doc"><p>No unliteration.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-PreProcess.html view
@@ -0,0 +1,41 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.PreProcess</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) 2003-2005 Isaac Jones Malcolm Wallace</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.PreProcess</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This defines a <code><a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></code> abstraction which represents a pre-processor+ that can transform one kind of file into another. There is also a+ <code><a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a></code> which is a combination of a file extension and a function+ for configuring a <code><a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></code>. It defines a bunch of known built-in+ preprocessors like <code>cpp</code>, <code>cpphs</code>, <code>c2hs</code>, <code>hsc2hs</code>, <code>happy</code>, <code>alex</code> etc and+ lists them in <code><a href="Distribution-Simple-PreProcess.html#v:knownSuffixHandlers">knownSuffixHandlers</a></code>. On top of this it provides a function+ for actually preprocessing some sources given a bunch of known suffix+ handlers. This module is not as good as it could be, it could really do with+ a rewrite to address some of the problems we have with pre-processors.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:preprocessComponent">preprocessComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:preprocessExtras">preprocessExtras</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li class="src short"><a href="#v:knownSuffixHandlers">knownSuffixHandlers</a> :: [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</li><li class="src short"><a href="#v:ppSuffixes">ppSuffixes</a> :: [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><span class="keyword">type</span> <a href="#t:PPSuffixHandler">PPSuffixHandler</a> = (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:PreProcessor">PreProcessor</a> = <a href="#v:PreProcessor">PreProcessor</a> {<ul class="subs"><li><a href="#v:platformIndependent">platformIndependent</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:runPreProcessor">runPreProcessor</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul>}</li><li class="src short"><a href="#v:mkSimplePreProcessor">mkSimplePreProcessor</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:runSimplePreProcessor">runSimplePreProcessor</a> :: <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:ppCpp">ppCpp</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></li><li class="src short"><a href="#v:ppCpp-39-">ppCpp'</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></li><li class="src short"><a href="#v:ppGreenCard">ppGreenCard</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></li><li class="src short"><a href="#v:ppC2hs">ppC2hs</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></li><li class="src short"><a href="#v:ppHsc2hs">ppHsc2hs</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></li><li class="src short"><a href="#v:ppHappy">ppHappy</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></li><li class="src short"><a href="#v:ppAlex">ppAlex</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></li><li class="src short"><a href="#v:ppUnlit">ppUnlit</a> :: <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a></li><li class="src short"><a href="#v:platformDefines">platformDefines</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:preprocessComponent" class="def">preprocessComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:preprocessComponent" class="selflink">#</a></p><div class="doc"><p>Apply preprocessors to the sources from <code><a href="Distribution-Types-BuildInfo.html#v:hsSourceDirs">hsSourceDirs</a></code> for a given+ component (lib, exe, or test suite).</p></div></div><div class="top"><p class="src"><a id="v:preprocessExtras" class="def">preprocessExtras</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] <a href="#v:preprocessExtras" class="selflink">#</a></p><div class="doc"><p>Find any extra C sources generated by preprocessing that need to+ be added to the component (addresses issue #238).</p></div></div><div class="top"><p class="src"><a id="v:knownSuffixHandlers" class="def">knownSuffixHandlers</a> :: [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] <a href="#v:knownSuffixHandlers" class="selflink">#</a></p><div class="doc"><p>Standard preprocessors: GreenCard, c2hs, hsc2hs, happy, alex and cpphs.</p></div></div><div class="top"><p class="src"><a id="v:ppSuffixes" class="def">ppSuffixes</a> :: [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:ppSuffixes" class="selflink">#</a></p><div class="doc"><p>Convenience function; get the suffixes of these preprocessors.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:PPSuffixHandler" class="def">PPSuffixHandler</a> = (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a>) <a href="#t:PPSuffixHandler" class="selflink">#</a></p><div class="doc"><p>A preprocessor for turning non-Haskell files with the given extension+ into plain Haskell source files.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PreProcessor" class="def">PreProcessor</a> <a href="#t:PreProcessor" class="selflink">#</a></p><div class="doc"><p>The interface to a preprocessor, which may be implemented using an+ external program, but need not be. The arguments are the name of+ the input file, the name of the output file and a verbosity level.+ Here is a simple example that merely prepends a comment to the given+ source file:</p><pre>ppTestHandler :: PreProcessor+ppTestHandler =+ PreProcessor {+ platformIndependent = True,+ runPreProcessor = mkSimplePreProcessor $ \inFile outFile verbosity ->+ do info verbosity (inFile++" has been preprocessed to "++outFile)+ stuff <- readFile inFile+ writeFile outFile ("-- preprocessed as a test\n\n" ++ stuff)+ return ExitSuccess</pre><p>We split the input and output file names into a base directory and the+ rest of the file name. The input base dir is the path in the list of search+ dirs that this file was found in. The output base dir is the build dir where+ all the generated source files are put.</p><p>The reason for splitting it up this way is that some pre-processors don't+ simply generate one output .hs file from one input file but have+ dependencies on other generated files (notably c2hs, where building one+ .hs file may require reading other .chi files, and then compiling the .hs+ file may require reading a generated .h file). In these cases the generated+ files need to embed relative path names to each other (eg the generated .hs+ file mentions the .h file in the FFI imports). This path must be relative to+ the base directory where the generated files are located, it cannot be+ relative to the top level of the build tree because the compilers do not+ look for .h files relative to there, ie we do not use "-I .", instead we+ use "-I dist/build" (or whatever dist dir has been set by the user)</p><p>Most pre-processors do not care of course, so mkSimplePreProcessor and+ runSimplePreProcessor functions handle the simple case.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:PreProcessor" class="def">PreProcessor</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:platformIndependent" class="def">platformIndependent</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:runPreProcessor" class="def">runPreProcessor</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:mkSimplePreProcessor" class="def">mkSimplePreProcessor</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:mkSimplePreProcessor" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:runSimplePreProcessor" class="def">runSimplePreProcessor</a> :: <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:runSimplePreProcessor" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ppCpp" class="def">ppCpp</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> <a href="#v:ppCpp" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ppCpp-39-" class="def">ppCpp'</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> <a href="#v:ppCpp-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ppGreenCard" class="def">ppGreenCard</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> <a href="#v:ppGreenCard" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ppC2hs" class="def">ppC2hs</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> <a href="#v:ppC2hs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ppHsc2hs" class="def">ppHsc2hs</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> <a href="#v:ppHsc2hs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ppHappy" class="def">ppHappy</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> <a href="#v:ppHappy" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ppAlex" class="def">ppAlex</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> <a href="#v:ppAlex" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ppUnlit" class="def">ppUnlit</a> :: <a href="Distribution-Simple-PreProcess.html#t:PreProcessor">PreProcessor</a> <a href="#v:ppUnlit" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:platformDefines" class="def">platformDefines</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:platformDefines" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Ar.html view
@@ -0,0 +1,14 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Ar</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Ar</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides an library interface to the <code>ar</code> program.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:createArLibArchive">createArLibArchive</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:multiStageProgramInvocation">multiStageProgramInvocation</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> (<a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>, <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>, <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>) -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:createArLibArchive" class="def">createArLibArchive</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:createArLibArchive" class="selflink">#</a></p><div class="doc"><p>Call <code>ar</code> to create a library archive from a bunch of object files.</p></div></div><div class="top"><p class="src"><a id="v:multiStageProgramInvocation" class="def">multiStageProgramInvocation</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> (<a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>, <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>, <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>) -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>] <a href="#v:multiStageProgramInvocation" class="selflink">#</a></p><div class="doc"><p>Like the unix xargs program. Useful for when we've got very long command+ lines that might overflow an OS limit on command line length and so you+ need to invoke a command multiple times to get all the args in.</p><p>It takes four template invocations corresponding to the simple, initial,+ middle and last invocations. If the number of args given is small enough+ that we can get away with just a single invocation then the simple one is+ used:</p><pre>$ simple args</pre><p>If the number of args given means that we need to use multiple invocations+ then the templates for the initial, middle and last invocations are used:</p><pre>$ initial args_0+$ middle args_1+$ middle args_2+ ...+$ final args_n</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Builtin.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Builtin</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2006 Duncan Coutts 2007-2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Builtin</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The collection of unconfigured and configured programs</a></li><li><a href="#g:2">Programs that Cabal knows about</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The module defines all the known built-in <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code>s.</p><p>Where possible we try to find their version numbers.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:builtinPrograms">builtinPrograms</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>]</li><li class="src short"><a href="#v:ghcProgram">ghcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:ghcPkgProgram">ghcPkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:runghcProgram">runghcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:ghcjsProgram">ghcjsProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:ghcjsPkgProgram">ghcjsPkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:lhcProgram">lhcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:lhcPkgProgram">lhcPkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:hmakeProgram">hmakeProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:jhcProgram">jhcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:haskellSuiteProgram">haskellSuiteProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:haskellSuitePkgProgram">haskellSuitePkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:uhcProgram">uhcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:gccProgram">gccProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:arProgram">arProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:stripProgram">stripProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:happyProgram">happyProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:alexProgram">alexProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:hsc2hsProgram">hsc2hsProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:c2hsProgram">c2hsProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:cpphsProgram">cpphsProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:hscolourProgram">hscolourProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:doctestProgram">doctestProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:haddockProgram">haddockProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:greencardProgram">greencardProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:ldProgram">ldProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:tarProgram">tarProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:cppProgram">cppProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:pkgConfigProgram">pkgConfigProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:hpcProgram">hpcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li></ul></div><div id="interface"><h1 id="g:1">The collection of unconfigured and configured programs</h1><div class="top"><p class="src"><a id="v:builtinPrograms" class="def">builtinPrograms</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>] <a href="#v:builtinPrograms" class="selflink">#</a></p><div class="doc"><p>The default list of programs.+ These programs are typically used internally to Cabal.</p></div></div><h1 id="g:2">Programs that Cabal knows about</h1><div class="top"><p class="src"><a id="v:ghcProgram" class="def">ghcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:ghcProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ghcPkgProgram" class="def">ghcPkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:ghcPkgProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:runghcProgram" class="def">runghcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:runghcProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ghcjsProgram" class="def">ghcjsProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:ghcjsProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ghcjsPkgProgram" class="def">ghcjsPkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:ghcjsPkgProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lhcProgram" class="def">lhcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:lhcProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lhcPkgProgram" class="def">lhcPkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:lhcPkgProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hmakeProgram" class="def">hmakeProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:hmakeProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:jhcProgram" class="def">jhcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:jhcProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haskellSuiteProgram" class="def">haskellSuiteProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:haskellSuiteProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haskellSuitePkgProgram" class="def">haskellSuitePkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:haskellSuitePkgProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:uhcProgram" class="def">uhcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:uhcProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:gccProgram" class="def">gccProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:gccProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:arProgram" class="def">arProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:arProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:stripProgram" class="def">stripProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:stripProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:happyProgram" class="def">happyProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:happyProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:alexProgram" class="def">alexProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:alexProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hsc2hsProgram" class="def">hsc2hsProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:hsc2hsProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:c2hsProgram" class="def">c2hsProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:c2hsProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:cpphsProgram" class="def">cpphsProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:cpphsProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hscolourProgram" class="def">hscolourProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:hscolourProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:doctestProgram" class="def">doctestProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:doctestProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haddockProgram" class="def">haddockProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:haddockProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:greencardProgram" class="def">greencardProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:greencardProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ldProgram" class="def">ldProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:ldProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:tarProgram" class="def">tarProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:tarProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:cppProgram" class="def">cppProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:cppProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pkgConfigProgram" class="def">pkgConfigProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:pkgConfigProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hpcProgram" class="def">hpcProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:hpcProgram" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Db.html view
@@ -0,0 +1,54 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Db</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2006 Duncan Coutts 2007-2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Db</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The collection of configured programs we can run</a><ul><li><a href="#g:2">Query and manipulate the program db</a></li><li><a href="#g:3">Query and manipulate the program db</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This provides a <code><a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></code> type which holds configured and not-yet+ configured programs. It is the parameter to lots of actions elsewhere in+ Cabal that need to look up and run programs. If we had a Cabal monad,+ the <code><a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></code> would probably be a reader or state component of it.</p><p>One nice thing about using it is that any program that is+ registered with Cabal will get some "configure" and ".cabal"+ helpers like --with-foo-args --foo-path= and extra-foo-args.</p><p>There's also a hook for adding programs in a Setup.lhs script. See+ hookedPrograms in <code><a href="Distribution-Simple.html#v:UserHooks">UserHooks</a></code>. This gives a+ hook user the ability to get the above flags and such so that they+ don't have to write all the PATH logic inside Setup.lhs.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:emptyProgramDb">emptyProgramDb</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:defaultProgramDb">defaultProgramDb</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:restoreProgramDb">restoreProgramDb</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:addKnownProgram">addKnownProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:addKnownPrograms">addKnownPrograms</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:lookupKnownProgram">lookupKnownProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><a href="#v:knownPrograms">knownPrograms</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> [(<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>)]</li><li class="src short"><a href="#v:getProgramSearchPath">getProgramSearchPath</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a></li><li class="src short"><a href="#v:setProgramSearchPath">setProgramSearchPath</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:modifyProgramSearchPath">modifyProgramSearchPath</a> :: (<a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a>) -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifyPath">userSpecifyPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifyPaths">userSpecifyPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userMaybeSpecifyPath">userMaybeSpecifyPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifyArgs">userSpecifyArgs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="Distribution-Simple-Program-Types.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifyArgss">userSpecifyArgss</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="Distribution-Simple-Program-Types.html#t:ProgArg">ProgArg</a>])] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifiedArgs">userSpecifiedArgs</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Program-Types.html#t:ProgArg">ProgArg</a>]</li><li class="src short"><a href="#v:lookupProgram">lookupProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></li><li class="src short"><a href="#v:updateProgram">updateProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:configuredPrograms">configuredPrograms</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>]</li><li class="src short"><a href="#v:configureProgram">configureProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:configureAllKnownPrograms">configureAllKnownPrograms</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:unconfigureProgram">unconfigureProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:lookupProgramVersion">lookupProgramVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> (<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Version.html#t:Version">Version</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>))</li><li class="src short"><a href="#v:reconfigurePrograms">reconfigurePrograms</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="Distribution-Simple-Program-Types.html#t:ProgArg">ProgArg</a>])] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:requireProgram">requireProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:requireProgramVersion">requireProgramVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Version.html#t:Version">Version</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li></ul></div><div id="interface"><h1 id="g:1">The collection of configured programs we can run</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProgramDb" class="def">ProgramDb</a> <a href="#t:ProgramDb" class="selflink">#</a></p><div class="doc"><p>The configuration is a collection of information about programs. It+ contains information both about configured programs and also about programs+ that we are yet to configure.</p><p>The idea is that we start from a collection of unconfigured programs and one+ by one we try to configure them at which point we move them into the+ configured collection. For unconfigured programs we record not just the+ <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code> but also any user-provided arguments and location for the program.</p></div><div class="subs instances"><p id="control.i:ProgramDb" class="caption collapser" onclick="toggleSection('i:ProgramDb')">Instances</p><div id="section.i:ProgramDb" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramDb:Read:1" class="instance expander" onclick="toggleSection('i:id:ProgramDb:Read:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></span> <a href="#t:ProgramDb" class="selflink">#</a></td><td class="doc"><p>Note that this instance does not preserve the known <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code>s.+ See <code><a href="Distribution-Simple-Program-Db.html#v:restoreProgramDb">restoreProgramDb</a></code> for details.</p></td></tr><tr><td colspan="2"><div id="section.i:id:ProgramDb:Read:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramDb:Show:2" class="instance expander" onclick="toggleSection('i:id:ProgramDb:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></span> <a href="#t:ProgramDb" class="selflink">#</a></td><td class="doc"><p>Note that this instance does not preserve the known <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code>s.+ See <code><a href="Distribution-Simple-Program-Db.html#v:restoreProgramDb">restoreProgramDb</a></code> for details.</p></td></tr><tr><td colspan="2"><div id="section.i:id:ProgramDb:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramDb:Binary:3" class="instance expander" onclick="toggleSection('i:id:ProgramDb:Binary:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></span> <a href="#t:ProgramDb" class="selflink">#</a></td><td class="doc"><p>Note that this instance does not preserve the known <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code>s.+ See <code><a href="Distribution-Simple-Program-Db.html#v:restoreProgramDb">restoreProgramDb</a></code> for details.</p></td></tr><tr><td colspan="2"><div id="section.i:id:ProgramDb:Binary:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyProgramDb" class="def">emptyProgramDb</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:emptyProgramDb" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultProgramDb" class="def">defaultProgramDb</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:defaultProgramDb" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:restoreProgramDb" class="def">restoreProgramDb</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:restoreProgramDb" class="selflink">#</a></p><div class="doc"><p>The 'Read'\/'Show' and <code><a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a></code> instances do not preserve all the+ unconfigured <code>Programs</code> because <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code> is not in 'Read'\/'Show' because+ it contains functions. So to fully restore a deserialised <code><a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></code> use+ this function to add back all the known <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code>s.</p><ul><li>It does not add the default programs, but you probably want them, use+ <code><a href="Distribution-Simple-Program-Builtin.html#v:builtinPrograms">builtinPrograms</a></code> in addition to any extra you might need.</li></ul></div></div><h2 id="g:2">Query and manipulate the program db</h2><div class="top"><p class="src"><a id="v:addKnownProgram" class="def">addKnownProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:addKnownProgram" class="selflink">#</a></p><div class="doc"><p>Add a known program that we may configure later</p></div></div><div class="top"><p class="src"><a id="v:addKnownPrograms" class="def">addKnownPrograms</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:addKnownPrograms" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lookupKnownProgram" class="def">lookupKnownProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:lookupKnownProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:knownPrograms" class="def">knownPrograms</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> [(<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>)] <a href="#v:knownPrograms" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getProgramSearchPath" class="def">getProgramSearchPath</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> <a href="#v:getProgramSearchPath" class="selflink">#</a></p><div class="doc"><p>Get the current <code><a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a></code> used by the <code><a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></code>.+ This is the default list of locations where programs are looked for when+ configuring them. This can be overridden for specific programs (with+ <code><a href="Distribution-Simple-Program-Db.html#v:userSpecifyPath">userSpecifyPath</a></code>), and specific known programs can modify or ignore this+ search path in their own configuration code.</p></div></div><div class="top"><p class="src"><a id="v:setProgramSearchPath" class="def">setProgramSearchPath</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:setProgramSearchPath" class="selflink">#</a></p><div class="doc"><p>Change the current <code><a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a></code> used by the <code><a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></code>.+ This will affect programs that are configured from here on, so you+ should usually set it before configuring any programs.</p></div></div><div class="top"><p class="src"><a id="v:modifyProgramSearchPath" class="def">modifyProgramSearchPath</a> :: (<a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a>) -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:modifyProgramSearchPath" class="selflink">#</a></p><div class="doc"><p>Modify the current <code><a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a></code> used by the <code><a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></code>.+ This will affect programs that are configured from here on, so you+ should usually modify it before configuring any programs.</p></div></div><div class="top"><p class="src"><a id="v:userSpecifyPath" class="def">userSpecifyPath</a> <a href="#v:userSpecifyPath" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Program name</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>user-specified path to the program</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>User-specify this path. Basically override any path information+ for this program in the configuration. If it's not a known+ program ignore it.</p></div></div><div class="top"><p class="src"><a id="v:userSpecifyPaths" class="def">userSpecifyPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:userSpecifyPaths" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Program-Db.html#v:userSpecifyPath">userSpecifyPath</a></code> but for a list of progs and their paths.</p></div></div><div class="top"><p class="src"><a id="v:userMaybeSpecifyPath" class="def">userMaybeSpecifyPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:userMaybeSpecifyPath" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:userSpecifyArgs" class="def">userSpecifyArgs</a> <a href="#v:userSpecifyArgs" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Program name</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-Program-Types.html#t:ProgArg">ProgArg</a>]</td><td class="doc"><p>user-specified args</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>User-specify the arguments for this program. Basically override+ any args information for this program in the configuration. If it's+ not a known program, ignore it..</p></div></div><div class="top"><p class="src"><a id="v:userSpecifyArgss" class="def">userSpecifyArgss</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="Distribution-Simple-Program-Types.html#t:ProgArg">ProgArg</a>])] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:userSpecifyArgss" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Program-Db.html#v:userSpecifyPath">userSpecifyPath</a></code> but for a list of progs and their args.</p></div></div><div class="top"><p class="src"><a id="v:userSpecifiedArgs" class="def">userSpecifiedArgs</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Program-Types.html#t:ProgArg">ProgArg</a>] <a href="#v:userSpecifiedArgs" class="selflink">#</a></p><div class="doc"><p>Get any extra args that have been previously specified for a program.</p></div></div><div class="top"><p class="src"><a id="v:lookupProgram" class="def">lookupProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:lookupProgram" class="selflink">#</a></p><div class="doc"><p>Try to find a configured program</p></div></div><div class="top"><p class="src"><a id="v:updateProgram" class="def">updateProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:updateProgram" class="selflink">#</a></p><div class="doc"><p>Update a configured program in the database.</p></div></div><div class="top"><p class="src"><a id="v:configuredPrograms" class="def">configuredPrograms</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>] <a href="#v:configuredPrograms" class="selflink">#</a></p><div class="doc"><p>List all configured programs.</p></div></div><h2 id="g:3">Query and manipulate the program db</h2><div class="top"><p class="src"><a id="v:configureProgram" class="def">configureProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:configureProgram" class="selflink">#</a></p><div class="doc"><p>Try to configure a specific program. If the program is already included in+ the collection of unconfigured programs then we use any user-supplied+ location and arguments. If the program gets configured successfully it gets+ added to the configured collection.</p><p>Note that it is not a failure if the program cannot be configured. It's only+ a failure if the user supplied a location and the program could not be found+ at that location.</p><p>The reason for it not being a failure at this stage is that we don't know up+ front all the programs we will need, so we try to configure them all.+ To verify that a program was actually successfully configured use+ <code><a href="Distribution-Simple-Program-Db.html#v:requireProgram">requireProgram</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:configureAllKnownPrograms" class="def">configureAllKnownPrograms</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:configureAllKnownPrograms" class="selflink">#</a></p><div class="doc"><p>Try to configure all the known programs that have not yet been configured.</p></div></div><div class="top"><p class="src"><a id="v:unconfigureProgram" class="def">unconfigureProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:unconfigureProgram" class="selflink">#</a></p><div class="doc"><p>Unconfigure a program. This is basically a hack and you shouldn't+ use it, but it can be handy for making sure a <code><a href="Distribution-Simple-Program-Db.html#v:requireProgram">requireProgram</a></code>+ actually reconfigures.</p></div></div><div class="top"><p class="src"><a id="v:lookupProgramVersion" class="def">lookupProgramVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> (<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Version.html#t:Version">Version</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)) <a href="#v:lookupProgramVersion" class="selflink">#</a></p><div class="doc"><p>Check that a program is configured and available to be run.</p><p>Additionally check that the program version number is suitable and return+ it. For example you could require <code><a href="Distribution-Version.html#v:AnyVersion">AnyVersion</a></code> or <code><code><a href="Distribution-Version.html#v:orLaterVersion">orLaterVersion</a></code>+ (<code><a href="Distribution-Version.html#t:Version">Version</a></code> [1,0] [])</code></p><p>It returns the configured program, its version number and a possibly updated+ <code><a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></code>. If the program could not be configured or the version is+ unsuitable, it returns an error value.</p></div></div><div class="top"><p class="src"><a id="v:reconfigurePrograms" class="def">reconfigurePrograms</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="Distribution-Simple-Program-Types.html#t:ProgArg">ProgArg</a>])] -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> <a href="#v:reconfigurePrograms" class="selflink">#</a></p><div class="doc"><p>reconfigure a bunch of programs given new user-specified args. It takes+ the same inputs as <code><a href="Distribution-Simple-Program-Db.html#v:userSpecifyPath">userSpecifyPath</a></code> and <code><a href="Distribution-Simple-Program-Db.html#v:userSpecifyArgs">userSpecifyArgs</a></code> and for all progs+ with a new path it calls <code><a href="Distribution-Simple-Program-Db.html#v:configureProgram">configureProgram</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:requireProgram" class="def">requireProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:requireProgram" class="selflink">#</a></p><div class="doc"><p>Check that a program is configured and available to be run.</p><p>It raises an exception if the program could not be configured, otherwise+ it returns the configured program.</p></div></div><div class="top"><p class="src"><a id="v:requireProgramVersion" class="def">requireProgramVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Version.html#t:Version">Version</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:requireProgramVersion" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Program-Db.html#v:lookupProgramVersion">lookupProgramVersion</a></code>, but raises an exception in case of error+ instead of returning 'Left errMsg'.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Find.html view
@@ -0,0 +1,20 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Find</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2013</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Find</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Program search path</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A somewhat extended notion of the normal program search path concept.</p><p>Usually when finding executables we just want to look in the usual places+ using the OS's usual method for doing so. In Haskell the normal OS-specific+ method is captured by <code>findExecutable</code>. On all common OSs that makes use of+ a <code>PATH</code> environment variable, (though on Windows it is not just the <code>PATH</code>).</p><p>However it is sometimes useful to be able to look in additional locations+ without having to change the process-global <code>PATH</code> environment variable.+ So we need an extension of the usual <code>findExecutable</code> that can look in+ additional locations, either before, after or instead of the normal OS+ locations.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:ProgramSearchPath">ProgramSearchPath</a> = [<a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a><ul class="subs"><li>= <a href="#v:ProgramSearchPathDir">ProgramSearchPathDir</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li>| <a href="#v:ProgramSearchPathDefault">ProgramSearchPathDefault</a></li></ul></li><li class="src short"><a href="#v:defaultProgramSearchPath">defaultProgramSearchPath</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a></li><li class="src short"><a href="#v:findProgramOnSearchPath">findProgramOnSearchPath</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))</li><li class="src short"><a href="#v:programSearchPathAsPATHVar">programSearchPathAsPATHVar</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:getSystemSearchPath">getSystemSearchPath</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li></ul></div><div id="interface"><h1 id="g:1">Program search path</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ProgramSearchPath" class="def">ProgramSearchPath</a> = [<a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>] <a href="#t:ProgramSearchPath" class="selflink">#</a></p><div class="doc"><p>A search path to use when locating executables. This is analogous+ to the unix <code>$PATH</code> or win32 <code>%PATH%</code> but with the ability to use+ the system default method for finding executables (<code>findExecutable</code> which+ on unix is simply looking on the <code>$PATH</code> but on win32 is a bit more+ complicated).</p><p>The default to use is <code>[ProgSearchPathDefault]</code> but you can add extra dirs+ either before, after or instead of the default, e.g. here we add an extra+ dir to search after the usual ones.</p><pre>['ProgramSearchPathDefault', 'ProgramSearchPathDir' dir]</pre></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProgramSearchPathEntry" class="def">ProgramSearchPathEntry</a> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ProgramSearchPathDir" class="def">ProgramSearchPathDir</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>A specific dir</p></td></tr><tr><td class="src"><a id="v:ProgramSearchPathDefault" class="def">ProgramSearchPathDefault</a></td><td class="doc"><p>The system default</p></td></tr></table></div><div class="subs instances"><p id="control.i:ProgramSearchPathEntry" class="caption collapser" onclick="toggleSection('i:ProgramSearchPathEntry')">Instances</p><div id="section.i:ProgramSearchPathEntry" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Eq:1" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Generic:2" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> x -> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Binary:3" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Binary:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Binary:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Rep:4" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Rep:4')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Rep:4" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ProgramSearchPathEntry" "Distribution.Simple.Program.Find" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProgramSearchPathDir" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProgramSearchPathDefault" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultProgramSearchPath" class="def">defaultProgramSearchPath</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> <a href="#v:defaultProgramSearchPath" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findProgramOnSearchPath" class="def">findProgramOnSearchPath</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) <a href="#v:findProgramOnSearchPath" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:programSearchPathAsPATHVar" class="def">programSearchPathAsPATHVar</a> :: <a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:programSearchPathAsPATHVar" class="selflink">#</a></p><div class="doc"><p>Interpret a <code><a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">ProgramSearchPath</a></code> to construct a new <code>$PATH</code> env var.+ Note that this is close but not perfect because on Windows the search+ algorithm looks at more than just the <code>%PATH%</code>.</p></div></div><div class="top"><p class="src"><a id="v:getSystemSearchPath" class="def">getSystemSearchPath</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] <a href="#v:getSystemSearchPath" class="selflink">#</a></p><div class="doc"><p>Get the system search path. On Unix systems this is just the <code>$PATH</code> env+ var, but on windows it's a bit more complicated.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-GHC.html view
@@ -0,0 +1,27 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.GHC</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.GHC</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:GhcOptions">GhcOptions</a> = <a href="#v:GhcOptions">GhcOptions</a> {<ul class="subs"><li><a href="#v:ghcOptMode">ghcOptMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a></li><li><a href="#v:ghcOptExtra">ghcOptExtra</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptExtraDefault">ghcOptExtraDefault</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptInputFiles">ghcOptInputFiles</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptInputModules">ghcOptInputModules</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li><a href="#v:ghcOptOutputFile">ghcOptOutputFile</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptOutputDynFile">ghcOptOutputDynFile</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptSourcePathClear">ghcOptSourcePathClear</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptSourcePath">ghcOptSourcePath</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptThisUnitId">ghcOptThisUnitId</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptThisComponentId">ghcOptThisComponentId</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:ghcOptInstantiatedWith">ghcOptInstantiatedWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</li><li><a href="#v:ghcOptNoCode">ghcOptNoCode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptPackageDBs">ghcOptPackageDBs</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></li><li><a href="#v:ghcOptPackages">ghcOptPackages</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> (<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)</li><li><a href="#v:ghcOptHideAllPackages">ghcOptHideAllPackages</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptWarnMissingHomeModules">ghcOptWarnMissingHomeModules</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptNoAutoLinkPackages">ghcOptNoAutoLinkPackages</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptLinkLibs">ghcOptLinkLibs</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptLinkLibPath">ghcOptLinkLibPath</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptLinkOptions">ghcOptLinkOptions</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptLinkFrameworks">ghcOptLinkFrameworks</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptLinkFrameworkDirs">ghcOptLinkFrameworkDirs</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptNoLink">ghcOptNoLink</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptLinkNoHsMain">ghcOptLinkNoHsMain</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptLinkModDefFiles">ghcOptLinkModDefFiles</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptCcOptions">ghcOptCcOptions</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptCppOptions">ghcOptCppOptions</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptCppIncludePath">ghcOptCppIncludePath</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptCppIncludes">ghcOptCppIncludes</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptFfiIncludes">ghcOptFfiIncludes</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptLanguage">ghcOptLanguage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></li><li><a href="#v:ghcOptExtensions">ghcOptExtensions</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></li><li><a href="#v:ghcOptExtensionMap">ghcOptExtensionMap</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptOptimisation">ghcOptOptimisation</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a></li><li><a href="#v:ghcOptDebugInfo">ghcOptDebugInfo</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptProfilingMode">ghcOptProfilingMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptProfilingAuto">ghcOptProfilingAuto</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a></li><li><a href="#v:ghcOptSplitObjs">ghcOptSplitObjs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptNumJobs">ghcOptNumJobs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)</li><li><a href="#v:ghcOptHPCDir">ghcOptHPCDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptGHCiScripts">ghcOptGHCiScripts</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptHiSuffix">ghcOptHiSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptObjSuffix">ghcOptObjSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptDynHiSuffix">ghcOptDynHiSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptDynObjSuffix">ghcOptDynObjSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptHiDir">ghcOptHiDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptObjDir">ghcOptObjDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptOutputDir">ghcOptOutputDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptStubDir">ghcOptStubDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptDynLinkMode">ghcOptDynLinkMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a></li><li><a href="#v:ghcOptStaticLib">ghcOptStaticLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptShared">ghcOptShared</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptFPic">ghcOptFPic</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ghcOptDylibName">ghcOptDylibName</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:ghcOptRPaths">ghcOptRPaths</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptVerbosity">ghcOptVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li><a href="#v:ghcOptExtraPath">ghcOptExtraPath</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:ghcOptCabal">ghcOptCabal</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcMode">GhcMode</a><ul class="subs"><li>= <a href="#v:GhcModeCompile">GhcModeCompile</a></li><li>| <a href="#v:GhcModeLink">GhcModeLink</a></li><li>| <a href="#v:GhcModeMake">GhcModeMake</a></li><li>| <a href="#v:GhcModeInteractive">GhcModeInteractive</a></li><li>| <a href="#v:GhcModeAbiHash">GhcModeAbiHash</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcOptimisation">GhcOptimisation</a><ul class="subs"><li>= <a href="#v:GhcNoOptimisation">GhcNoOptimisation</a></li><li>| <a href="#v:GhcNormalOptimisation">GhcNormalOptimisation</a></li><li>| <a href="#v:GhcMaximumOptimisation">GhcMaximumOptimisation</a></li><li>| <a href="#v:GhcSpecialOptimisation">GhcSpecialOptimisation</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcDynLinkMode">GhcDynLinkMode</a><ul class="subs"><li>= <a href="#v:GhcStaticOnly">GhcStaticOnly</a></li><li>| <a href="#v:GhcDynamicOnly">GhcDynamicOnly</a></li><li>| <a href="#v:GhcStaticAndDynamic">GhcStaticAndDynamic</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcProfAuto">GhcProfAuto</a><ul class="subs"><li>= <a href="#v:GhcProfAutoAll">GhcProfAutoAll</a></li><li>| <a href="#v:GhcProfAutoToplevel">GhcProfAutoToplevel</a></li><li>| <a href="#v:GhcProfAutoExported">GhcProfAutoExported</a></li></ul></li><li class="src short"><a href="#v:ghcInvocation">ghcInvocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:renderGhcOptions">renderGhcOptions</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:runGHC">runGHC</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcOptions" class="def">GhcOptions</a> <a href="#t:GhcOptions" class="selflink">#</a></p><div class="doc"><p>A structured set of GHC options/flags</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GhcOptions" class="def">GhcOptions</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:ghcOptMode" class="def">ghcOptMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a></dfn><div class="doc"><p>The major mode for the ghc invocation.</p></div></li><li><dfn class="src"><a id="v:ghcOptExtra" class="def">ghcOptExtra</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Any extra options to pass directly to ghc. These go at the end and hence+ override other stuff.</p></div></li><li><dfn class="src"><a id="v:ghcOptExtraDefault" class="def">ghcOptExtraDefault</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Extra default flags to pass directly to ghc. These go at the beginning+ and so can be overridden by other stuff.</p></div></li><li><dfn class="src"><a id="v:ghcOptInputFiles" class="def">ghcOptInputFiles</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>The main input files; could be .hs, .hi, .c, .o, depending on mode.</p></div></li><li><dfn class="src"><a id="v:ghcOptInputModules" class="def">ghcOptInputModules</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></dfn><div class="doc"><p>The names of input Haskell modules, mainly for <code>--make</code> mode.</p></div></li><li><dfn class="src"><a id="v:ghcOptOutputFile" class="def">ghcOptOutputFile</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Location for output file; the <code>ghc -o</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptOutputDynFile" class="def">ghcOptOutputDynFile</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Location for dynamic output file in <code><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticAndDynamic">GhcStaticAndDynamic</a></code> mode;+ the <code>ghc -dyno</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptSourcePathClear" class="def">ghcOptSourcePathClear</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Start with an empty search path for Haskell source files;+ the <code>ghc -i</code> flag (<code>-i</code> on it's own with no path argument).</p></div></li><li><dfn class="src"><a id="v:ghcOptSourcePath" class="def">ghcOptSourcePath</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Search path for Haskell source files; the <code>ghc -i</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptThisUnitId" class="def">ghcOptThisUnitId</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The unit ID the modules will belong to; the <code>ghc -this-unit-id</code>+ flag (or <code>-this-package-key</code> or <code>-package-name</code> on older+ versions of GHC). This is a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code> because we assume you've+ already figured out what the correct format for this string is+ (we need to handle backwards compatibility.)</p></div></li><li><dfn class="src"><a id="v:ghcOptThisComponentId" class="def">ghcOptThisComponentId</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>GHC doesn't make any assumptions about the format of+ definite unit ids, so when we are instantiating a package it+ needs to be told explicitly what the component being instantiated+ is. This only gets set when <code><a href="Distribution-Simple-Program-GHC.html#v:ghcOptInstantiatedWith">ghcOptInstantiatedWith</a></code> is non-empty</p></div></li><li><dfn class="src"><a id="v:ghcOptInstantiatedWith" class="def">ghcOptInstantiatedWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</dfn><div class="doc"><p>How the requirements of the package being compiled are to+ be filled. When typechecking an indefinite package, the <code><a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></code>+ is always a <code><a href="Distribution-Backpack.html#v:OpenModuleVar">OpenModuleVar</a></code>; otherwise, it specifies the installed module+ that instantiates a package.</p></div></li><li><dfn class="src"><a id="v:ghcOptNoCode" class="def">ghcOptNoCode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>No code? (But we turn on interface writing</p></div></li><li><dfn class="src"><a id="v:ghcOptPackageDBs" class="def">ghcOptPackageDBs</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></dfn><div class="doc"><p>GHC package databases to use, the <code>ghc -package-conf</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptPackages" class="def">ghcOptPackages</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> (<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)</dfn><div class="doc"><p>The GHC packages to bring into scope when compiling,+ the <code>ghc -package-id</code> flags.</p></div></li><li><dfn class="src"><a id="v:ghcOptHideAllPackages" class="def">ghcOptHideAllPackages</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Start with a clean package set; the <code>ghc -hide-all-packages</code> flag</p></div></li><li><dfn class="src"><a id="v:ghcOptWarnMissingHomeModules" class="def">ghcOptWarnMissingHomeModules</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Warn about modules, not listed in command line</p></div></li><li><dfn class="src"><a id="v:ghcOptNoAutoLinkPackages" class="def">ghcOptNoAutoLinkPackages</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Don't automatically link in Haskell98 etc; the <code>ghc+ -no-auto-link-packages</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptLinkLibs" class="def">ghcOptLinkLibs</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Names of libraries to link in; the <code>ghc -l</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptLinkLibPath" class="def">ghcOptLinkLibPath</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Search path for libraries to link in; the <code>ghc -L</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptLinkOptions" class="def">ghcOptLinkOptions</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Options to pass through to the linker; the <code>ghc -optl</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptLinkFrameworks" class="def">ghcOptLinkFrameworks</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>OSX only: frameworks to link in; the <code>ghc -framework</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptLinkFrameworkDirs" class="def">ghcOptLinkFrameworkDirs</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>OSX only: Search path for frameworks to link in; the+ <code>ghc -framework-path</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptNoLink" class="def">ghcOptNoLink</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Don't do the link step, useful in make mode; the <code>ghc -no-link</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptLinkNoHsMain" class="def">ghcOptLinkNoHsMain</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Don't link in the normal RTS <code>main</code> entry point; the <code>ghc -no-hs-main</code>+ flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptLinkModDefFiles" class="def">ghcOptLinkModDefFiles</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Module definition files (Windows specific)</p></div></li><li><dfn class="src"><a id="v:ghcOptCcOptions" class="def">ghcOptCcOptions</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Options to pass through to the C compiler; the <code>ghc -optc</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptCppOptions" class="def">ghcOptCppOptions</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Options to pass through to CPP; the <code>ghc -optP</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptCppIncludePath" class="def">ghcOptCppIncludePath</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Search path for CPP includes like header files; the <code>ghc -I</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptCppIncludes" class="def">ghcOptCppIncludes</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Extra header files to include at CPP stage; the <code>ghc -optP-include</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptFfiIncludes" class="def">ghcOptFfiIncludes</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Extra header files to include for old-style FFI; the <code>ghc -#include</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptLanguage" class="def">ghcOptLanguage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></dfn><div class="doc"><p>The base language; the <code>ghc -XHaskell98</code> or <code>-XHaskell2010</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptExtensions" class="def">ghcOptExtensions</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></dfn><div class="doc"><p>The language extensions; the <code>ghc -X</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptExtensionMap" class="def">ghcOptExtensionMap</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A GHC version-dependent mapping of extensions to flags. This must be+ set to be able to make use of the <code><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtensions">ghcOptExtensions</a></code>.</p></div></li><li><dfn class="src"><a id="v:ghcOptOptimisation" class="def">ghcOptOptimisation</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a></dfn><div class="doc"><p>What optimisation level to use; the <code>ghc -O</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptDebugInfo" class="def">ghcOptDebugInfo</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Emit debug info; the <code>ghc -g</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptProfilingMode" class="def">ghcOptProfilingMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Compile in profiling mode; the <code>ghc -prof</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptProfilingAuto" class="def">ghcOptProfilingAuto</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a></dfn><div class="doc"><p>Automatically add profiling cost centers; the <code>ghc -fprof-auto*</code> flags.</p></div></li><li><dfn class="src"><a id="v:ghcOptSplitObjs" class="def">ghcOptSplitObjs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Use the "split object files" feature; the <code>ghc -split-objs</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptNumJobs" class="def">ghcOptNumJobs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)</dfn><div class="doc"><p>Run N jobs simultaneously (if possible).</p></div></li><li><dfn class="src"><a id="v:ghcOptHPCDir" class="def">ghcOptHPCDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Enable coverage analysis; the <code>ghc -fhpc -hpcdir</code> flags.</p></div></li><li><dfn class="src"><a id="v:ghcOptGHCiScripts" class="def">ghcOptGHCiScripts</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Extra GHCi startup scripts; the <code>-ghci-script</code> flag</p></div></li><li><dfn class="src"><a id="v:ghcOptHiSuffix" class="def">ghcOptHiSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptObjSuffix" class="def">ghcOptObjSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptDynHiSuffix" class="def">ghcOptDynHiSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>only in <code><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticAndDynamic">GhcStaticAndDynamic</a></code> mode</p></div></li><li><dfn class="src"><a id="v:ghcOptDynObjSuffix" class="def">ghcOptDynObjSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>only in <code><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticAndDynamic">GhcStaticAndDynamic</a></code> mode</p></div></li><li><dfn class="src"><a id="v:ghcOptHiDir" class="def">ghcOptHiDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptObjDir" class="def">ghcOptObjDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptOutputDir" class="def">ghcOptOutputDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptStubDir" class="def">ghcOptStubDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptDynLinkMode" class="def">ghcOptDynLinkMode</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptStaticLib" class="def">ghcOptStaticLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptShared" class="def">ghcOptShared</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptFPic" class="def">ghcOptFPic</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptDylibName" class="def">ghcOptDylibName</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptRPaths" class="def">ghcOptRPaths</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ghcOptVerbosity" class="def">ghcOptVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc"><p>Get GHC to be quiet or verbose with what it's doing; the <code>ghc -v</code> flag.</p></div></li><li><dfn class="src"><a id="v:ghcOptExtraPath" class="def">ghcOptExtraPath</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Put the extra folders in the PATH environment variable we invoke+ GHC with</p></div></li><li><dfn class="src"><a id="v:ghcOptCabal" class="def">ghcOptCabal</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Let GHC know that it is Cabal that's calling it.+ Modifies some of the GHC error messages.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:GhcOptions" class="caption collapser" onclick="toggleSection('i:GhcOptions')">Instances</p><div id="section.i:GhcOptions" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcOptions:Show:1" class="instance expander" onclick="toggleSection('i:id:GhcOptions:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></span> <a href="#t:GhcOptions" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcOptions:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcOptions:Generic:2" class="instance expander" onclick="toggleSection('i:id:GhcOptions:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></span> <a href="#t:GhcOptions" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcOptions:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> x -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcOptions:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:GhcOptions:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></span> <a href="#t:GhcOptions" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcOptions:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcOptions:Monoid:4" class="instance expander" onclick="toggleSection('i:id:GhcOptions:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></span> <a href="#t:GhcOptions" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcOptions:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a>] -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcOptions:Rep:5" class="instance expander" onclick="toggleSection('i:id:GhcOptions:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a></span> <a href="#t:GhcOptions" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcOptions:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "GhcOptions" "Distribution.Simple.Program.GHC" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GhcOptions" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptMode") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptExtra") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptExtraDefault") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptInputFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptInputModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptOutputFile") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptOutputDynFile") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptSourcePathClear") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptSourcePath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptThisUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptThisComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptInstantiatedWith") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptNoCode") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptPackageDBs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptPackages") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> (<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptHideAllPackages") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptWarnMissingHomeModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptNoAutoLinkPackages") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptLinkLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptLinkLibPath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptLinkOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptLinkFrameworks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptLinkFrameworkDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptNoLink") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptLinkNoHsMain") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptLinkModDefFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptCcOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptCppOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptCppIncludePath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptCppIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptFfiIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptLanguage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptExtensions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptExtensionMap") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptOptimisation") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptDebugInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptProfilingMode") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptProfilingAuto") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptSplitObjs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptNumJobs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptHPCDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptGHCiScripts") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptHiSuffix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptObjSuffix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptDynHiSuffix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptDynObjSuffix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptHiDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptObjDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptOutputDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptStubDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptDynLinkMode") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptStaticLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptShared") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptFPic") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptDylibName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptRPaths") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptExtraPath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ghcOptCabal") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcMode" class="def">GhcMode</a> <a href="#t:GhcMode" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GhcModeCompile" class="def">GhcModeCompile</a></td><td class="doc"><pre>ghc -c</pre></td></tr><tr><td class="src"><a id="v:GhcModeLink" class="def">GhcModeLink</a></td><td class="doc"><pre>ghc</pre></td></tr><tr><td class="src"><a id="v:GhcModeMake" class="def">GhcModeMake</a></td><td class="doc"><pre>ghc --make</pre></td></tr><tr><td class="src"><a id="v:GhcModeInteractive" class="def">GhcModeInteractive</a></td><td class="doc"><p><code>ghci</code> / <code>ghc --interactive</code></p></td></tr><tr><td class="src"><a id="v:GhcModeAbiHash" class="def">GhcModeAbiHash</a></td><td class="doc"><p><code>ghc --abi-hash</code>+ | GhcModeDepAnalysis -- ^ <code>ghc -M</code>+ | GhcModeEvaluate -- ^ <code>ghc -e</code></p></td></tr></table></div><div class="subs instances"><p id="control.i:GhcMode" class="caption collapser" onclick="toggleSection('i:GhcMode')">Instances</p><div id="section.i:GhcMode" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcMode:Eq:1" class="instance expander" onclick="toggleSection('i:id:GhcMode:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a></span> <a href="#t:GhcMode" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcMode:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcMode:Show:2" class="instance expander" onclick="toggleSection('i:id:GhcMode:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a></span> <a href="#t:GhcMode" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcMode:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program-GHC.html#t:GhcMode">GhcMode</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcOptimisation" class="def">GhcOptimisation</a> <a href="#t:GhcOptimisation" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GhcNoOptimisation" class="def">GhcNoOptimisation</a></td><td class="doc"><pre>-O0</pre></td></tr><tr><td class="src"><a id="v:GhcNormalOptimisation" class="def">GhcNormalOptimisation</a></td><td class="doc"><pre>-O</pre></td></tr><tr><td class="src"><a id="v:GhcMaximumOptimisation" class="def">GhcMaximumOptimisation</a></td><td class="doc"><pre>-O2</pre></td></tr><tr><td class="src"><a id="v:GhcSpecialOptimisation" class="def">GhcSpecialOptimisation</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>e.g. <code>-Odph</code></p></td></tr></table></div><div class="subs instances"><p id="control.i:GhcOptimisation" class="caption collapser" onclick="toggleSection('i:GhcOptimisation')">Instances</p><div id="section.i:GhcOptimisation" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcOptimisation:Eq:1" class="instance expander" onclick="toggleSection('i:id:GhcOptimisation:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a></span> <a href="#t:GhcOptimisation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcOptimisation:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcOptimisation:Show:2" class="instance expander" onclick="toggleSection('i:id:GhcOptimisation:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a></span> <a href="#t:GhcOptimisation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcOptimisation:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">GhcOptimisation</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcDynLinkMode" class="def">GhcDynLinkMode</a> <a href="#t:GhcDynLinkMode" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GhcStaticOnly" class="def">GhcStaticOnly</a></td><td class="doc"><pre>-static</pre></td></tr><tr><td class="src"><a id="v:GhcDynamicOnly" class="def">GhcDynamicOnly</a></td><td class="doc"><pre>-dynamic</pre></td></tr><tr><td class="src"><a id="v:GhcStaticAndDynamic" class="def">GhcStaticAndDynamic</a></td><td class="doc"><pre>-static -dynamic-too</pre></td></tr></table></div><div class="subs instances"><p id="control.i:GhcDynLinkMode" class="caption collapser" onclick="toggleSection('i:GhcDynLinkMode')">Instances</p><div id="section.i:GhcDynLinkMode" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcDynLinkMode:Eq:1" class="instance expander" onclick="toggleSection('i:id:GhcDynLinkMode:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a></span> <a href="#t:GhcDynLinkMode" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcDynLinkMode:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcDynLinkMode:Show:2" class="instance expander" onclick="toggleSection('i:id:GhcDynLinkMode:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a></span> <a href="#t:GhcDynLinkMode" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcDynLinkMode:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">GhcDynLinkMode</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcProfAuto" class="def">GhcProfAuto</a> <a href="#t:GhcProfAuto" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GhcProfAutoAll" class="def">GhcProfAutoAll</a></td><td class="doc"><pre>-fprof-auto</pre></td></tr><tr><td class="src"><a id="v:GhcProfAutoToplevel" class="def">GhcProfAutoToplevel</a></td><td class="doc"><pre>-fprof-auto-top</pre></td></tr><tr><td class="src"><a id="v:GhcProfAutoExported" class="def">GhcProfAutoExported</a></td><td class="doc"><pre>-fprof-auto-exported</pre></td></tr></table></div><div class="subs instances"><p id="control.i:GhcProfAuto" class="caption collapser" onclick="toggleSection('i:GhcProfAuto')">Instances</p><div id="section.i:GhcProfAuto" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcProfAuto:Eq:1" class="instance expander" onclick="toggleSection('i:id:GhcProfAuto:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a></span> <a href="#t:GhcProfAuto" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcProfAuto:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GhcProfAuto:Show:2" class="instance expander" onclick="toggleSection('i:id:GhcProfAuto:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a></span> <a href="#t:GhcProfAuto" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GhcProfAuto:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">GhcProfAuto</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:ghcInvocation" class="def">ghcInvocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:ghcInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:renderGhcOptions" class="def">renderGhcOptions</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:renderGhcOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:runGHC" class="def">runGHC</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">GhcOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:runGHC" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-HcPkg.html view
@@ -0,0 +1,17 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.HcPkg</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2009 2013</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.HcPkg</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Types</a></li><li><a href="#g:2">Actions</a></li><li><a href="#g:3">Program invocations</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides an library interface to the <code>hc-pkg</code> program.+ Currently only GHC, GHCJS and LHC have hc-pkg programs.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:HcPkgInfo">HcPkgInfo</a> = <a href="#v:HcPkgInfo">HcPkgInfo</a> {<ul class="subs"><li><a href="#v:hcPkgProgram">hcPkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></li><li><a href="#v:noPkgDbStack">noPkgDbStack</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:noVerboseFlag">noVerboseFlag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:flagPackageConf">flagPackageConf</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:supportsDirDbs">supportsDirDbs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:requiresDirDbs">requiresDirDbs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:nativeMultiInstance">nativeMultiInstance</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:recacheMultiInstance">recacheMultiInstance</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:suppressFilesCheck">suppressFilesCheck</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:RegisterOptions">RegisterOptions</a> = <a href="#v:RegisterOptions">RegisterOptions</a> {<ul class="subs"><li><a href="#v:registerAllowOverwrite">registerAllowOverwrite</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:registerMultiInstance">registerMultiInstance</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:registerSuppressFilesCheck">registerSuppressFilesCheck</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:defaultRegisterOptions">defaultRegisterOptions</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a></li><li class="src short"><a href="#v:init">init</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:invoke">invoke</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:register">register</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:unregister">unregister</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:recache">recache</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:expose">expose</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hide">hide</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:dump">dump</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>]</li><li class="src short"><a href="#v:describe">describe</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>]</li><li class="src short"><a href="#v:list">list</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a>]</li><li class="src short"><a href="#v:initInvocation">initInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:registerInvocation">registerInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:unregisterInvocation">unregisterInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:recacheInvocation">recacheInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:exposeInvocation">exposeInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:hideInvocation">hideInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:dumpInvocation">dumpInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:describeInvocation">describeInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:listInvocation">listInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li></ul></div><div id="interface"><h1 id="g:1">Types</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:HcPkgInfo" class="def">HcPkgInfo</a> <a href="#t:HcPkgInfo" class="selflink">#</a></p><div class="doc"><p>Information about the features and capabilities of an <code>hc-pkg</code>+ program.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:HcPkgInfo" class="def">HcPkgInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:hcPkgProgram" class="def">hcPkgProgram</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:noPkgDbStack" class="def">noPkgDbStack</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>no package DB stack supported</p></div></li><li><dfn class="src"><a id="v:noVerboseFlag" class="def">noVerboseFlag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>hc-pkg does not support verbosity flags</p></div></li><li><dfn class="src"><a id="v:flagPackageConf" class="def">flagPackageConf</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>use package-conf option instead of package-db</p></div></li><li><dfn class="src"><a id="v:supportsDirDbs" class="def">supportsDirDbs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>supports directory style package databases</p></div></li><li><dfn class="src"><a id="v:requiresDirDbs" class="def">requiresDirDbs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>requires directory style package databases</p></div></li><li><dfn class="src"><a id="v:nativeMultiInstance" class="def">nativeMultiInstance</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>supports --enable-multi-instance flag</p></div></li><li><dfn class="src"><a id="v:recacheMultiInstance" class="def">recacheMultiInstance</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>supports multi-instance via recache</p></div></li><li><dfn class="src"><a id="v:suppressFilesCheck" class="def">suppressFilesCheck</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>supports --force-files or equivalent</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RegisterOptions" class="def">RegisterOptions</a> <a href="#t:RegisterOptions" class="selflink">#</a></p><div class="doc"><p>Additional variations in the behaviour for <code><a href="Distribution-Simple-Program-HcPkg.html#v:register">register</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RegisterOptions" class="def">RegisterOptions</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:registerAllowOverwrite" class="def">registerAllowOverwrite</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Allows re-registering / overwriting an existing package</p></div></li><li><dfn class="src"><a id="v:registerMultiInstance" class="def">registerMultiInstance</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Insist on the ability to register multiple instances of a+ single version of a single package. This will fail if the <code>hc-pkg</code>+ does not support it, see <code><a href="Distribution-Simple-Program-HcPkg.html#v:nativeMultiInstance">nativeMultiInstance</a></code> and+ <code><a href="Distribution-Simple-Program-HcPkg.html#v:recacheMultiInstance">recacheMultiInstance</a></code>.</p></div></li><li><dfn class="src"><a id="v:registerSuppressFilesCheck" class="def">registerSuppressFilesCheck</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Require that no checks are performed on the existence of package+ files mentioned in the registration info. This must be used if+ registering prior to putting the files in their final place. This will+ fail if the <code>hc-pkg</code> does not support it, see <code><a href="Distribution-Simple-Program-HcPkg.html#v:suppressFilesCheck">suppressFilesCheck</a></code>.</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:defaultRegisterOptions" class="def">defaultRegisterOptions</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> <a href="#v:defaultRegisterOptions" class="selflink">#</a></p><div class="doc"><p>Defaults are <code>True</code>, <code>False</code> and <code>False</code></p></div></div><h1 id="g:2">Actions</h1><div class="top"><p class="src"><a id="v:init" class="def">init</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:init" class="selflink">#</a></p><div class="doc"><p>Call <code>hc-pkg</code> to initialise a package database at the location {path}.</p><pre>hc-pkg init {path}</pre></div></div><div class="top"><p class="src"><a id="v:invoke" class="def">invoke</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:invoke" class="selflink">#</a></p><div class="doc"><p>Run <code>hc-pkg</code> using a given package DB stack, directly forwarding the+ provided command-line arguments to it.</p></div></div><div class="top"><p class="src"><a id="v:register" class="def">register</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:register" class="selflink">#</a></p><div class="doc"><p>Call <code>hc-pkg</code> to register a package.</p><pre>hc-pkg register {filename | -} [--user | --global | --package-db]</pre></div></div><div class="top"><p class="src"><a id="v:unregister" class="def">unregister</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:unregister" class="selflink">#</a></p><div class="doc"><p>Call <code>hc-pkg</code> to unregister a package</p><pre>hc-pkg unregister [pkgid] [--user | --global | --package-db]</pre></div></div><div class="top"><p class="src"><a id="v:recache" class="def">recache</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:recache" class="selflink">#</a></p><div class="doc"><p>Call <code>hc-pkg</code> to recache the registered packages.</p><pre>hc-pkg recache [--user | --global | --package-db]</pre></div></div><div class="top"><p class="src"><a id="v:expose" class="def">expose</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:expose" class="selflink">#</a></p><div class="doc"><p>Call <code>hc-pkg</code> to expose a package.</p><pre>hc-pkg expose [pkgid] [--user | --global | --package-db]</pre></div></div><div class="top"><p class="src"><a id="v:hide" class="def">hide</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:hide" class="selflink">#</a></p><div class="doc"><p>Call <code>hc-pkg</code> to hide a package.</p><pre>hc-pkg hide [pkgid] [--user | --global | --package-db]</pre></div></div><div class="top"><p class="src"><a id="v:dump" class="def">dump</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] <a href="#v:dump" class="selflink">#</a></p><div class="doc"><p>Call <code>hc-pkg</code> to get all the details of all the packages in the given+ package database.</p></div></div><div class="top"><p class="src"><a id="v:describe" class="def">describe</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a>] <a href="#v:describe" class="selflink">#</a></p><div class="doc"><p>Call <code>hc-pkg</code> to retrieve a specific package</p><pre>hc-pkg describe [pkgid] [--user | --global | --package-db]</pre></div></div><div class="top"><p class="src"><a id="v:list" class="def">list</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a>] <a href="#v:list" class="selflink">#</a></p><div class="doc"><p>Call <code>hc-pkg</code> to get the source package Id of all the packages in the+ given package database.</p><p>This is much less information than with <code><a href="Distribution-Simple-Program-HcPkg.html#v:dump">dump</a></code>, but also rather quicker.+ Note in particular that it does not include the <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>, just+ the source <code><a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></code> which is not necessarily unique in any package db.</p></div></div><h1 id="g:3">Program invocations</h1><div class="top"><p class="src"><a id="v:initInvocation" class="def">initInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:initInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:registerInvocation" class="def">registerInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:registerInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:unregisterInvocation" class="def">unregisterInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:unregisterInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:recacheInvocation" class="def">recacheInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:recacheInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:exposeInvocation" class="def">exposeInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:exposeInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hideInvocation" class="def">hideInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:hideInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:dumpInvocation" class="def">dumpInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:dumpInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:describeInvocation" class="def">describeInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:describeInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:listInvocation" class="def">listInvocation</a> :: <a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">HcPkgInfo</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:listInvocation" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Hpc.html view
@@ -0,0 +1,8 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Hpc</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Thomas Tuegel 2011</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Hpc</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides an library interface to the <code>hpc</code> program.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:markup">markup</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:union">union</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:markup" class="def">markup</a> <a href="#v:markup" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Path to .tix file</p></td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</td><td class="doc"><p>Paths to .mix file directories</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Path where html output should be located</p></td></tr><tr><td class="src">-> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</td><td class="doc"><p>List of modules to exclude from report</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Invoke hpc with the given parameters.</p><p>Prior to HPC version 0.7 (packaged with GHC 7.8), hpc did not handle+ multiple .mix paths correctly, so we print a warning, and only pass it the+ first path in the list. This means that e.g. test suites that import their+ library as a dependency can still work, but those that include the library+ modules directly (in other-modules) don't.</p></div></div><div class="top"><p class="src"><a id="v:union" class="def">union</a> <a href="#v:union" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</td><td class="doc"><p>Paths to .tix files</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Path to resultant .tix file</p></td></tr><tr><td class="src">-> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</td><td class="doc"><p>List of modules to exclude from union</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Internal.html view
@@ -0,0 +1,7 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Internal</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Internal</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Internal utilities used by Distribution.Simple.Program.*.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:stripExtractVersion">stripExtractVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:stripExtractVersion" class="def">stripExtractVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:stripExtractVersion" class="selflink">#</a></p><div class="doc"><p>Extract the version number from the output of 'strip --version'.</p><p>Invoking "strip --version" gives very inconsistent results. We ignore+ everything in parentheses (see #2497), look for the first word that starts+ with a number, and try parsing out the first two components of it. Non-GNU+ <code>strip</code> doesn't appear to have a version flag.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Ld.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Ld</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Ld</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides an library interface to the <code>ld</code> linker program.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:combineObjectFiles">combineObjectFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:combineObjectFiles" class="def">combineObjectFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:combineObjectFiles" class="selflink">#</a></p><div class="doc"><p>Call <code>ld -r</code> to link a bunch of object files together.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Run.html view
@@ -0,0 +1,20 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Run</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Run</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides a data type for program invocations and functions to+ run them.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramInvocation">ProgramInvocation</a> = <a href="#v:ProgramInvocation">ProgramInvocation</a> {<ul class="subs"><li><a href="#v:progInvokePath">progInvokePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:progInvokeArgs">progInvokeArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:progInvokeEnv">progInvokeEnv</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:progInvokePathEnv">progInvokePathEnv</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:progInvokeCwd">progInvokeCwd</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:progInvokeInput">progInvokeInput</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:progInvokeInputEncoding">progInvokeInputEncoding</a> :: <a href="Distribution-Simple-Program-Run.html#t:IOEncoding">IOEncoding</a></li><li><a href="#v:progInvokeOutputEncoding">progInvokeOutputEncoding</a> :: <a href="Distribution-Simple-Program-Run.html#t:IOEncoding">IOEncoding</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:IOEncoding">IOEncoding</a><ul class="subs"><li>= <a href="#v:IOEncodingText">IOEncodingText</a></li><li>| <a href="#v:IOEncodingUTF8">IOEncodingUTF8</a></li></ul></li><li class="src short"><a href="#v:emptyProgramInvocation">emptyProgramInvocation</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:simpleProgramInvocation">simpleProgramInvocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:programInvocation">programInvocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:multiStageProgramInvocation">multiStageProgramInvocation</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> (<a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>, <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>, <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>) -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>]</li><li class="src short"><a href="#v:runProgramInvocation">runProgramInvocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:getProgramInvocationOutput">getProgramInvocationOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:getEffectiveEnvironment">getEffectiveEnvironment</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)])</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProgramInvocation" class="def">ProgramInvocation</a> <a href="#t:ProgramInvocation" class="selflink">#</a></p><div class="doc"><p>Represents a specific invocation of a specific program.</p><p>This is used as an intermediate type between deciding how to call a program+ and actually doing it. This provides the opportunity to the caller to+ adjust how the program will be called. These invocations can either be run+ directly or turned into shell or batch scripts.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ProgramInvocation" class="def">ProgramInvocation</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:progInvokePath" class="def">progInvokePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeArgs" class="def">progInvokeArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeEnv" class="def">progInvokeEnv</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokePathEnv" class="def">progInvokePathEnv</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeCwd" class="def">progInvokeCwd</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeInput" class="def">progInvokeInput</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeInputEncoding" class="def">progInvokeInputEncoding</a> :: <a href="Distribution-Simple-Program-Run.html#t:IOEncoding">IOEncoding</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeOutputEncoding" class="def">progInvokeOutputEncoding</a> :: <a href="Distribution-Simple-Program-Run.html#t:IOEncoding">IOEncoding</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:IOEncoding" class="def">IOEncoding</a> <a href="#t:IOEncoding" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:IOEncodingText" class="def">IOEncodingText</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:IOEncodingUTF8" class="def">IOEncodingUTF8</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:emptyProgramInvocation" class="def">emptyProgramInvocation</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:emptyProgramInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:simpleProgramInvocation" class="def">simpleProgramInvocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:simpleProgramInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:programInvocation" class="def">programInvocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:programInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:multiStageProgramInvocation" class="def">multiStageProgramInvocation</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> (<a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>, <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>, <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>) -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a>] <a href="#v:multiStageProgramInvocation" class="selflink">#</a></p><div class="doc"><p>Like the unix xargs program. Useful for when we've got very long command+ lines that might overflow an OS limit on command line length and so you+ need to invoke a command multiple times to get all the args in.</p><p>It takes four template invocations corresponding to the simple, initial,+ middle and last invocations. If the number of args given is small enough+ that we can get away with just a single invocation then the simple one is+ used:</p><pre>$ simple args</pre><p>If the number of args given means that we need to use multiple invocations+ then the templates for the initial, middle and last invocations are used:</p><pre>$ initial args_0+$ middle args_1+$ middle args_2+ ...+$ final args_n</pre></div></div><div class="top"><p class="src"><a id="v:runProgramInvocation" class="def">runProgramInvocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:runProgramInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getProgramInvocationOutput" class="def">getProgramInvocationOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:getProgramInvocationOutput" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getEffectiveEnvironment" class="def">getEffectiveEnvironment</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]) <a href="#v:getEffectiveEnvironment" class="selflink">#</a></p><div class="doc"><p>Return the current environment extended with the given overrides.+ If an entry is specified twice in <code>overrides</code>, the second entry takes+ precedence.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Script.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Script</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Script</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides an library interface to the <code>hc-pkg</code> program.+ Currently only GHC and LHC have hc-pkg programs.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:invocationAsSystemScript">invocationAsSystemScript</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:invocationAsShellScript">invocationAsShellScript</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:invocationAsBatchFile">invocationAsBatchFile</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:invocationAsSystemScript" class="def">invocationAsSystemScript</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:invocationAsSystemScript" class="selflink">#</a></p><div class="doc"><p>Generate a system script, either POSIX shell script or Windows batch file+ as appropriate for the given system.</p></div></div><div class="top"><p class="src"><a id="v:invocationAsShellScript" class="def">invocationAsShellScript</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:invocationAsShellScript" class="selflink">#</a></p><div class="doc"><p>Generate a POSIX shell script that invokes a program.</p></div></div><div class="top"><p class="src"><a id="v:invocationAsBatchFile" class="def">invocationAsBatchFile</a> :: <a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:invocationAsBatchFile" class="selflink">#</a></p><div class="doc"><p>Generate a Windows batch file that invokes a program.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Strip.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Strip</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Strip</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides an library interface to the <code>strip</code> program.</p></div></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:stripLib" class="def">stripLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:stripLib" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:stripExe" class="def">stripExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:stripExe" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program-Types.html view
@@ -0,0 +1,42 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Types</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2006 Duncan Coutts 2007-2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program.Types</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Program and functions for constructing them</a></li><li><a href="#g:2">Configured program and related functions</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This provides an abstraction which deals with configuring and running+ programs. A <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code> is a static notion of a known program. A+ <code><a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></code> is a <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code> that has been found on the current+ machine and is ready to be run (possibly with some user-supplied default+ args). Configuring a program involves finding its location and if necessary+ finding its version. There's reasonable default behavior for trying to find+ "foo" in PATH, being able to override its location, etc.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Program">Program</a> = <a href="#v:Program">Program</a> {<ul class="subs"><li><a href="#v:programName">programName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:programFindLocation">programFindLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))</li><li><a href="#v:programFindVersion">programFindVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</li><li><a href="#v:programPostConf">programPostConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:ProgramSearchPath">ProgramSearchPath</a> = [<a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a><ul class="subs"><li>= <a href="#v:ProgramSearchPathDir">ProgramSearchPathDir</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li>| <a href="#v:ProgramSearchPathDefault">ProgramSearchPathDefault</a></li></ul></li><li class="src short"><a href="#v:simpleProgram">simpleProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ConfiguredProgram">ConfiguredProgram</a> = <a href="#v:ConfiguredProgram">ConfiguredProgram</a> {<ul class="subs"><li><a href="#v:programId">programId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:programVersion">programVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li><a href="#v:programDefaultArgs">programDefaultArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:programOverrideArgs">programOverrideArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:programOverrideEnv">programOverrideEnv</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:programProperties">programProperties</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:programLocation">programLocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></li><li><a href="#v:programMonitorFiles">programMonitorFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li></ul>}</li><li class="src short"><a href="#v:programPath">programPath</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:suppressOverrideArgs">suppressOverrideArgs</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ProgArg">ProgArg</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramLocation">ProgramLocation</a><ul class="subs"><li>= <a href="#v:UserSpecified">UserSpecified</a> { <ul class="subs"><li><a href="#v:locationPath">locationPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul> }</li><li>| <a href="#v:FoundOnSystem">FoundOnSystem</a> { <ul class="subs"><li><a href="#v:locationPath">locationPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul> }</li></ul></li><li class="src short"><a href="#v:simpleConfiguredProgram">simpleConfiguredProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></li></ul></div><div id="interface"><h1 id="g:1">Program and functions for constructing them</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Program" class="def">Program</a> <a href="#t:Program" class="selflink">#</a></p><div class="doc"><p>Represents a program which can be configured.</p><p>Note: rather than constructing this directly, start with <code><a href="Distribution-Simple-Program-Types.html#v:simpleProgram">simpleProgram</a></code> and+ override any extra fields.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Program" class="def">Program</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:programName" class="def">programName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The simple name of the program, eg. ghc</p></div></li><li><dfn class="src"><a id="v:programFindLocation" class="def">programFindLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))</dfn><div class="doc"><p>A function to search for the program if its location was not+ specified by the user. Usually this will just be a call to+ <code><a href="Distribution-Simple-Program-Find.html#v:findProgramOnSearchPath">findProgramOnSearchPath</a></code>.</p><p>It is supplied with the prevailing search path which will typically+ just be used as-is, but can be extended or ignored as needed.</p><p>For the purpose of change monitoring, in addition to the location+ where the program was found, it returns all the other places that+ were tried.</p></div></li><li><dfn class="src"><a id="v:programFindVersion" class="def">programFindVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</dfn><div class="doc"><p>Try to find the version of the program. For many programs this is+ not possible or is not necessary so it's OK to return Nothing.</p></div></li><li><dfn class="src"><a id="v:programPostConf" class="def">programPostConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></dfn><div class="doc"><p>A function to do any additional configuration after we have+ located the program (and perhaps identified its version). For example+ it could add args, or environment vars.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Program" class="caption collapser" onclick="toggleSection('i:Program')">Instances</p><div id="section.i:Program" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Program:Show:1" class="instance expander" onclick="toggleSection('i:id:Program:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></span> <a href="#t:Program" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Program:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ProgramSearchPath" class="def">ProgramSearchPath</a> = [<a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>] <a href="#t:ProgramSearchPath" class="selflink">#</a></p><div class="doc"><p>A search path to use when locating executables. This is analogous+ to the unix <code>$PATH</code> or win32 <code>%PATH%</code> but with the ability to use+ the system default method for finding executables (<code>findExecutable</code> which+ on unix is simply looking on the <code>$PATH</code> but on win32 is a bit more+ complicated).</p><p>The default to use is <code>[ProgSearchPathDefault]</code> but you can add extra dirs+ either before, after or instead of the default, e.g. here we add an extra+ dir to search after the usual ones.</p><pre>['ProgramSearchPathDefault', 'ProgramSearchPathDir' dir]</pre></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProgramSearchPathEntry" class="def">ProgramSearchPathEntry</a> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ProgramSearchPathDir" class="def">ProgramSearchPathDir</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>A specific dir</p></td></tr><tr><td class="src"><a id="v:ProgramSearchPathDefault" class="def">ProgramSearchPathDefault</a></td><td class="doc"><p>The system default</p></td></tr></table></div><div class="subs instances"><p id="control.i:ProgramSearchPathEntry" class="caption collapser" onclick="toggleSection('i:ProgramSearchPathEntry')">Instances</p><div id="section.i:ProgramSearchPathEntry" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Eq:1" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Generic:2" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> x -> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Binary:3" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Binary:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Binary:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Rep:4" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Rep:4')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Rep:4" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ProgramSearchPathEntry" "Distribution.Simple.Program.Find" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProgramSearchPathDir" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProgramSearchPathDefault" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:simpleProgram" class="def">simpleProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a> <a href="#v:simpleProgram" class="selflink">#</a></p><div class="doc"><p>Make a simple named program.</p><p>By default we'll just search for it in the path and not try to find the+ version name. You can override these behaviours if necessary, eg:</p><pre>(simpleProgram "foo") { programFindLocation = ... , programFindVersion ... }</pre></div></div><h1 id="g:2">Configured program and related functions</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ConfiguredProgram" class="def">ConfiguredProgram</a> <a href="#t:ConfiguredProgram" class="selflink">#</a></p><div class="doc"><p>Represents a program which has been configured and is thus ready to be run.</p><p>These are usually made by configuring a <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code>, but if you have to+ construct one directly then start with <code><a href="Distribution-Simple-Program-Types.html#v:simpleConfiguredProgram">simpleConfiguredProgram</a></code> and+ override any extra fields.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ConfiguredProgram" class="def">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:programId" class="def">programId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Just the name again</p></div></li><li><dfn class="src"><a id="v:programVersion" class="def">programVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></dfn><div class="doc"><p>The version of this program, if it is known.</p></div></li><li><dfn class="src"><a id="v:programDefaultArgs" class="def">programDefaultArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>Default command-line args for this program.+ These flags will appear first on the command line, so they can be+ overridden by subsequent flags.</p></div></li><li><dfn class="src"><a id="v:programOverrideArgs" class="def">programOverrideArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>Override command-line args for this program.+ These flags will appear last on the command line, so they override+ all earlier flags.</p></div></li><li><dfn class="src"><a id="v:programOverrideEnv" class="def">programOverrideEnv</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</dfn><div class="doc"><p>Override environment variables for this program.+ These env vars will extend/override the prevailing environment of+ the current to form the environment for the new process.</p></div></li><li><dfn class="src"><a id="v:programProperties" class="def">programProperties</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A key-value map listing various properties of the program, useful+ for feature detection. Populated during the configuration step, key+ names depend on the specific program.</p></div></li><li><dfn class="src"><a id="v:programLocation" class="def">programLocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></dfn><div class="doc"><p>Location of the program. eg. <code>/usr/bin/ghc-6.4</code></p></div></li><li><dfn class="src"><a id="v:programMonitorFiles" class="def">programMonitorFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>In addition to the <code><a href="Distribution-Simple-Program-Types.html#v:programLocation">programLocation</a></code> where the program was found,+ these are additional locations that were looked at. The combination+ of ths found location and these not-found locations can be used to+ monitor to detect when the re-configuring the program might give a+ different result (e.g. found in a different location).</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ConfiguredProgram" class="caption collapser" onclick="toggleSection('i:ConfiguredProgram')">Instances</p><div id="section.i:ConfiguredProgram" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Eq:1" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Read:2" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Show:3" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Generic:4" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> x -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Binary:5" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Rep:6" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ConfiguredProgram" "Distribution.Simple.Program.Types" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ConfiguredProgram" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programVersion") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programDefaultArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programOverrideArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programOverrideEnv") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programProperties") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programLocation") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programMonitorFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:programPath" class="def">programPath</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:programPath" class="selflink">#</a></p><div class="doc"><p>The full path of a configured program.</p></div></div><div class="top"><p class="src"><a id="v:suppressOverrideArgs" class="def">suppressOverrideArgs</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:suppressOverrideArgs" class="selflink">#</a></p><div class="doc"><p>Suppress any extra arguments added by the user.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ProgArg" class="def">ProgArg</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#t:ProgArg" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProgramLocation" class="def">ProgramLocation</a> <a href="#t:ProgramLocation" class="selflink">#</a></p><div class="doc"><p>Where a program was found. Also tells us whether it's specified by user or+ not. This includes not just the path, but the program as well.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:UserSpecified" class="def">UserSpecified</a></td><td class="doc"><p>The user gave the path to this program,+ eg. --ghc-path=/usr/bin/ghc-6.6</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:locationPath" class="def">locationPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:FoundOnSystem" class="def">FoundOnSystem</a></td><td class="doc"><p>The program was found automatically.</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:locationPath" class="def">locationPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ProgramLocation" class="caption collapser" onclick="toggleSection('i:ProgramLocation')">Instances</p><div id="section.i:ProgramLocation" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Eq:1" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Read:2" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Show:3" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Generic:4" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> x -> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Binary:5" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Rep:6" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ProgramLocation" "Distribution.Simple.Program.Types" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UserSpecified" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "locationPath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FoundOnSystem" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "locationPath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:simpleConfiguredProgram" class="def">simpleConfiguredProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:simpleConfiguredProgram" class="selflink">#</a></p><div class="doc"><p>Make a simple <code><a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></code>.</p><pre>simpleConfiguredProgram "foo" (FoundOnSystem path)</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Program.html view
@@ -0,0 +1,97 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2006 Duncan Coutts 2007-2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Program</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Program and functions for constructing them</a></li><li><a href="#g:2">Configured program and related functions</a></li><li><a href="#g:3">Program invocations</a></li><li><a href="#g:4">The collection of unconfigured and configured programs</a></li><li><a href="#g:5">The collection of configured programs we can run</a></li><li><a href="#g:6">Programs that Cabal knows about</a></li><li><a href="#g:7">deprecated</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This provides an abstraction which deals with configuring and running+ programs. A <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code> is a static notion of a known program. A+ <code><a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></code> is a <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code> that has been found on the current+ machine and is ready to be run (possibly with some user-supplied default+ args). Configuring a program involves finding its location and if necessary+ finding its version. There is also a <code><a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></code> type which holds+ configured and not-yet configured programs. It is the parameter to lots of+ actions elsewhere in Cabal that need to look up and run programs. If we had+ a Cabal monad, the <code><a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></code> would probably be a reader or+ state component of it.</p><p>The module also defines all the known built-in <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code>s and the+ <code><a href="Distribution-Simple-Program.html#v:defaultProgramDb">defaultProgramDb</a></code> which contains them all.</p><p>One nice thing about using it is that any program that is+ registered with Cabal will get some "configure" and ".cabal"+ helpers like --with-foo-args --foo-path= and extra-foo-args.</p><p>There's also good default behavior for trying to find "foo" in+ PATH, being able to override its location, etc.</p><p>There's also a hook for adding programs in a Setup.lhs script. See+ hookedPrograms in <code><a href="Distribution-Simple.html#v:UserHooks">UserHooks</a></code>. This gives a+ hook user the ability to get the above flags and such so that they+ don't have to write all the PATH logic inside Setup.lhs.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Program">Program</a> = <a href="#v:Program">Program</a> {<ul class="subs"><li><a href="#v:programName">programName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:programFindLocation">programFindLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))</li><li><a href="#v:programFindVersion">programFindVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</li><li><a href="#v:programPostConf">programPostConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:ProgramSearchPath">ProgramSearchPath</a> = [<a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a><ul class="subs"><li>= <a href="#v:ProgramSearchPathDir">ProgramSearchPathDir</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li>| <a href="#v:ProgramSearchPathDefault">ProgramSearchPathDefault</a></li></ul></li><li class="src short"><a href="#v:simpleProgram">simpleProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:findProgramOnSearchPath">findProgramOnSearchPath</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))</li><li class="src short"><a href="#v:defaultProgramSearchPath">defaultProgramSearchPath</a> :: <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a></li><li class="src short"><a href="#v:findProgramVersion">findProgramVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>) -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:ConfiguredProgram">ConfiguredProgram</a> = <a href="#v:ConfiguredProgram">ConfiguredProgram</a> {<ul class="subs"><li><a href="#v:programId">programId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:programVersion">programVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li><a href="#v:programDefaultArgs">programDefaultArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:programOverrideArgs">programOverrideArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:programOverrideEnv">programOverrideEnv</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:programProperties">programProperties</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:programLocation">programLocation</a> :: <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a></li><li><a href="#v:programMonitorFiles">programMonitorFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li></ul>}</li><li class="src short"><a href="#v:programPath">programPath</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ProgArg">ProgArg</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramLocation">ProgramLocation</a><ul class="subs"><li>= <a href="#v:UserSpecified">UserSpecified</a> { <ul class="subs"><li><a href="#v:locationPath">locationPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul> }</li><li>| <a href="#v:FoundOnSystem">FoundOnSystem</a> { <ul class="subs"><li><a href="#v:locationPath">locationPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul> }</li></ul></li><li class="src short"><a href="#v:runProgram">runProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:getProgramOutput">getProgramOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:suppressOverrideArgs">suppressOverrideArgs</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramInvocation">ProgramInvocation</a> = <a href="#v:ProgramInvocation">ProgramInvocation</a> {<ul class="subs"><li><a href="#v:progInvokePath">progInvokePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:progInvokeArgs">progInvokeArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:progInvokeEnv">progInvokeEnv</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:progInvokePathEnv">progInvokePathEnv</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:progInvokeCwd">progInvokeCwd</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:progInvokeInput">progInvokeInput</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:progInvokeInputEncoding">progInvokeInputEncoding</a> :: <a href="Distribution-Simple-Program-Run.html#t:IOEncoding">IOEncoding</a></li><li><a href="#v:progInvokeOutputEncoding">progInvokeOutputEncoding</a> :: <a href="Distribution-Simple-Program-Run.html#t:IOEncoding">IOEncoding</a></li></ul>}</li><li class="src short"><a href="#v:emptyProgramInvocation">emptyProgramInvocation</a> :: <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:simpleProgramInvocation">simpleProgramInvocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:programInvocation">programInvocation</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a></li><li class="src short"><a href="#v:runProgramInvocation">runProgramInvocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:getProgramInvocationOutput">getProgramInvocationOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:builtinPrograms">builtinPrograms</a> :: [<a href="Distribution-Simple-Program.html#t:Program">Program</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:defaultProgramDb">defaultProgramDb</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:emptyProgramDb">emptyProgramDb</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:restoreProgramDb">restoreProgramDb</a> :: [<a href="Distribution-Simple-Program.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:addKnownProgram">addKnownProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:addKnownPrograms">addKnownPrograms</a> :: [<a href="Distribution-Simple-Program.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:lookupKnownProgram">lookupKnownProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:knownPrograms">knownPrograms</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> [(<a href="Distribution-Simple-Program.html#t:Program">Program</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>)]</li><li class="src short"><a href="#v:getProgramSearchPath">getProgramSearchPath</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a></li><li class="src short"><a href="#v:setProgramSearchPath">setProgramSearchPath</a> :: <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifyPath">userSpecifyPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifyPaths">userSpecifyPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userMaybeSpecifyPath">userMaybeSpecifyPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifyArgs">userSpecifyArgs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifyArgss">userSpecifyArgss</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>])] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:userSpecifiedArgs">userSpecifiedArgs</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>]</li><li class="src short"><a href="#v:lookupProgram">lookupProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></li><li class="src short"><a href="#v:lookupProgramVersion">lookupProgramVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> (<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Version.html#t:Version">Version</a>, <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>))</li><li class="src short"><a href="#v:updateProgram">updateProgram</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:configureProgram">configureProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:configureAllKnownPrograms">configureAllKnownPrograms</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:reconfigurePrograms">reconfigurePrograms</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>])] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:requireProgram">requireProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:requireProgramVersion">requireProgramVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Version.html#t:Version">Version</a>, <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><a href="#v:runDbProgram">runDbProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:getDbProgramOutput">getDbProgramOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:ghcProgram">ghcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:ghcPkgProgram">ghcPkgProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:ghcjsProgram">ghcjsProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:ghcjsPkgProgram">ghcjsPkgProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:lhcProgram">lhcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:lhcPkgProgram">lhcPkgProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:hmakeProgram">hmakeProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:jhcProgram">jhcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:uhcProgram">uhcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:gccProgram">gccProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:arProgram">arProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:stripProgram">stripProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:happyProgram">happyProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:alexProgram">alexProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:hsc2hsProgram">hsc2hsProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:c2hsProgram">c2hsProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:cpphsProgram">cpphsProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:hscolourProgram">hscolourProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:doctestProgram">doctestProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:haddockProgram">haddockProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:greencardProgram">greencardProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:ldProgram">ldProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:tarProgram">tarProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:cppProgram">cppProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:pkgConfigProgram">pkgConfigProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><a href="#v:hpcProgram">hpcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ProgramConfiguration">ProgramConfiguration</a> = <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></li><li class="src short"><a href="#v:emptyProgramConfiguration">emptyProgramConfiguration</a> :: <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a></li><li class="src short"><a href="#v:defaultProgramConfiguration">defaultProgramConfiguration</a> :: <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a></li><li class="src short"><a href="#v:restoreProgramConfiguration">restoreProgramConfiguration</a> :: [<a href="Distribution-Simple-Program.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a> -> <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a></li><li class="src short"><a href="#v:rawSystemProgram">rawSystemProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:rawSystemProgramStdout">rawSystemProgramStdout</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:rawSystemProgramConf">rawSystemProgramConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:rawSystemProgramStdoutConf">rawSystemProgramStdoutConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:findProgramOnPath">findProgramOnPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:findProgramLocation">findProgramLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li></ul></div><div id="interface"><h1 id="g:1">Program and functions for constructing them</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Program" class="def">Program</a> <a href="#t:Program" class="selflink">#</a></p><div class="doc"><p>Represents a program which can be configured.</p><p>Note: rather than constructing this directly, start with <code><a href="Distribution-Simple-Program.html#v:simpleProgram">simpleProgram</a></code> and+ override any extra fields.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Program" class="def">Program</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:programName" class="def">programName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The simple name of the program, eg. ghc</p></div></li><li><dfn class="src"><a id="v:programFindLocation" class="def">programFindLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))</dfn><div class="doc"><p>A function to search for the program if its location was not+ specified by the user. Usually this will just be a call to+ <code><a href="Distribution-Simple-Program.html#v:findProgramOnSearchPath">findProgramOnSearchPath</a></code>.</p><p>It is supplied with the prevailing search path which will typically+ just be used as-is, but can be extended or ignored as needed.</p><p>For the purpose of change monitoring, in addition to the location+ where the program was found, it returns all the other places that+ were tried.</p></div></li><li><dfn class="src"><a id="v:programFindVersion" class="def">programFindVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</dfn><div class="doc"><p>Try to find the version of the program. For many programs this is+ not possible or is not necessary so it's OK to return Nothing.</p></div></li><li><dfn class="src"><a id="v:programPostConf" class="def">programPostConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></dfn><div class="doc"><p>A function to do any additional configuration after we have+ located the program (and perhaps identified its version). For example+ it could add args, or environment vars.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Program" class="caption collapser" onclick="toggleSection('i:Program')">Instances</p><div id="section.i:Program" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Program:Show:1" class="instance expander" onclick="toggleSection('i:id:Program:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program.html#t:Program">Program</a></span> <a href="#t:Program" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Program:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program.html#t:Program">Program</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ProgramSearchPath" class="def">ProgramSearchPath</a> = [<a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>] <a href="#t:ProgramSearchPath" class="selflink">#</a></p><div class="doc"><p>A search path to use when locating executables. This is analogous+ to the unix <code>$PATH</code> or win32 <code>%PATH%</code> but with the ability to use+ the system default method for finding executables (<code>findExecutable</code> which+ on unix is simply looking on the <code>$PATH</code> but on win32 is a bit more+ complicated).</p><p>The default to use is <code>[ProgSearchPathDefault]</code> but you can add extra dirs+ either before, after or instead of the default, e.g. here we add an extra+ dir to search after the usual ones.</p><pre>['ProgramSearchPathDefault', 'ProgramSearchPathDir' dir]</pre></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProgramSearchPathEntry" class="def">ProgramSearchPathEntry</a> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ProgramSearchPathDir" class="def">ProgramSearchPathDir</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>A specific dir</p></td></tr><tr><td class="src"><a id="v:ProgramSearchPathDefault" class="def">ProgramSearchPathDefault</a></td><td class="doc"><p>The system default</p></td></tr></table></div><div class="subs instances"><p id="control.i:ProgramSearchPathEntry" class="caption collapser" onclick="toggleSection('i:ProgramSearchPathEntry')">Instances</p><div id="section.i:ProgramSearchPathEntry" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Eq:1" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Generic:2" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> x -> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Binary:3" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Binary:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Binary:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramSearchPathEntry:Rep:4" class="instance expander" onclick="toggleSection('i:id:ProgramSearchPathEntry:Rep:4')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a></span> <a href="#t:ProgramSearchPathEntry" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramSearchPathEntry:Rep:4" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ProgramSearchPathEntry" "Distribution.Simple.Program.Find" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProgramSearchPathDir" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ProgramSearchPathDefault" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:simpleProgram" class="def">simpleProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:simpleProgram" class="selflink">#</a></p><div class="doc"><p>Make a simple named program.</p><p>By default we'll just search for it in the path and not try to find the+ version name. You can override these behaviours if necessary, eg:</p><pre>(simpleProgram "foo") { programFindLocation = ... , programFindVersion ... }</pre></div></div><div class="top"><p class="src"><a id="v:findProgramOnSearchPath" class="def">findProgramOnSearchPath</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) <a href="#v:findProgramOnSearchPath" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultProgramSearchPath" class="def">defaultProgramSearchPath</a> :: <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a> <a href="#v:defaultProgramSearchPath" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findProgramVersion" class="def">findProgramVersion</a> <a href="#v:findProgramVersion" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>version args</p></td></tr><tr><td class="src">-> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</td><td class="doc"><p>function to select version+ number from program output</p></td></tr><tr><td class="src">-> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>location</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Look for a program and try to find it's version number. It can accept+ either an absolute path or the name of a program binary, in which case we+ will look for the program on the path.</p></div></div><h1 id="g:2">Configured program and related functions</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ConfiguredProgram" class="def">ConfiguredProgram</a> <a href="#t:ConfiguredProgram" class="selflink">#</a></p><div class="doc"><p>Represents a program which has been configured and is thus ready to be run.</p><p>These are usually made by configuring a <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code>, but if you have to+ construct one directly then start with <code><a href="Distribution-Simple-Program-Types.html#v:simpleConfiguredProgram">simpleConfiguredProgram</a></code> and+ override any extra fields.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ConfiguredProgram" class="def">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:programId" class="def">programId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Just the name again</p></div></li><li><dfn class="src"><a id="v:programVersion" class="def">programVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></dfn><div class="doc"><p>The version of this program, if it is known.</p></div></li><li><dfn class="src"><a id="v:programDefaultArgs" class="def">programDefaultArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>Default command-line args for this program.+ These flags will appear first on the command line, so they can be+ overridden by subsequent flags.</p></div></li><li><dfn class="src"><a id="v:programOverrideArgs" class="def">programOverrideArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>Override command-line args for this program.+ These flags will appear last on the command line, so they override+ all earlier flags.</p></div></li><li><dfn class="src"><a id="v:programOverrideEnv" class="def">programOverrideEnv</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</dfn><div class="doc"><p>Override environment variables for this program.+ These env vars will extend/override the prevailing environment of+ the current to form the environment for the new process.</p></div></li><li><dfn class="src"><a id="v:programProperties" class="def">programProperties</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A key-value map listing various properties of the program, useful+ for feature detection. Populated during the configuration step, key+ names depend on the specific program.</p></div></li><li><dfn class="src"><a id="v:programLocation" class="def">programLocation</a> :: <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a></dfn><div class="doc"><p>Location of the program. eg. <code>/usr/bin/ghc-6.4</code></p></div></li><li><dfn class="src"><a id="v:programMonitorFiles" class="def">programMonitorFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>In addition to the <code><a href="Distribution-Simple-Program.html#v:programLocation">programLocation</a></code> where the program was found,+ these are additional locations that were looked at. The combination+ of ths found location and these not-found locations can be used to+ monitor to detect when the re-configuring the program might give a+ different result (e.g. found in a different location).</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ConfiguredProgram" class="caption collapser" onclick="toggleSection('i:ConfiguredProgram')">Instances</p><div id="section.i:ConfiguredProgram" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Eq:1" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Read:2" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Show:3" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Generic:4" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> x -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Binary:5" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfiguredProgram:Rep:6" class="instance expander" onclick="toggleSection('i:id:ConfiguredProgram:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></span> <a href="#t:ConfiguredProgram" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfiguredProgram:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ConfiguredProgram" "Distribution.Simple.Program.Types" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ConfiguredProgram" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programVersion") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programDefaultArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programOverrideArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programOverrideEnv") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programProperties") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programLocation") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "programMonitorFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:programPath" class="def">programPath</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:programPath" class="selflink">#</a></p><div class="doc"><p>The full path of a configured program.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ProgArg" class="def">ProgArg</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#t:ProgArg" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProgramLocation" class="def">ProgramLocation</a> <a href="#t:ProgramLocation" class="selflink">#</a></p><div class="doc"><p>Where a program was found. Also tells us whether it's specified by user or+ not. This includes not just the path, but the program as well.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:UserSpecified" class="def">UserSpecified</a></td><td class="doc"><p>The user gave the path to this program,+ eg. --ghc-path=/usr/bin/ghc-6.6</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:locationPath" class="def">locationPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:FoundOnSystem" class="def">FoundOnSystem</a></td><td class="doc"><p>The program was found automatically.</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:locationPath" class="def">locationPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ProgramLocation" class="caption collapser" onclick="toggleSection('i:ProgramLocation')">Instances</p><div id="section.i:ProgramLocation" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Eq:1" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> -> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> -> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Read:2" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Show:3" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Generic:4" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> x -> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Binary:5" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramLocation:Rep:6" class="instance expander" onclick="toggleSection('i:id:ProgramLocation:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a></span> <a href="#t:ProgramLocation" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ProgramLocation:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program.html#t:ProgramLocation">ProgramLocation</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ProgramLocation" "Distribution.Simple.Program.Types" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UserSpecified" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "locationPath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FoundOnSystem" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "locationPath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:runProgram" class="def">runProgram</a> <a href="#v:runProgram" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc"><p>Verbosity</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc"><p>The program to run</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>]</td><td class="doc"><p>Any <em>extra</em> arguments to add</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Runs the given configured program.</p></div></div><div class="top"><p class="src"><a id="v:getProgramOutput" class="def">getProgramOutput</a> <a href="#v:getProgramOutput" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc"><p>Verbosity</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc"><p>The program to run</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>]</td><td class="doc"><p>Any <em>extra</em> arguments to add</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Runs the given configured program and gets the output.</p></div></div><div class="top"><p class="src"><a id="v:suppressOverrideArgs" class="def">suppressOverrideArgs</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:suppressOverrideArgs" class="selflink">#</a></p><div class="doc"><p>Suppress any extra arguments added by the user.</p></div></div><h1 id="g:3">Program invocations</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProgramInvocation" class="def">ProgramInvocation</a> <a href="#t:ProgramInvocation" class="selflink">#</a></p><div class="doc"><p>Represents a specific invocation of a specific program.</p><p>This is used as an intermediate type between deciding how to call a program+ and actually doing it. This provides the opportunity to the caller to+ adjust how the program will be called. These invocations can either be run+ directly or turned into shell or batch scripts.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ProgramInvocation" class="def">ProgramInvocation</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:progInvokePath" class="def">progInvokePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeArgs" class="def">progInvokeArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeEnv" class="def">progInvokeEnv</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokePathEnv" class="def">progInvokePathEnv</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeCwd" class="def">progInvokeCwd</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeInput" class="def">progInvokeInput</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeInputEncoding" class="def">progInvokeInputEncoding</a> :: <a href="Distribution-Simple-Program-Run.html#t:IOEncoding">IOEncoding</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:progInvokeOutputEncoding" class="def">progInvokeOutputEncoding</a> :: <a href="Distribution-Simple-Program-Run.html#t:IOEncoding">IOEncoding</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:emptyProgramInvocation" class="def">emptyProgramInvocation</a> :: <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:emptyProgramInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:simpleProgramInvocation" class="def">simpleProgramInvocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:simpleProgramInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:programInvocation" class="def">programInvocation</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a> <a href="#v:programInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:runProgramInvocation" class="def">runProgramInvocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:runProgramInvocation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getProgramInvocationOutput" class="def">getProgramInvocationOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramInvocation">ProgramInvocation</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:getProgramInvocationOutput" class="selflink">#</a></p></div><h1 id="g:4">The collection of unconfigured and configured programs</h1><div class="top"><p class="src"><a id="v:builtinPrograms" class="def">builtinPrograms</a> :: [<a href="Distribution-Simple-Program.html#t:Program">Program</a>] <a href="#v:builtinPrograms" class="selflink">#</a></p><div class="doc"><p>The default list of programs.+ These programs are typically used internally to Cabal.</p></div></div><h1 id="g:5">The collection of configured programs we can run</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ProgramDb" class="def">ProgramDb</a> <a href="#t:ProgramDb" class="selflink">#</a></p><div class="doc"><p>The configuration is a collection of information about programs. It+ contains information both about configured programs and also about programs+ that we are yet to configure.</p><p>The idea is that we start from a collection of unconfigured programs and one+ by one we try to configure them at which point we move them into the+ configured collection. For unconfigured programs we record not just the+ <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code> but also any user-provided arguments and location for the program.</p></div><div class="subs instances"><p id="control.i:ProgramDb" class="caption collapser" onclick="toggleSection('i:ProgramDb')">Instances</p><div id="section.i:ProgramDb" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramDb:Read:1" class="instance expander" onclick="toggleSection('i:id:ProgramDb:Read:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></span> <a href="#t:ProgramDb" class="selflink">#</a></td><td class="doc"><p>Note that this instance does not preserve the known <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code>s.+ See <code><a href="Distribution-Simple-Program.html#v:restoreProgramDb">restoreProgramDb</a></code> for details.</p></td></tr><tr><td colspan="2"><div id="section.i:id:ProgramDb:Read:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramDb:Show:2" class="instance expander" onclick="toggleSection('i:id:ProgramDb:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></span> <a href="#t:ProgramDb" class="selflink">#</a></td><td class="doc"><p>Note that this instance does not preserve the known <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code>s.+ See <code><a href="Distribution-Simple-Program.html#v:restoreProgramDb">restoreProgramDb</a></code> for details.</p></td></tr><tr><td colspan="2"><div id="section.i:id:ProgramDb:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ProgramDb:Binary:3" class="instance expander" onclick="toggleSection('i:id:ProgramDb:Binary:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></span> <a href="#t:ProgramDb" class="selflink">#</a></td><td class="doc"><p>Note that this instance does not preserve the known <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code>s.+ See <code><a href="Distribution-Simple-Program.html#v:restoreProgramDb">restoreProgramDb</a></code> for details.</p></td></tr><tr><td colspan="2"><div id="section.i:id:ProgramDb:Binary:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultProgramDb" class="def">defaultProgramDb</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:defaultProgramDb" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emptyProgramDb" class="def">emptyProgramDb</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:emptyProgramDb" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:restoreProgramDb" class="def">restoreProgramDb</a> :: [<a href="Distribution-Simple-Program.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:restoreProgramDb" class="selflink">#</a></p><div class="doc"><p>The 'Read'\/'Show' and <code><a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a></code> instances do not preserve all the+ unconfigured <code>Programs</code> because <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code> is not in 'Read'\/'Show' because+ it contains functions. So to fully restore a deserialised <code><a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></code> use+ this function to add back all the known <code><a href="Distribution-Simple-Program.html#t:Program">Program</a></code>s.</p><ul><li>It does not add the default programs, but you probably want them, use+ <code><a href="Distribution-Simple-Program.html#v:builtinPrograms">builtinPrograms</a></code> in addition to any extra you might need.</li></ul></div></div><div class="top"><p class="src"><a id="v:addKnownProgram" class="def">addKnownProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:addKnownProgram" class="selflink">#</a></p><div class="doc"><p>Add a known program that we may configure later</p></div></div><div class="top"><p class="src"><a id="v:addKnownPrograms" class="def">addKnownPrograms</a> :: [<a href="Distribution-Simple-Program.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:addKnownPrograms" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lookupKnownProgram" class="def">lookupKnownProgram</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:lookupKnownProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:knownPrograms" class="def">knownPrograms</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> [(<a href="Distribution-Simple-Program.html#t:Program">Program</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>)] <a href="#v:knownPrograms" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getProgramSearchPath" class="def">getProgramSearchPath</a> :: <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a> <a href="#v:getProgramSearchPath" class="selflink">#</a></p><div class="doc"><p>Get the current <code><a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a></code> used by the <code><a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></code>.+ This is the default list of locations where programs are looked for when+ configuring them. This can be overridden for specific programs (with+ <code><a href="Distribution-Simple-Program.html#v:userSpecifyPath">userSpecifyPath</a></code>), and specific known programs can modify or ignore this+ search path in their own configuration code.</p></div></div><div class="top"><p class="src"><a id="v:setProgramSearchPath" class="def">setProgramSearchPath</a> :: <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:setProgramSearchPath" class="selflink">#</a></p><div class="doc"><p>Change the current <code><a href="Distribution-Simple-Program.html#t:ProgramSearchPath">ProgramSearchPath</a></code> used by the <code><a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></code>.+ This will affect programs that are configured from here on, so you+ should usually set it before configuring any programs.</p></div></div><div class="top"><p class="src"><a id="v:userSpecifyPath" class="def">userSpecifyPath</a> <a href="#v:userSpecifyPath" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Program name</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>user-specified path to the program</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>User-specify this path. Basically override any path information+ for this program in the configuration. If it's not a known+ program ignore it.</p></div></div><div class="top"><p class="src"><a id="v:userSpecifyPaths" class="def">userSpecifyPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:userSpecifyPaths" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Program.html#v:userSpecifyPath">userSpecifyPath</a></code> but for a list of progs and their paths.</p></div></div><div class="top"><p class="src"><a id="v:userMaybeSpecifyPath" class="def">userMaybeSpecifyPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:userMaybeSpecifyPath" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:userSpecifyArgs" class="def">userSpecifyArgs</a> <a href="#v:userSpecifyArgs" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Program name</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>]</td><td class="doc"><p>user-specified args</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>User-specify the arguments for this program. Basically override+ any args information for this program in the configuration. If it's+ not a known program, ignore it..</p></div></div><div class="top"><p class="src"><a id="v:userSpecifyArgss" class="def">userSpecifyArgss</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>])] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:userSpecifyArgss" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Program.html#v:userSpecifyPath">userSpecifyPath</a></code> but for a list of progs and their args.</p></div></div><div class="top"><p class="src"><a id="v:userSpecifiedArgs" class="def">userSpecifiedArgs</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] <a href="#v:userSpecifiedArgs" class="selflink">#</a></p><div class="doc"><p>Get any extra args that have been previously specified for a program.</p></div></div><div class="top"><p class="src"><a id="v:lookupProgram" class="def">lookupProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> <a href="#v:lookupProgram" class="selflink">#</a></p><div class="doc"><p>Try to find a configured program</p></div></div><div class="top"><p class="src"><a id="v:lookupProgramVersion" class="def">lookupProgramVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> (<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Version.html#t:Version">Version</a>, <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>)) <a href="#v:lookupProgramVersion" class="selflink">#</a></p><div class="doc"><p>Check that a program is configured and available to be run.</p><p>Additionally check that the program version number is suitable and return+ it. For example you could require <code><a href="Distribution-Version.html#v:AnyVersion">AnyVersion</a></code> or <code><code><a href="Distribution-Version.html#v:orLaterVersion">orLaterVersion</a></code>+ (<code><a href="Distribution-Version.html#t:Version">Version</a></code> [1,0] [])</code></p><p>It returns the configured program, its version number and a possibly updated+ <code><a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></code>. If the program could not be configured or the version is+ unsuitable, it returns an error value.</p></div></div><div class="top"><p class="src"><a id="v:updateProgram" class="def">updateProgram</a> :: <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:updateProgram" class="selflink">#</a></p><div class="doc"><p>Update a configured program in the database.</p></div></div><div class="top"><p class="src"><a id="v:configureProgram" class="def">configureProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:configureProgram" class="selflink">#</a></p><div class="doc"><p>Try to configure a specific program. If the program is already included in+ the collection of unconfigured programs then we use any user-supplied+ location and arguments. If the program gets configured successfully it gets+ added to the configured collection.</p><p>Note that it is not a failure if the program cannot be configured. It's only+ a failure if the user supplied a location and the program could not be found+ at that location.</p><p>The reason for it not being a failure at this stage is that we don't know up+ front all the programs we will need, so we try to configure them all.+ To verify that a program was actually successfully configured use+ <code><a href="Distribution-Simple-Program.html#v:requireProgram">requireProgram</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:configureAllKnownPrograms" class="def">configureAllKnownPrograms</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:configureAllKnownPrograms" class="selflink">#</a></p><div class="doc"><p>Try to configure all the known programs that have not yet been configured.</p></div></div><div class="top"><p class="src"><a id="v:reconfigurePrograms" class="def">reconfigurePrograms</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>])] -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#v:reconfigurePrograms" class="selflink">#</a></p><div class="doc"><p>reconfigure a bunch of programs given new user-specified args. It takes+ the same inputs as <code><a href="Distribution-Simple-Program.html#v:userSpecifyPath">userSpecifyPath</a></code> and <code><a href="Distribution-Simple-Program.html#v:userSpecifyArgs">userSpecifyArgs</a></code> and for all progs+ with a new path it calls <code><a href="Distribution-Simple-Program.html#v:configureProgram">configureProgram</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:requireProgram" class="def">requireProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>) <a href="#v:requireProgram" class="selflink">#</a></p><div class="doc"><p>Check that a program is configured and available to be run.</p><p>It raises an exception if the program could not be configured, otherwise+ it returns the configured program.</p></div></div><div class="top"><p class="src"><a id="v:requireProgramVersion" class="def">requireProgramVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a>, <a href="Distribution-Version.html#t:Version">Version</a>, <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a>) <a href="#v:requireProgramVersion" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Program.html#v:lookupProgramVersion">lookupProgramVersion</a></code>, but raises an exception in case of error+ instead of returning 'Left errMsg'.</p></div></div><div class="top"><p class="src"><a id="v:runDbProgram" class="def">runDbProgram</a> <a href="#v:runDbProgram" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc"><p>verbosity</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:Program">Program</a></td><td class="doc"><p>The program to run</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></td><td class="doc"><p>look up the program here</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>]</td><td class="doc"><p>Any <em>extra</em> arguments to add</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Looks up the given program in the program database and runs it.</p></div></div><div class="top"><p class="src"><a id="v:getDbProgramOutput" class="def">getDbProgramOutput</a> <a href="#v:getDbProgramOutput" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc"><p>verbosity</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:Program">Program</a></td><td class="doc"><p>The program to run</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a></td><td class="doc"><p>look up the program here</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>]</td><td class="doc"><p>Any <em>extra</em> arguments to add</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Looks up the given program in the program database and runs it.</p></div></div><h1 id="g:6">Programs that Cabal knows about</h1><div class="top"><p class="src"><a id="v:ghcProgram" class="def">ghcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:ghcProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ghcPkgProgram" class="def">ghcPkgProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:ghcPkgProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ghcjsProgram" class="def">ghcjsProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:ghcjsProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ghcjsPkgProgram" class="def">ghcjsPkgProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:ghcjsPkgProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lhcProgram" class="def">lhcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:lhcProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lhcPkgProgram" class="def">lhcPkgProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:lhcPkgProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hmakeProgram" class="def">hmakeProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:hmakeProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:jhcProgram" class="def">jhcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:jhcProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:uhcProgram" class="def">uhcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:uhcProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:gccProgram" class="def">gccProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:gccProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:arProgram" class="def">arProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:arProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:stripProgram" class="def">stripProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:stripProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:happyProgram" class="def">happyProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:happyProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:alexProgram" class="def">alexProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:alexProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hsc2hsProgram" class="def">hsc2hsProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:hsc2hsProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:c2hsProgram" class="def">c2hsProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:c2hsProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:cpphsProgram" class="def">cpphsProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:cpphsProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hscolourProgram" class="def">hscolourProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:hscolourProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:doctestProgram" class="def">doctestProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:doctestProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haddockProgram" class="def">haddockProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:haddockProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:greencardProgram" class="def">greencardProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:greencardProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ldProgram" class="def">ldProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:ldProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:tarProgram" class="def">tarProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:tarProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:cppProgram" class="def">cppProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:cppProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pkgConfigProgram" class="def">pkgConfigProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:pkgConfigProgram" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hpcProgram" class="def">hpcProgram</a> :: <a href="Distribution-Simple-Program.html#t:Program">Program</a> <a href="#v:hpcProgram" class="selflink">#</a></p></div><h1 id="g:7">deprecated</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ProgramConfiguration" class="def">ProgramConfiguration</a> = <a href="Distribution-Simple-Program.html#t:ProgramDb">ProgramDb</a> <a href="#t:ProgramConfiguration" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use ProgramDb instead</p></div></div></div><div class="top"><p class="src"><a id="v:emptyProgramConfiguration" class="def">emptyProgramConfiguration</a> :: <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a> <a href="#v:emptyProgramConfiguration" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use emptyProgramDb instead</p></div></div></div><div class="top"><p class="src"><a id="v:defaultProgramConfiguration" class="def">defaultProgramConfiguration</a> :: <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a> <a href="#v:defaultProgramConfiguration" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use defaultProgramDb instead</p></div></div></div><div class="top"><p class="src"><a id="v:restoreProgramConfiguration" class="def">restoreProgramConfiguration</a> :: [<a href="Distribution-Simple-Program.html#t:Program">Program</a>] -> <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a> -> <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a> <a href="#v:restoreProgramConfiguration" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use restoreProgramDb instead</p></div></div></div><div class="top"><p class="src"><a id="v:rawSystemProgram" class="def">rawSystemProgram</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:rawSystemProgram" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use runProgram instead</p></div></div></div><div class="top"><p class="src"><a id="v:rawSystemProgramStdout" class="def">rawSystemProgramStdout</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">ConfiguredProgram</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:rawSystemProgramStdout" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use getProgramOutput instead</p></div></div></div><div class="top"><p class="src"><a id="v:rawSystemProgramConf" class="def">rawSystemProgramConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:rawSystemProgramConf" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use runDbProgram instead</p></div></div></div><div class="top"><p class="src"><a id="v:rawSystemProgramStdoutConf" class="def">rawSystemProgramStdoutConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program.html#t:Program">Program</a> -> <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a> -> [<a href="Distribution-Simple-Program.html#t:ProgArg">ProgArg</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:rawSystemProgramStdoutConf" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use getDbProgramOutput instead</p></div></div></div><div class="top"><p class="src"><a id="v:findProgramOnPath" class="def">findProgramOnPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) <a href="#v:findProgramOnPath" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: use findProgramOnSearchPath instead</p></div></div></div><div class="top"><p class="src"><a id="v:findProgramLocation" class="def">findProgramLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) <a href="#v:findProgramLocation" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: No longer used within Cabal, try findProgramOnSearchPath</p></div><p>Look for a program on the path.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Register.html view
@@ -0,0 +1,27 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Register</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Register</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module deals with registering and unregistering packages. There are a+ couple ways it can do this, one is to do it directly. Another is to generate+ a script that can be run later to do it. The idea here being that the user+ is shielded from the details of what command to use for package registration+ for a particular compiler. In practice this aspect was not especially+ popular so we also provide a way to simply generate the package registration+ file which then must be manually passed to <code>ghc-pkg</code>. It is possible to+ generate registration information for where the package is to be installed,+ or alternatively to register the package in place in the build tree. The+ latter is occasionally handy, and will become more important when we try to+ build multi-package systems.</p><p>This module does not delegate anything to the per-compiler modules but just+ mixes it all in in this module, which is rather unsatisfactory. The script+ generation and the unregister feature are not well used or tested.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:register">register</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:unregister">unregister</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:internalPackageDBPath">internalPackageDBPath</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:initPackageDB">initPackageDB</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:doesPackageDBExist">doesPackageDBExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:createPackageDB">createPackageDB</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:deletePackageDB">deletePackageDB</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:abiHash">abiHash</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></li><li class="src short"><a href="#v:invokeHcPkg">invokeHcPkg</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:registerPackage">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Register.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><span class="keyword">data</span> <a href="#t:RegisterOptions">RegisterOptions</a> = <a href="#v:RegisterOptions">RegisterOptions</a> {<ul class="subs"><li><a href="#v:registerAllowOverwrite">registerAllowOverwrite</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:registerMultiInstance">registerMultiInstance</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:registerSuppressFilesCheck">registerSuppressFilesCheck</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:defaultRegisterOptions">defaultRegisterOptions</a> :: <a href="Distribution-Simple-Register.html#t:RegisterOptions">RegisterOptions</a></li><li class="src short"><a href="#v:generateRegistrationInfo">generateRegistrationInfo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></li><li class="src short"><a href="#v:inplaceInstalledPackageInfo">inplaceInstalledPackageInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></li><li class="src short"><a href="#v:absoluteInstalledPackageInfo">absoluteInstalledPackageInfo</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></li><li class="src short"><a href="#v:generalInstalledPackageInfo">generalInstalledPackageInfo</a> :: ([<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:register" class="def">register</a> <a href="#v:register" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></td><td class="doc"><p>Install in the user's database?; verbose</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:unregister" class="def">unregister</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:unregister" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:internalPackageDBPath" class="def">internalPackageDBPath</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:internalPackageDBPath" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:initPackageDB" class="def">initPackageDB</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:initPackageDB" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:doesPackageDBExist" class="def">doesPackageDBExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:doesPackageDBExist" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:createPackageDB" class="def">createPackageDB</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:createPackageDB" class="selflink">#</a></p><div class="doc"><p>Create an empty package DB at the specified location.</p></div></div><div class="top"><p class="src"><a id="v:deletePackageDB" class="def">deletePackageDB</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:deletePackageDB" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:abiHash" class="def">abiHash</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> <a href="#v:abiHash" class="selflink">#</a></p><div class="doc"><p>Compute the <code><a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></code> of a library that we built inplace.</p></div></div><div class="top"><p class="src"><a id="v:invokeHcPkg" class="def">invokeHcPkg</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:invokeHcPkg" class="selflink">#</a></p><div class="doc"><p>Run <code>hc-pkg</code> using a given package DB stack, directly forwarding the+ provided command-line arguments to it.</p></div></div><div class="top"><p class="src"><a id="v:registerPackage" class="def">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Simple-Register.html#t:RegisterOptions">RegisterOptions</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:registerPackage" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RegisterOptions" class="def">RegisterOptions</a> <a href="#t:RegisterOptions" class="selflink">#</a></p><div class="doc"><p>Additional variations in the behaviour for <code><a href="Distribution-Simple-Program-HcPkg.html#v:register">register</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RegisterOptions" class="def">RegisterOptions</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:registerAllowOverwrite" class="def">registerAllowOverwrite</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Allows re-registering / overwriting an existing package</p></div></li><li><dfn class="src"><a id="v:registerMultiInstance" class="def">registerMultiInstance</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Insist on the ability to register multiple instances of a+ single version of a single package. This will fail if the <code>hc-pkg</code>+ does not support it, see <code><a href="Distribution-Simple-Program-HcPkg.html#v:nativeMultiInstance">nativeMultiInstance</a></code> and+ <code><a href="Distribution-Simple-Program-HcPkg.html#v:recacheMultiInstance">recacheMultiInstance</a></code>.</p></div></li><li><dfn class="src"><a id="v:registerSuppressFilesCheck" class="def">registerSuppressFilesCheck</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Require that no checks are performed on the existence of package+ files mentioned in the registration info. This must be used if+ registering prior to putting the files in their final place. This will+ fail if the <code>hc-pkg</code> does not support it, see <code><a href="Distribution-Simple-Program-HcPkg.html#v:suppressFilesCheck">suppressFilesCheck</a></code>.</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:defaultRegisterOptions" class="def">defaultRegisterOptions</a> :: <a href="Distribution-Simple-Register.html#t:RegisterOptions">RegisterOptions</a> <a href="#v:defaultRegisterOptions" class="selflink">#</a></p><div class="doc"><p>Defaults are <code>True</code>, <code>False</code> and <code>False</code></p></div></div><div class="top"><p class="src"><a id="v:generateRegistrationInfo" class="def">generateRegistrationInfo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:generateRegistrationInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:inplaceInstalledPackageInfo" class="def">inplaceInstalledPackageInfo</a> <a href="#v:inplaceInstalledPackageInfo" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>top of the build tree</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>location of the dist tree</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-Library.html#t:Library">Library</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Construct <code><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></code> for a library that is in place in the+ build tree.</p><p>This function knows about the layout of in place packages.</p></div></div><div class="top"><p class="src"><a id="v:absoluteInstalledPackageInfo" class="def">absoluteInstalledPackageInfo</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> <a href="#v:absoluteInstalledPackageInfo" class="selflink">#</a></p><div class="doc"><p>Construct <code><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></code> for the final install location of a+ library package.</p><p>This function knows about the layout of installed packages.</p></div></div><div class="top"><p class="src"><a id="v:generalInstalledPackageInfo" class="def">generalInstalledPackageInfo</a> <a href="#v:generalInstalledPackageInfo" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: ([<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])</td><td class="doc"><p>Translate relative include dir paths to+ absolute paths.</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-Library.html#t:Library">Library</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Construct <code><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a></code> for a library in a package, given a set+ of installation directories.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Setup.html view
@@ -0,0 +1,56 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Setup</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004<br />Duncan Coutts 2007</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Setup</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is a big module, but not very complicated. The code is very regular+ and repetitive. It defines the command line interface for all the Cabal+ commands. For each command (like <code>configure</code>, <code>build</code> etc) it defines a type+ that holds all the flags, the default set of flags and a <code><a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a></code> that+ maps command line flags to and from the corresponding flags type.</p><p>All the flags types are instances of <code><a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a></code>, see+ <a href="http://www.haskell.org/pipermail/cabal-devel/2007-December/001509.html">http://www.haskell.org/pipermail/cabal-devel/2007-December/001509.html</a>+ for an explanation.</p><p>The types defined here get used in the front end and especially in+ <code>cabal-install</code> which has to do quite a bit of manipulating sets of command+ line flags.</p><p>This is actually relatively nice, it works quite well. The main change it+ needs is to unify it with the code for managing sets of fields that can be+ read and written from files. This would allow us to save configure flags in+ config files.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:GlobalFlags">GlobalFlags</a> = <a href="#v:GlobalFlags">GlobalFlags</a> {<ul class="subs"><li><a href="#v:globalVersion">globalVersion</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:globalNumericVersion">globalNumericVersion</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:emptyGlobalFlags">emptyGlobalFlags</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a></li><li class="src short"><a href="#v:defaultGlobalFlags">defaultGlobalFlags</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a></li><li class="src short"><a href="#v:globalCommand">globalCommand</a> :: [<a href="Distribution-Simple-Command.html#t:Command">Command</a> action] -> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ConfigFlags">ConfigFlags</a> = <a href="#v:ConfigFlags">ConfigFlags</a> {<ul class="subs"><li><a href="#v:configArgs">configArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:configPrograms_">configPrograms_</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li><a href="#v:configProgramPaths">configProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li><a href="#v:configProgramArgs">configProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:configProgramPathExtra">configProgramPathExtra</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:configHcFlavor">configHcFlavor</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></li><li><a href="#v:configHcPath">configHcPath</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:configHcPkg">configHcPkg</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:configVanillaLib">configVanillaLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configProfLib">configProfLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configSharedLib">configSharedLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configDynExe">configDynExe</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configProfExe">configProfExe</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configProf">configProf</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configProfDetail">configProfDetail</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></li><li><a href="#v:configProfLibDetail">configProfLibDetail</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></li><li><a href="#v:configConfigureArgs">configConfigureArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:configOptimization">configOptimization</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></li><li><a href="#v:configProgPrefix">configProgPrefix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:configProgSuffix">configProgSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:configInstallDirs">configInstallDirs</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)</li><li><a href="#v:configScratchDir">configScratchDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:configExtraLibDirs">configExtraLibDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:configExtraFrameworkDirs">configExtraFrameworkDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:configExtraIncludeDirs">configExtraIncludeDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:configIPID">configIPID</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:configCID">configCID</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:configDeterministic">configDeterministic</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configDistPref">configDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:configCabalFilePath">configCabalFilePath</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:configVerbosity">configVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li><a href="#v:configUserInstall">configUserInstall</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configPackageDBs">configPackageDBs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>]</li><li><a href="#v:configGHCiLib">configGHCiLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configSplitObjs">configSplitObjs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configStripExes">configStripExes</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configStripLibs">configStripLibs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configConstraints">configConstraints</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</li><li><a href="#v:configDependencies">configDependencies</a> :: [(<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>, <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)]</li><li><a href="#v:configInstantiateWith">configInstantiateWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Types-Module.html#t:Module">Module</a>)]</li><li><a href="#v:configConfigurationsFlags">configConfigurationsFlags</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></li><li><a href="#v:configTests">configTests</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configBenchmarks">configBenchmarks</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configCoverage">configCoverage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configLibCoverage">configLibCoverage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configExactConfiguration">configExactConfiguration</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configFlagError">configFlagError</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:configRelocatable">configRelocatable</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:configDebugInfo">configDebugInfo</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></li><li><a href="#v:configAllowOlder">configAllowOlder</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></li><li><a href="#v:configAllowNewer">configAllowNewer</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></li></ul>}</li><li class="src short"><a href="#v:emptyConfigFlags">emptyConfigFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></li><li class="src short"><a href="#v:defaultConfigFlags">defaultConfigFlags</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></li><li class="src short"><a href="#v:configureCommand">configureCommand</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></li><li class="src short"><a href="#v:configPrograms">configPrograms</a> :: <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (<a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:RelaxDeps">RelaxDeps</a><ul class="subs"><li>= <a href="#v:RelaxDepsNone">RelaxDepsNone</a></li><li>| <a href="#v:RelaxDepsSome">RelaxDepsSome</a> [<a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a>]</li><li>| <a href="#v:RelaxDepsAll">RelaxDepsAll</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:RelaxedDep">RelaxedDep</a><ul class="subs"><li>= <a href="#v:RelaxedDep">RelaxedDep</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></li><li>| <a href="#v:RelaxedDepScoped">RelaxedDepScoped</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></li></ul></li><li class="src short"><a href="#v:isRelaxDeps">isRelaxDeps</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><span class="keyword">newtype</span> <a href="#t:AllowNewer">AllowNewer</a> = <a href="#v:AllowNewer">AllowNewer</a> {<ul class="subs"><li><a href="#v:unAllowNewer">unAllowNewer</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></li></ul>}</li><li class="src short"><span class="keyword">newtype</span> <a href="#t:AllowOlder">AllowOlder</a> = <a href="#v:AllowOlder">AllowOlder</a> {<ul class="subs"><li><a href="#v:unAllowOlder">unAllowOlder</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></li></ul>}</li><li class="src short"><a href="#v:configAbsolutePaths">configAbsolutePaths</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></li><li class="src short"><a href="#v:readPackageDbList">readPackageDbList</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>]</li><li class="src short"><a href="#v:showPackageDbList">showPackageDbList</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:CopyFlags">CopyFlags</a> = <a href="#v:CopyFlags">CopyFlags</a> {<ul class="subs"><li><a href="#v:copyDest">copyDest</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a></li><li><a href="#v:copyDistPref">copyDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:copyVerbosity">copyVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li><a href="#v:copyArgs">copyArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyCopyFlags">emptyCopyFlags</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></li><li class="src short"><a href="#v:defaultCopyFlags">defaultCopyFlags</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></li><li class="src short"><a href="#v:copyCommand">copyCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:InstallFlags">InstallFlags</a> = <a href="#v:InstallFlags">InstallFlags</a> {<ul class="subs"><li><a href="#v:installPackageDB">installPackageDB</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></li><li><a href="#v:installDistPref">installDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:installUseWrapper">installUseWrapper</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:installInPlace">installInPlace</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:installVerbosity">installVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li></ul>}</li><li class="src short"><a href="#v:emptyInstallFlags">emptyInstallFlags</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></li><li class="src short"><a href="#v:defaultInstallFlags">defaultInstallFlags</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></li><li class="src short"><a href="#v:installCommand">installCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:DoctestFlags">DoctestFlags</a> = <a href="#v:DoctestFlags">DoctestFlags</a> {<ul class="subs"><li><a href="#v:doctestProgramPaths">doctestProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li><a href="#v:doctestProgramArgs">doctestProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:doctestDistPref">doctestDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:doctestVerbosity">doctestVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li></ul>}</li><li class="src short"><a href="#v:emptyDoctestFlags">emptyDoctestFlags</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></li><li class="src short"><a href="#v:defaultDoctestFlags">defaultDoctestFlags</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></li><li class="src short"><a href="#v:doctestCommand">doctestCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:HaddockTarget">HaddockTarget</a><ul class="subs"><li>= <a href="#v:ForHackage">ForHackage</a></li><li>| <a href="#v:ForDevelopment">ForDevelopment</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:HaddockFlags">HaddockFlags</a> = <a href="#v:HaddockFlags">HaddockFlags</a> {<ul class="subs"><li><a href="#v:haddockProgramPaths">haddockProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li><a href="#v:haddockProgramArgs">haddockProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:haddockHoogle">haddockHoogle</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:haddockHtml">haddockHtml</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:haddockHtmlLocation">haddockHtmlLocation</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:haddockForHackage">haddockForHackage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a></li><li><a href="#v:haddockExecutables">haddockExecutables</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:haddockTestSuites">haddockTestSuites</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:haddockBenchmarks">haddockBenchmarks</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:haddockForeignLibs">haddockForeignLibs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:haddockInternal">haddockInternal</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:haddockCss">haddockCss</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:haddockHscolour">haddockHscolour</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:haddockHscolourCss">haddockHscolourCss</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:haddockContents">haddockContents</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:haddockDistPref">haddockDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:haddockKeepTempFiles">haddockKeepTempFiles</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:haddockVerbosity">haddockVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li></ul>}</li><li class="src short"><a href="#v:emptyHaddockFlags">emptyHaddockFlags</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></li><li class="src short"><a href="#v:defaultHaddockFlags">defaultHaddockFlags</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></li><li class="src short"><a href="#v:haddockCommand">haddockCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:HscolourFlags">HscolourFlags</a> = <a href="#v:HscolourFlags">HscolourFlags</a> {<ul class="subs"><li><a href="#v:hscolourCSS">hscolourCSS</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:hscolourExecutables">hscolourExecutables</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:hscolourTestSuites">hscolourTestSuites</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:hscolourBenchmarks">hscolourBenchmarks</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:hscolourForeignLibs">hscolourForeignLibs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:hscolourDistPref">hscolourDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:hscolourVerbosity">hscolourVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li></ul>}</li><li class="src short"><a href="#v:emptyHscolourFlags">emptyHscolourFlags</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></li><li class="src short"><a href="#v:defaultHscolourFlags">defaultHscolourFlags</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></li><li class="src short"><a href="#v:hscolourCommand">hscolourCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:BuildFlags">BuildFlags</a> = <a href="#v:BuildFlags">BuildFlags</a> {<ul class="subs"><li><a href="#v:buildProgramPaths">buildProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li><a href="#v:buildProgramArgs">buildProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:buildDistPref">buildDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:buildVerbosity">buildVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li><a href="#v:buildNumJobs">buildNumJobs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)</li><li><a href="#v:buildArgs">buildArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyBuildFlags">emptyBuildFlags</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></li><li class="src short"><a href="#v:defaultBuildFlags">defaultBuildFlags</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></li><li class="src short"><a href="#v:buildCommand">buildCommand</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></li><li class="src short"><a href="#v:buildVerbose">buildVerbose</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ReplFlags">ReplFlags</a> = <a href="#v:ReplFlags">ReplFlags</a> {<ul class="subs"><li><a href="#v:replProgramPaths">replProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li><a href="#v:replProgramArgs">replProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:replDistPref">replDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:replVerbosity">replVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li><a href="#v:replReload">replReload</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:defaultReplFlags">defaultReplFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></li><li class="src short"><a href="#v:replCommand">replCommand</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:CleanFlags">CleanFlags</a> = <a href="#v:CleanFlags">CleanFlags</a> {<ul class="subs"><li><a href="#v:cleanSaveConf">cleanSaveConf</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:cleanDistPref">cleanDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:cleanVerbosity">cleanVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li></ul>}</li><li class="src short"><a href="#v:emptyCleanFlags">emptyCleanFlags</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></li><li class="src short"><a href="#v:defaultCleanFlags">defaultCleanFlags</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></li><li class="src short"><a href="#v:cleanCommand">cleanCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:RegisterFlags">RegisterFlags</a> = <a href="#v:RegisterFlags">RegisterFlags</a> {<ul class="subs"><li><a href="#v:regPackageDB">regPackageDB</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></li><li><a href="#v:regGenScript">regGenScript</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:regGenPkgConf">regGenPkgConf</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li><a href="#v:regInPlace">regInPlace</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:regDistPref">regDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:regPrintId">regPrintId</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:regVerbosity">regVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li><a href="#v:regArgs">regArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyRegisterFlags">emptyRegisterFlags</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></li><li class="src short"><a href="#v:defaultRegisterFlags">defaultRegisterFlags</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></li><li class="src short"><a href="#v:registerCommand">registerCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></li><li class="src short"><a href="#v:unregisterCommand">unregisterCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SDistFlags">SDistFlags</a> = <a href="#v:SDistFlags">SDistFlags</a> {<ul class="subs"><li><a href="#v:sDistSnapshot">sDistSnapshot</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:sDistDirectory">sDistDirectory</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:sDistDistPref">sDistDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:sDistListSources">sDistListSources</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:sDistVerbosity">sDistVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li></ul>}</li><li class="src short"><a href="#v:emptySDistFlags">emptySDistFlags</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></li><li class="src short"><a href="#v:defaultSDistFlags">defaultSDistFlags</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></li><li class="src short"><a href="#v:sdistCommand">sdistCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:TestFlags">TestFlags</a> = <a href="#v:TestFlags">TestFlags</a> {<ul class="subs"><li><a href="#v:testDistPref">testDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:testVerbosity">testVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li><a href="#v:testHumanLog">testHumanLog</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:testMachineLog">testMachineLog</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:testShowDetails">testShowDetails</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></li><li><a href="#v:testKeepTix">testKeepTix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:testOptions">testOptions</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyTestFlags">emptyTestFlags</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></li><li class="src short"><a href="#v:defaultTestFlags">defaultTestFlags</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></li><li class="src short"><a href="#v:testCommand">testCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:TestShowDetails">TestShowDetails</a><ul class="subs"><li>= <a href="#v:Never">Never</a></li><li>| <a href="#v:Failures">Failures</a></li><li>| <a href="#v:Always">Always</a></li><li>| <a href="#v:Streaming">Streaming</a></li><li>| <a href="#v:Direct">Direct</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:BenchmarkFlags">BenchmarkFlags</a> = <a href="#v:BenchmarkFlags">BenchmarkFlags</a> {<ul class="subs"><li><a href="#v:benchmarkDistPref">benchmarkDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:benchmarkVerbosity">benchmarkVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li><a href="#v:benchmarkOptions">benchmarkOptions</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyBenchmarkFlags">emptyBenchmarkFlags</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></li><li class="src short"><a href="#v:defaultBenchmarkFlags">defaultBenchmarkFlags</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></li><li class="src short"><a href="#v:benchmarkCommand">benchmarkCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:CopyDest">CopyDest</a><ul class="subs"><li>= <a href="#v:NoCopyDest">NoCopyDest</a></li><li>| <a href="#v:CopyTo">CopyTo</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul></li><li class="src short"><a href="#v:configureArgs">configureArgs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:configureOptions">configureOptions</a> :: <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>]</li><li class="src short"><a href="#v:configureCCompiler">configureCCompiler</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])</li><li class="src short"><a href="#v:configureLinker">configureLinker</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])</li><li class="src short"><a href="#v:buildOptions">buildOptions</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a>]</li><li class="src short"><a href="#v:haddockOptions">haddockOptions</a> :: <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a>]</li><li class="src short"><a href="#v:installDirsOptions">installDirsOptions</a> :: [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>))]</li><li class="src short"><a href="#v:programDbOptions">programDbOptions</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> (flags -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]) -> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])] -> flags -> flags) -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags]</li><li class="src short"><a href="#v:programDbPaths-39-">programDbPaths'</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>) -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> (flags -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]) -> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> flags -> flags) -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags]</li><li class="src short"><a href="#v:programConfigurationOptions">programConfigurationOptions</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> (flags -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]) -> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])] -> flags -> flags) -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags]</li><li class="src short"><a href="#v:programConfigurationPaths-39-">programConfigurationPaths'</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>) -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> (flags -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]) -> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> flags -> flags) -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags]</li><li class="src short"><a href="#v:splitArgs">splitArgs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:defaultDistPref">defaultDistPref</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:optionDistPref">optionDistPref</a> :: (flags -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> flags -> flags) -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags</li><li class="src short"><span class="keyword">data</span> <a href="#t:Flag">Flag</a> a<ul class="subs"><li>= <a href="#v:Flag">Flag</a> a</li><li>| <a href="#v:NoFlag">NoFlag</a></li></ul></li><li class="src short"><a href="#v:toFlag">toFlag</a> :: a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a</li><li class="src short"><a href="#v:fromFlag">fromFlag</a> :: <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> a)</li><li class="src short"><a href="#v:fromFlagOrDefault">fromFlagOrDefault</a> :: a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> a</li><li class="src short"><a href="#v:flagToMaybe">flagToMaybe</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:flagToList">flagToList</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> [a]</li><li class="src short"><a href="#v:maybeToFlag">maybeToFlag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a</li><li class="src short"><span class="keyword">class</span> <a href="#t:BooleanFlag">BooleanFlag</a> a <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:boolOpt">boolOpt</a> :: <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) a</li><li class="src short"><a href="#v:boolOpt-39-">boolOpt'</a> :: <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> -> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) a</li><li class="src short"><a href="#v:trueArg">trueArg</a> :: <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) a</li><li class="src short"><a href="#v:falseArg">falseArg</a> :: <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) a</li><li class="src short"><a href="#v:optionVerbosity">optionVerbosity</a> :: (flags -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>) -> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> flags -> flags) -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags</li><li class="src short"><a href="#v:optionNumJobs">optionNumJobs</a> :: (flags -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)) -> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> flags -> flags) -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags</li><li class="src short"><a href="#v:readPToMaybe">readPToMaybe</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GlobalFlags" class="def">GlobalFlags</a> <a href="#t:GlobalFlags" class="selflink">#</a></p><div class="doc"><p>Flags that apply at the top level, not to any sub-command.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GlobalFlags" class="def">GlobalFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:globalVersion" class="def">globalVersion</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:globalNumericVersion" class="def">globalNumericVersion</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:GlobalFlags" class="caption collapser" onclick="toggleSection('i:GlobalFlags')">Instances</p><div id="section.i:GlobalFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GlobalFlags:Generic:1" class="instance expander" onclick="toggleSection('i:id:GlobalFlags:Generic:1')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a></span> <a href="#t:GlobalFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GlobalFlags:Generic:1" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GlobalFlags:Semigroup:2" class="instance expander" onclick="toggleSection('i:id:GlobalFlags:Semigroup:2')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a></span> <a href="#t:GlobalFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GlobalFlags:Semigroup:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GlobalFlags:Monoid:3" class="instance expander" onclick="toggleSection('i:id:GlobalFlags:Monoid:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a></span> <a href="#t:GlobalFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GlobalFlags:Monoid:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GlobalFlags:Rep:4" class="instance expander" onclick="toggleSection('i:id:GlobalFlags:Rep:4')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a></span> <a href="#t:GlobalFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GlobalFlags:Rep:4" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "GlobalFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GlobalFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "globalVersion") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "globalNumericVersion") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyGlobalFlags" class="def">emptyGlobalFlags</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:emptyGlobalFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultGlobalFlags" class="def">defaultGlobalFlags</a> :: <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:defaultGlobalFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:globalCommand" class="def">globalCommand</a> :: [<a href="Distribution-Simple-Command.html#t:Command">Command</a> action] -> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:GlobalFlags">GlobalFlags</a> <a href="#v:globalCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ConfigFlags" class="def">ConfigFlags</a> <a href="#t:ConfigFlags" class="selflink">#</a></p><div class="doc"><p>Flags to <code>configure</code> command.</p><p>IMPORTANT: every time a new flag is added, <code><a href="D-C-Setup.html#v:filterConfigureFlags">filterConfigureFlags</a></code>+ should be updated.+ IMPORTANT: every time a new flag is added, it should be added to the Eq instance</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ConfigFlags" class="def">ConfigFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:configArgs" class="def">configArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:configPrograms_" class="def">configPrograms_</a> :: <a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></dfn><div class="doc"><p>All programs that+ <code>cabal</code> may run</p></div></li><li><dfn class="src"><a id="v:configProgramPaths" class="def">configProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</dfn><div class="doc"><p>user specified programs paths</p></div></li><li><dfn class="src"><a id="v:configProgramArgs" class="def">configProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc"><p>user specified programs args</p></div></li><li><dfn class="src"><a id="v:configProgramPathExtra" class="def">configProgramPathExtra</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Extend the $PATH</p></div></li><li><dfn class="src"><a id="v:configHcFlavor" class="def">configHcFlavor</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></dfn><div class="doc"><p>The "flavor" of the+ compiler, such as GHC or+ JHC.</p></div></li><li><dfn class="src"><a id="v:configHcPath" class="def">configHcPath</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>given compiler location</p></div></li><li><dfn class="src"><a id="v:configHcPkg" class="def">configHcPkg</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>given hc-pkg location</p></div></li><li><dfn class="src"><a id="v:configVanillaLib" class="def">configVanillaLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable vanilla library</p></div></li><li><dfn class="src"><a id="v:configProfLib" class="def">configProfLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable profiling in the library</p></div></li><li><dfn class="src"><a id="v:configSharedLib" class="def">configSharedLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Build shared library</p></div></li><li><dfn class="src"><a id="v:configDynExe" class="def">configDynExe</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable dynamic linking of the+ executables.</p></div></li><li><dfn class="src"><a id="v:configProfExe" class="def">configProfExe</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable profiling in the+ executables.</p></div></li><li><dfn class="src"><a id="v:configProf" class="def">configProf</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable profiling in the library+ and executables.</p></div></li><li><dfn class="src"><a id="v:configProfDetail" class="def">configProfDetail</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></dfn><div class="doc"><p>Profiling detail level+ in the library and executables.</p></div></li><li><dfn class="src"><a id="v:configProfLibDetail" class="def">configProfLibDetail</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></dfn><div class="doc"><p>Profiling detail level+ in the library</p></div></li><li><dfn class="src"><a id="v:configConfigureArgs" class="def">configConfigureArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>Extra arguments to <code>configure</code></p></div></li><li><dfn class="src"><a id="v:configOptimization" class="def">configOptimization</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></dfn><div class="doc"><p>Enable optimization.</p></div></li><li><dfn class="src"><a id="v:configProgPrefix" class="def">configProgPrefix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dfn><div class="doc"><p>Installed executable prefix.</p></div></li><li><dfn class="src"><a id="v:configProgSuffix" class="def">configProgSuffix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dfn><div class="doc"><p>Installed executable suffix.</p></div></li><li><dfn class="src"><a id="v:configInstallDirs" class="def">configInstallDirs</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)</dfn><div class="doc"><p>Installation+ paths</p></div></li><li><dfn class="src"><a id="v:configScratchDir" class="def">configScratchDir</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:configExtraLibDirs" class="def">configExtraLibDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>path to search for extra libraries</p></div></li><li><dfn class="src"><a id="v:configExtraFrameworkDirs" class="def">configExtraFrameworkDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>path to search for extra+ frameworks (OS X only)</p></div></li><li><dfn class="src"><a id="v:configExtraIncludeDirs" class="def">configExtraIncludeDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>path to search for header files</p></div></li><li><dfn class="src"><a id="v:configIPID" class="def">configIPID</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>explicit IPID to be used</p></div></li><li><dfn class="src"><a id="v:configCID" class="def">configCID</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>explicit CID to be used</p></div></li><li><dfn class="src"><a id="v:configDeterministic" class="def">configDeterministic</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>be as deterministic as possible+ (e.g., invariant over GHC, database,+ etc). Used by the test suite</p></div></li><li><dfn class="src"><a id="v:configDistPref" class="def">configDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>"dist" prefix</p></div></li><li><dfn class="src"><a id="v:configCabalFilePath" class="def">configCabalFilePath</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Cabal file to use</p></div></li><li><dfn class="src"><a id="v:configVerbosity" class="def">configVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc"><p>verbosity level</p></div></li><li><dfn class="src"><a id="v:configUserInstall" class="def">configUserInstall</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>The --user/--global flag</p></div></li><li><dfn class="src"><a id="v:configPackageDBs" class="def">configPackageDBs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>]</dfn><div class="doc"><p>Which package DBs to use</p></div></li><li><dfn class="src"><a id="v:configGHCiLib" class="def">configGHCiLib</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable compiling library for GHCi</p></div></li><li><dfn class="src"><a id="v:configSplitObjs" class="def">configSplitObjs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable -split-objs with GHC</p></div></li><li><dfn class="src"><a id="v:configStripExes" class="def">configStripExes</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable executable stripping</p></div></li><li><dfn class="src"><a id="v:configStripLibs" class="def">configStripLibs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable library stripping</p></div></li><li><dfn class="src"><a id="v:configConstraints" class="def">configConstraints</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</dfn><div class="doc"><p>Additional constraints for+ dependencies.</p></div></li><li><dfn class="src"><a id="v:configDependencies" class="def">configDependencies</a> :: [(<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>, <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)]</dfn><div class="doc"><p>The packages depended on.</p></div></li><li><dfn class="src"><a id="v:configInstantiateWith" class="def">configInstantiateWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Types-Module.html#t:Module">Module</a>)]</dfn><div class="doc"><p>The requested Backpack instantiation. If empty, either this+ package does not use Backpack, or we just want to typecheck+ the indefinite package.</p></div></li><li><dfn class="src"><a id="v:configConfigurationsFlags" class="def">configConfigurationsFlags</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:configTests" class="def">configTests</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable test suite compilation</p></div></li><li><dfn class="src"><a id="v:configBenchmarks" class="def">configBenchmarks</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable benchmark compilation</p></div></li><li><dfn class="src"><a id="v:configCoverage" class="def">configCoverage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable program coverage</p></div></li><li><dfn class="src"><a id="v:configLibCoverage" class="def">configLibCoverage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable program coverage (deprecated)</p></div></li><li><dfn class="src"><a id="v:configExactConfiguration" class="def">configExactConfiguration</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>All direct dependencies and flags are provided on the command line by+ the user via the '--dependency' and '--flags' options.</p></div></li><li><dfn class="src"><a id="v:configFlagError" class="def">configFlagError</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Halt and show an error message indicating an error in flag assignment</p></div></li><li><dfn class="src"><a id="v:configRelocatable" class="def">configRelocatable</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Enable relocatable package built</p></div></li><li><dfn class="src"><a id="v:configDebugInfo" class="def">configDebugInfo</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></dfn><div class="doc"><p>Emit debug info.</p></div></li><li><dfn class="src"><a id="v:configAllowOlder" class="def">configAllowOlder</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></dfn><div class="doc"><p>dual to <code><a href="Distribution-Simple-Setup.html#v:configAllowNewer">configAllowNewer</a></code></p></div></li><li><dfn class="src"><a id="v:configAllowNewer" class="def">configAllowNewer</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></dfn><div class="doc"><p>Ignore upper bounds on all or some dependencies. Wrapped in <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a></code> to+ distinguish between "default" and "explicitly disabled".</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ConfigFlags" class="caption collapser" onclick="toggleSection('i:ConfigFlags')">Instances</p><div id="section.i:ConfigFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigFlags:Eq:1" class="instance expander" onclick="toggleSection('i:id:ConfigFlags:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:ConfigFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigFlags:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigFlags:Read:2" class="instance expander" onclick="toggleSection('i:id:ConfigFlags:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:ConfigFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigFlags:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigFlags:Show:3" class="instance expander" onclick="toggleSection('i:id:ConfigFlags:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:ConfigFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigFlags:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigFlags:Generic:4" class="instance expander" onclick="toggleSection('i:id:ConfigFlags:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:ConfigFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigFlags:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigFlags:Semigroup:5" class="instance expander" onclick="toggleSection('i:id:ConfigFlags:Semigroup:5')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:ConfigFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigFlags:Semigroup:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigFlags:Monoid:6" class="instance expander" onclick="toggleSection('i:id:ConfigFlags:Monoid:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:ConfigFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigFlags:Monoid:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigFlags:Binary:7" class="instance expander" onclick="toggleSection('i:id:ConfigFlags:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:ConfigFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigFlags:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfigFlags:Rep:8" class="instance expander" onclick="toggleSection('i:id:ConfigFlags:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></span> <a href="#t:ConfigFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfigFlags:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ConfigFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ConfigFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configPrograms_") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Semigroup.html#t:Last-39-">Last'</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProgramPaths") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProgramArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProgramPathExtra") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configHcFlavor") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configHcPath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configHcPkg") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configVanillaLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProfLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configSharedLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configDynExe") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProfExe") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProf") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProfDetail") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProfLibDetail") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configConfigureArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configOptimization") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProgPrefix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configProgSuffix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configInstallDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configScratchDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configExtraLibDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configExtraFrameworkDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configExtraIncludeDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configIPID") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configCID") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configDeterministic") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configCabalFilePath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configUserInstall") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configPackageDBs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configGHCiLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configSplitObjs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configStripExes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configStripLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configConstraints") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>])))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configDependencies") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>, <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configInstantiateWith") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Types-Module.html#t:Module">Module</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configConfigurationsFlags") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configTests") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configBenchmarks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configCoverage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configLibCoverage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configExactConfiguration") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configFlagError") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configRelocatable") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configDebugInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configAllowOlder") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configAllowNewer") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a>))))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyConfigFlags" class="def">emptyConfigFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:emptyConfigFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultConfigFlags" class="def">defaultConfigFlags</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:defaultConfigFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:configureCommand" class="def">configureCommand</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:configureCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:configPrograms" class="def">configPrograms</a> :: <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (<a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configPrograms" class="selflink">#</a></p><div class="doc"><p>More convenient version of <code><a href="Distribution-Simple-Setup.html#v:configPrograms">configPrograms</a></code>. Results in an+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#v:error">error</a></code> if internal invariant is violated.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RelaxDeps" class="def">RelaxDeps</a> <a href="#t:RelaxDeps" class="selflink">#</a></p><div class="doc"><p>Generic data type for policy when relaxing bounds in dependencies.+ Don't use this directly: use <code><a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></code> or <code><a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></code> depending+ on whether or not you are relaxing an lower or upper bound+ (respectively).</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RelaxDepsNone" class="def">RelaxDepsNone</a></td><td class="doc"><p>Default: honor the upper bounds in all dependencies, never choose+ versions newer than allowed.</p></td></tr><tr><td class="src"><a id="v:RelaxDepsSome" class="def">RelaxDepsSome</a> [<a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a>]</td><td class="doc"><p>Ignore upper bounds in dependencies on the given packages.</p></td></tr><tr><td class="src"><a id="v:RelaxDepsAll" class="def">RelaxDepsAll</a></td><td class="doc"><p>Ignore upper bounds in dependencies on all packages.</p></td></tr></table></div><div class="subs instances"><p id="control.i:RelaxDeps" class="caption collapser" onclick="toggleSection('i:RelaxDeps')">Instances</p><div id="section.i:RelaxDeps" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxDeps:Eq:1" class="instance expander" onclick="toggleSection('i:id:RelaxDeps:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:RelaxDeps" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxDeps:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxDeps:Read:2" class="instance expander" onclick="toggleSection('i:id:RelaxDeps:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:RelaxDeps" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxDeps:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxDeps:Show:3" class="instance expander" onclick="toggleSection('i:id:RelaxDeps:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:RelaxDeps" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxDeps:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxDeps:Generic:4" class="instance expander" onclick="toggleSection('i:id:RelaxDeps:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:RelaxDeps" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxDeps:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> x -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxDeps:Semigroup:5" class="instance expander" onclick="toggleSection('i:id:RelaxDeps:Semigroup:5')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:RelaxDeps" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxDeps:Semigroup:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxDeps:Monoid:6" class="instance expander" onclick="toggleSection('i:id:RelaxDeps:Monoid:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:RelaxDeps" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxDeps:Monoid:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a>] -> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxDeps:Binary:7" class="instance expander" onclick="toggleSection('i:id:RelaxDeps:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:RelaxDeps" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxDeps:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxDeps:Rep:8" class="instance expander" onclick="toggleSection('i:id:RelaxDeps:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></span> <a href="#t:RelaxDeps" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxDeps:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "RelaxDeps" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RelaxDepsNone" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RelaxDepsSome" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RelaxDepsAll" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RelaxedDep" class="def">RelaxedDep</a> <a href="#t:RelaxedDep" class="selflink">#</a></p><div class="doc"><p>Dependencies can be relaxed either for all packages in the install plan, or+ only for some packages.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RelaxedDep" class="def">RelaxedDep</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:RelaxedDepScoped" class="def">RelaxedDepScoped</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:RelaxedDep" class="caption collapser" onclick="toggleSection('i:RelaxedDep')">Instances</p><div id="section.i:RelaxedDep" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxedDep:Eq:1" class="instance expander" onclick="toggleSection('i:id:RelaxedDep:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a></span> <a href="#t:RelaxedDep" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxedDep:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxedDep:Read:2" class="instance expander" onclick="toggleSection('i:id:RelaxedDep:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a></span> <a href="#t:RelaxedDep" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxedDep:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxedDep:Show:3" class="instance expander" onclick="toggleSection('i:id:RelaxedDep:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a></span> <a href="#t:RelaxedDep" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxedDep:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxedDep:Generic:4" class="instance expander" onclick="toggleSection('i:id:RelaxedDep:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a></span> <a href="#t:RelaxedDep" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxedDep:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> x -> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxedDep:Binary:5" class="instance expander" onclick="toggleSection('i:id:RelaxedDep:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a></span> <a href="#t:RelaxedDep" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxedDep:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxedDep:Text:6" class="instance expander" onclick="toggleSection('i:id:RelaxedDep:Text:6')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a></span> <a href="#t:RelaxedDep" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxedDep:Text:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RelaxedDep:Rep:7" class="instance expander" onclick="toggleSection('i:id:RelaxedDep:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a></span> <a href="#t:RelaxedDep" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RelaxedDep:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "RelaxedDep" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RelaxedDep" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RelaxedDepScoped" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:isRelaxDeps" class="def">isRelaxDeps</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isRelaxDeps" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></code> to a boolean.</p></div></div><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:AllowNewer" class="def">AllowNewer</a> <a href="#t:AllowNewer" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></code> in the context of upper bounds (i.e. for <code>--allow-newer</code> flag)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AllowNewer" class="def">AllowNewer</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:unAllowNewer" class="def">unAllowNewer</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:AllowNewer" class="caption collapser" onclick="toggleSection('i:AllowNewer')">Instances</p><div id="section.i:AllowNewer" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowNewer:Eq:1" class="instance expander" onclick="toggleSection('i:id:AllowNewer:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:AllowNewer" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowNewer:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowNewer:Read:2" class="instance expander" onclick="toggleSection('i:id:AllowNewer:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:AllowNewer" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowNewer:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowNewer:Show:3" class="instance expander" onclick="toggleSection('i:id:AllowNewer:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:AllowNewer" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowNewer:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowNewer:Generic:4" class="instance expander" onclick="toggleSection('i:id:AllowNewer:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:AllowNewer" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowNewer:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> x -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowNewer:Semigroup:5" class="instance expander" onclick="toggleSection('i:id:AllowNewer:Semigroup:5')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:AllowNewer" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowNewer:Semigroup:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowNewer:Monoid:6" class="instance expander" onclick="toggleSection('i:id:AllowNewer:Monoid:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:AllowNewer" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowNewer:Monoid:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a>] -> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowNewer:Binary:7" class="instance expander" onclick="toggleSection('i:id:AllowNewer:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:AllowNewer" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowNewer:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowNewer:Rep:8" class="instance expander" onclick="toggleSection('i:id:AllowNewer:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a></span> <a href="#t:AllowNewer" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowNewer:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowNewer">AllowNewer</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "AllowNewer" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AllowNewer" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "unAllowNewer") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:AllowOlder" class="def">AllowOlder</a> <a href="#t:AllowOlder" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></code> in the context of lower bounds (i.e. for <code>--allow-older</code> flag)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AllowOlder" class="def">AllowOlder</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:unAllowOlder" class="def">unAllowOlder</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:AllowOlder" class="caption collapser" onclick="toggleSection('i:AllowOlder')">Instances</p><div id="section.i:AllowOlder" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowOlder:Eq:1" class="instance expander" onclick="toggleSection('i:id:AllowOlder:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:AllowOlder" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowOlder:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowOlder:Read:2" class="instance expander" onclick="toggleSection('i:id:AllowOlder:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:AllowOlder" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowOlder:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowOlder:Show:3" class="instance expander" onclick="toggleSection('i:id:AllowOlder:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:AllowOlder" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowOlder:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowOlder:Generic:4" class="instance expander" onclick="toggleSection('i:id:AllowOlder:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:AllowOlder" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowOlder:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> x -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowOlder:Semigroup:5" class="instance expander" onclick="toggleSection('i:id:AllowOlder:Semigroup:5')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:AllowOlder" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowOlder:Semigroup:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowOlder:Monoid:6" class="instance expander" onclick="toggleSection('i:id:AllowOlder:Monoid:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:AllowOlder" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowOlder:Monoid:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a>] -> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowOlder:Binary:7" class="instance expander" onclick="toggleSection('i:id:AllowOlder:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:AllowOlder" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowOlder:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AllowOlder:Rep:8" class="instance expander" onclick="toggleSection('i:id:AllowOlder:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a></span> <a href="#t:AllowOlder" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AllowOlder:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:AllowOlder">AllowOlder</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "AllowOlder" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AllowOlder" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "unAllowOlder") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Setup.html#t:RelaxDeps">RelaxDeps</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:configAbsolutePaths" class="def">configAbsolutePaths</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> <a href="#v:configAbsolutePaths" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:readPackageDbList" class="def">readPackageDbList</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] <a href="#v:readPackageDbList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showPackageDbList" class="def">showPackageDbList</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:showPackageDbList" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CopyFlags" class="def">CopyFlags</a> <a href="#t:CopyFlags" class="selflink">#</a></p><div class="doc"><p>Flags to <code>copy</code>: (destdir, copy-prefix (backwards compat), verbosity)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CopyFlags" class="def">CopyFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:copyDest" class="def">copyDest</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:copyDistPref" class="def">copyDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:copyVerbosity" class="def">copyVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:copyArgs" class="def">copyArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:CopyFlags" class="caption collapser" onclick="toggleSection('i:CopyFlags')">Instances</p><div id="section.i:CopyFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CopyFlags:Show:1" class="instance expander" onclick="toggleSection('i:id:CopyFlags:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></span> <a href="#t:CopyFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CopyFlags:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CopyFlags:Generic:2" class="instance expander" onclick="toggleSection('i:id:CopyFlags:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></span> <a href="#t:CopyFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CopyFlags:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CopyFlags:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:CopyFlags:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></span> <a href="#t:CopyFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CopyFlags:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CopyFlags:Monoid:4" class="instance expander" onclick="toggleSection('i:id:CopyFlags:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></span> <a href="#t:CopyFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CopyFlags:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CopyFlags:Rep:5" class="instance expander" onclick="toggleSection('i:id:CopyFlags:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a></span> <a href="#t:CopyFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CopyFlags:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "CopyFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CopyFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "copyDest") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "copyDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "copyVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "copyArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyCopyFlags" class="def">emptyCopyFlags</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:emptyCopyFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultCopyFlags" class="def">defaultCopyFlags</a> :: <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:defaultCopyFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:copyCommand" class="def">copyCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> <a href="#v:copyCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:InstallFlags" class="def">InstallFlags</a> <a href="#t:InstallFlags" class="selflink">#</a></p><div class="doc"><p>Flags to <code>install</code>: (package db, verbosity)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:InstallFlags" class="def">InstallFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:installPackageDB" class="def">installPackageDB</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:installDistPref" class="def">installDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:installUseWrapper" class="def">installUseWrapper</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:installInPlace" class="def">installInPlace</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:installVerbosity" class="def">installVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:InstallFlags" class="caption collapser" onclick="toggleSection('i:InstallFlags')">Instances</p><div id="section.i:InstallFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallFlags:Show:1" class="instance expander" onclick="toggleSection('i:id:InstallFlags:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></span> <a href="#t:InstallFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallFlags:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallFlags:Generic:2" class="instance expander" onclick="toggleSection('i:id:InstallFlags:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></span> <a href="#t:InstallFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallFlags:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallFlags:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:InstallFlags:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></span> <a href="#t:InstallFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallFlags:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallFlags:Monoid:4" class="instance expander" onclick="toggleSection('i:id:InstallFlags:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></span> <a href="#t:InstallFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallFlags:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InstallFlags:Rep:5" class="instance expander" onclick="toggleSection('i:id:InstallFlags:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a></span> <a href="#t:InstallFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:InstallFlags:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "InstallFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "InstallFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installPackageDB") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installUseWrapper") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installInPlace") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyInstallFlags" class="def">emptyInstallFlags</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:emptyInstallFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultInstallFlags" class="def">defaultInstallFlags</a> :: <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:defaultInstallFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:installCommand" class="def">installCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> <a href="#v:installCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DoctestFlags" class="def">DoctestFlags</a> <a href="#t:DoctestFlags" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:DoctestFlags" class="def">DoctestFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:doctestProgramPaths" class="def">doctestProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:doctestProgramArgs" class="def">doctestProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:doctestDistPref" class="def">doctestDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:doctestVerbosity" class="def">doctestVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:DoctestFlags" class="caption collapser" onclick="toggleSection('i:DoctestFlags')">Instances</p><div id="section.i:DoctestFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DoctestFlags:Show:1" class="instance expander" onclick="toggleSection('i:id:DoctestFlags:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></span> <a href="#t:DoctestFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DoctestFlags:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DoctestFlags:Generic:2" class="instance expander" onclick="toggleSection('i:id:DoctestFlags:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></span> <a href="#t:DoctestFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DoctestFlags:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DoctestFlags:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:DoctestFlags:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></span> <a href="#t:DoctestFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DoctestFlags:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DoctestFlags:Monoid:4" class="instance expander" onclick="toggleSection('i:id:DoctestFlags:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></span> <a href="#t:DoctestFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DoctestFlags:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DoctestFlags:Rep:5" class="instance expander" onclick="toggleSection('i:id:DoctestFlags:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a></span> <a href="#t:DoctestFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DoctestFlags:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "DoctestFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DoctestFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "doctestProgramPaths") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "doctestProgramArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "doctestDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "doctestVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyDoctestFlags" class="def">emptyDoctestFlags</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:emptyDoctestFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultDoctestFlags" class="def">defaultDoctestFlags</a> :: <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:defaultDoctestFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:doctestCommand" class="def">doctestCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> <a href="#v:doctestCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:HaddockTarget" class="def">HaddockTarget</a> <a href="#t:HaddockTarget" class="selflink">#</a></p><div class="doc"><p>When we build haddock documentation, there are two cases:</p><ol><li>We build haddocks only for the current development version,+ intended for local use and not for distribution. In this case,+ we store the generated documentation in <code><a href="dist">dist</a><em>doc</em>html/<a href="package">name</a></code>.</li><li>We build haddocks for intended for uploading them to hackage.+ In this case, we need to follow the layout that hackage expects+ from documentation tarballs, and we might also want to use different+ flags than for development builds, so in this case we store the generated+ documentation in <code><a href="dist">dist</a><em>doc</em>html/<a href="package">id</a>-docs</code>.</li></ol></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ForHackage" class="def">ForHackage</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ForDevelopment" class="def">ForDevelopment</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:HaddockTarget" class="caption collapser" onclick="toggleSection('i:HaddockTarget')">Instances</p><div id="section.i:HaddockTarget" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HaddockTarget:Eq:1" class="instance expander" onclick="toggleSection('i:id:HaddockTarget:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a></span> <a href="#t:HaddockTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HaddockTarget:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HaddockTarget:Show:2" class="instance expander" onclick="toggleSection('i:id:HaddockTarget:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a></span> <a href="#t:HaddockTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HaddockTarget:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HaddockTarget:Generic:3" class="instance expander" onclick="toggleSection('i:id:HaddockTarget:Generic:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a></span> <a href="#t:HaddockTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HaddockTarget:Generic:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> x -> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HaddockTarget:Rep:4" class="instance expander" onclick="toggleSection('i:id:HaddockTarget:Rep:4')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a></span> <a href="#t:HaddockTarget" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HaddockTarget:Rep:4" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "HaddockTarget" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ForHackage" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ForDevelopment" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:HaddockFlags" class="def">HaddockFlags</a> <a href="#t:HaddockFlags" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:HaddockFlags" class="def">HaddockFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:haddockProgramPaths" class="def">haddockProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockProgramArgs" class="def">haddockProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockHoogle" class="def">haddockHoogle</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockHtml" class="def">haddockHtml</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockHtmlLocation" class="def">haddockHtmlLocation</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockForHackage" class="def">haddockForHackage</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockExecutables" class="def">haddockExecutables</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockTestSuites" class="def">haddockTestSuites</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockBenchmarks" class="def">haddockBenchmarks</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockForeignLibs" class="def">haddockForeignLibs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockInternal" class="def">haddockInternal</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockCss" class="def">haddockCss</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockHscolour" class="def">haddockHscolour</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockHscolourCss" class="def">haddockHscolourCss</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockContents" class="def">haddockContents</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockDistPref" class="def">haddockDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockKeepTempFiles" class="def">haddockKeepTempFiles</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:haddockVerbosity" class="def">haddockVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:HaddockFlags" class="caption collapser" onclick="toggleSection('i:HaddockFlags')">Instances</p><div id="section.i:HaddockFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HaddockFlags:Show:1" class="instance expander" onclick="toggleSection('i:id:HaddockFlags:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></span> <a href="#t:HaddockFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HaddockFlags:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HaddockFlags:Generic:2" class="instance expander" onclick="toggleSection('i:id:HaddockFlags:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></span> <a href="#t:HaddockFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HaddockFlags:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HaddockFlags:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:HaddockFlags:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></span> <a href="#t:HaddockFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HaddockFlags:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HaddockFlags:Monoid:4" class="instance expander" onclick="toggleSection('i:id:HaddockFlags:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></span> <a href="#t:HaddockFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HaddockFlags:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HaddockFlags:Rep:5" class="instance expander" onclick="toggleSection('i:id:HaddockFlags:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a></span> <a href="#t:HaddockFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HaddockFlags:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "HaddockFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HaddockFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockProgramPaths") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockProgramArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockHoogle") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockHtml") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockHtmlLocation") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockForHackage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Setup.html#t:HaddockTarget">HaddockTarget</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockExecutables") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockTestSuites") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockBenchmarks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockForeignLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockInternal") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockCss") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockHscolour") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockHscolourCss") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockContents") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockKeepTempFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "haddockVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>)))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyHaddockFlags" class="def">emptyHaddockFlags</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:emptyHaddockFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultHaddockFlags" class="def">defaultHaddockFlags</a> :: <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:defaultHaddockFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haddockCommand" class="def">haddockCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> <a href="#v:haddockCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:HscolourFlags" class="def">HscolourFlags</a> <a href="#t:HscolourFlags" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:HscolourFlags" class="def">HscolourFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:hscolourCSS" class="def">hscolourCSS</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hscolourExecutables" class="def">hscolourExecutables</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hscolourTestSuites" class="def">hscolourTestSuites</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hscolourBenchmarks" class="def">hscolourBenchmarks</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hscolourForeignLibs" class="def">hscolourForeignLibs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hscolourDistPref" class="def">hscolourDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hscolourVerbosity" class="def">hscolourVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:HscolourFlags" class="caption collapser" onclick="toggleSection('i:HscolourFlags')">Instances</p><div id="section.i:HscolourFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HscolourFlags:Show:1" class="instance expander" onclick="toggleSection('i:id:HscolourFlags:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></span> <a href="#t:HscolourFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HscolourFlags:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HscolourFlags:Generic:2" class="instance expander" onclick="toggleSection('i:id:HscolourFlags:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></span> <a href="#t:HscolourFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HscolourFlags:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HscolourFlags:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:HscolourFlags:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></span> <a href="#t:HscolourFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HscolourFlags:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HscolourFlags:Monoid:4" class="instance expander" onclick="toggleSection('i:id:HscolourFlags:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></span> <a href="#t:HscolourFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HscolourFlags:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HscolourFlags:Rep:5" class="instance expander" onclick="toggleSection('i:id:HscolourFlags:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a></span> <a href="#t:HscolourFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:HscolourFlags:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "HscolourFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HscolourFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hscolourCSS") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hscolourExecutables") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hscolourTestSuites") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hscolourBenchmarks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hscolourForeignLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hscolourDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hscolourVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyHscolourFlags" class="def">emptyHscolourFlags</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:emptyHscolourFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultHscolourFlags" class="def">defaultHscolourFlags</a> :: <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:defaultHscolourFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hscolourCommand" class="def">hscolourCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> <a href="#v:hscolourCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BuildFlags" class="def">BuildFlags</a> <a href="#t:BuildFlags" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BuildFlags" class="def">BuildFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:buildProgramPaths" class="def">buildProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:buildProgramArgs" class="def">buildProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:buildDistPref" class="def">buildDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:buildVerbosity" class="def">buildVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:buildNumJobs" class="def">buildNumJobs</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:buildArgs" class="def">buildArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:BuildFlags" class="caption collapser" onclick="toggleSection('i:BuildFlags')">Instances</p><div id="section.i:BuildFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildFlags:Read:1" class="instance expander" onclick="toggleSection('i:id:BuildFlags:Read:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></span> <a href="#t:BuildFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildFlags:Read:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildFlags:Show:2" class="instance expander" onclick="toggleSection('i:id:BuildFlags:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></span> <a href="#t:BuildFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildFlags:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildFlags:Generic:3" class="instance expander" onclick="toggleSection('i:id:BuildFlags:Generic:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></span> <a href="#t:BuildFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildFlags:Generic:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildFlags:Semigroup:4" class="instance expander" onclick="toggleSection('i:id:BuildFlags:Semigroup:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></span> <a href="#t:BuildFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildFlags:Semigroup:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildFlags:Monoid:5" class="instance expander" onclick="toggleSection('i:id:BuildFlags:Monoid:5')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></span> <a href="#t:BuildFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildFlags:Monoid:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildFlags:Rep:6" class="instance expander" onclick="toggleSection('i:id:BuildFlags:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a></span> <a href="#t:BuildFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildFlags:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BuildFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BuildFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildProgramPaths") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildProgramArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildNumJobs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyBuildFlags" class="def">emptyBuildFlags</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:emptyBuildFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultBuildFlags" class="def">defaultBuildFlags</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:defaultBuildFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildCommand" class="def">buildCommand</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> <a href="#v:buildCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildVerbose" class="def">buildVerbose</a> :: <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:buildVerbose" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use buildVerbosity instead</p></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ReplFlags" class="def">ReplFlags</a> <a href="#t:ReplFlags" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ReplFlags" class="def">ReplFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:replProgramPaths" class="def">replProgramPaths</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:replProgramArgs" class="def">replProgramArgs</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:replDistPref" class="def">replDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:replVerbosity" class="def">replVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:replReload" class="def">replReload</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ReplFlags" class="caption collapser" onclick="toggleSection('i:ReplFlags')">Instances</p><div id="section.i:ReplFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReplFlags:Show:1" class="instance expander" onclick="toggleSection('i:id:ReplFlags:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></span> <a href="#t:ReplFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ReplFlags:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReplFlags:Generic:2" class="instance expander" onclick="toggleSection('i:id:ReplFlags:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></span> <a href="#t:ReplFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ReplFlags:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReplFlags:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:ReplFlags:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></span> <a href="#t:ReplFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ReplFlags:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReplFlags:Monoid:4" class="instance expander" onclick="toggleSection('i:id:ReplFlags:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></span> <a href="#t:ReplFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ReplFlags:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReplFlags:Rep:5" class="instance expander" onclick="toggleSection('i:id:ReplFlags:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a></span> <a href="#t:ReplFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ReplFlags:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ReplFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ReplFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "replProgramPaths") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "replProgramArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "replDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "replVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "replReload") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultReplFlags" class="def">defaultReplFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:defaultReplFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:replCommand" class="def">replCommand</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> <a href="#v:replCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CleanFlags" class="def">CleanFlags</a> <a href="#t:CleanFlags" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CleanFlags" class="def">CleanFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:cleanSaveConf" class="def">cleanSaveConf</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:cleanDistPref" class="def">cleanDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:cleanVerbosity" class="def">cleanVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:CleanFlags" class="caption collapser" onclick="toggleSection('i:CleanFlags')">Instances</p><div id="section.i:CleanFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CleanFlags:Show:1" class="instance expander" onclick="toggleSection('i:id:CleanFlags:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></span> <a href="#t:CleanFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CleanFlags:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CleanFlags:Generic:2" class="instance expander" onclick="toggleSection('i:id:CleanFlags:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></span> <a href="#t:CleanFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CleanFlags:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CleanFlags:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:CleanFlags:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></span> <a href="#t:CleanFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CleanFlags:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CleanFlags:Monoid:4" class="instance expander" onclick="toggleSection('i:id:CleanFlags:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></span> <a href="#t:CleanFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CleanFlags:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CleanFlags:Rep:5" class="instance expander" onclick="toggleSection('i:id:CleanFlags:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a></span> <a href="#t:CleanFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CleanFlags:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "CleanFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CleanFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "cleanSaveConf") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "cleanDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "cleanVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyCleanFlags" class="def">emptyCleanFlags</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:emptyCleanFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultCleanFlags" class="def">defaultCleanFlags</a> :: <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:defaultCleanFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:cleanCommand" class="def">cleanCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> <a href="#v:cleanCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RegisterFlags" class="def">RegisterFlags</a> <a href="#t:RegisterFlags" class="selflink">#</a></p><div class="doc"><p>Flags to <code>register</code> and <code>unregister</code>: (user package, gen-script,+ in-place, verbosity)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RegisterFlags" class="def">RegisterFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:regPackageDB" class="def">regPackageDB</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:regGenScript" class="def">regGenScript</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:regGenPkgConf" class="def">regGenPkgConf</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:regInPlace" class="def">regInPlace</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:regDistPref" class="def">regDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:regPrintId" class="def">regPrintId</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:regVerbosity" class="def">regVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:regArgs" class="def">regArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:RegisterFlags" class="caption collapser" onclick="toggleSection('i:RegisterFlags')">Instances</p><div id="section.i:RegisterFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RegisterFlags:Show:1" class="instance expander" onclick="toggleSection('i:id:RegisterFlags:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></span> <a href="#t:RegisterFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RegisterFlags:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RegisterFlags:Generic:2" class="instance expander" onclick="toggleSection('i:id:RegisterFlags:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></span> <a href="#t:RegisterFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RegisterFlags:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RegisterFlags:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:RegisterFlags:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></span> <a href="#t:RegisterFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RegisterFlags:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RegisterFlags:Monoid:4" class="instance expander" onclick="toggleSection('i:id:RegisterFlags:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></span> <a href="#t:RegisterFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RegisterFlags:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RegisterFlags:Rep:5" class="instance expander" onclick="toggleSection('i:id:RegisterFlags:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a></span> <a href="#t:RegisterFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RegisterFlags:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "RegisterFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RegisterFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "regPackageDB") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Compiler.html#t:PackageDB">PackageDB</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "regGenScript") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "regGenPkgConf") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "regInPlace") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "regDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "regPrintId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "regVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "regArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyRegisterFlags" class="def">emptyRegisterFlags</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:emptyRegisterFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultRegisterFlags" class="def">defaultRegisterFlags</a> :: <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:defaultRegisterFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:registerCommand" class="def">registerCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:registerCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:unregisterCommand" class="def">unregisterCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> <a href="#v:unregisterCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SDistFlags" class="def">SDistFlags</a> <a href="#t:SDistFlags" class="selflink">#</a></p><div class="doc"><p>Flags to <code>sdist</code>: (snapshot, verbosity)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:SDistFlags" class="def">SDistFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:sDistSnapshot" class="def">sDistSnapshot</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sDistDirectory" class="def">sDistDirectory</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sDistDistPref" class="def">sDistDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sDistListSources" class="def">sDistListSources</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sDistVerbosity" class="def">sDistVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:SDistFlags" class="caption collapser" onclick="toggleSection('i:SDistFlags')">Instances</p><div id="section.i:SDistFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SDistFlags:Show:1" class="instance expander" onclick="toggleSection('i:id:SDistFlags:Show:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></span> <a href="#t:SDistFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SDistFlags:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SDistFlags:Generic:2" class="instance expander" onclick="toggleSection('i:id:SDistFlags:Generic:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></span> <a href="#t:SDistFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SDistFlags:Generic:2" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SDistFlags:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:SDistFlags:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></span> <a href="#t:SDistFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SDistFlags:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SDistFlags:Monoid:4" class="instance expander" onclick="toggleSection('i:id:SDistFlags:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></span> <a href="#t:SDistFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SDistFlags:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SDistFlags:Rep:5" class="instance expander" onclick="toggleSection('i:id:SDistFlags:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></span> <a href="#t:SDistFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SDistFlags:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "SDistFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SDistFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sDistSnapshot") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sDistDirectory") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sDistDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sDistListSources") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sDistVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptySDistFlags" class="def">emptySDistFlags</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:emptySDistFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultSDistFlags" class="def">defaultSDistFlags</a> :: <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:defaultSDistFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:sdistCommand" class="def">sdistCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> <a href="#v:sdistCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestFlags" class="def">TestFlags</a> <a href="#t:TestFlags" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestFlags" class="def">TestFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:testDistPref" class="def">testDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testVerbosity" class="def">testVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testHumanLog" class="def">testHumanLog</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testMachineLog" class="def">testMachineLog</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testShowDetails" class="def">testShowDetails</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testKeepTix" class="def">testKeepTix</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testOptions" class="def">testOptions</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:TestFlags" class="caption collapser" onclick="toggleSection('i:TestFlags')">Instances</p><div id="section.i:TestFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestFlags:Generic:1" class="instance expander" onclick="toggleSection('i:id:TestFlags:Generic:1')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></span> <a href="#t:TestFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestFlags:Generic:1" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestFlags:Semigroup:2" class="instance expander" onclick="toggleSection('i:id:TestFlags:Semigroup:2')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></span> <a href="#t:TestFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestFlags:Semigroup:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestFlags:Monoid:3" class="instance expander" onclick="toggleSection('i:id:TestFlags:Monoid:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></span> <a href="#t:TestFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestFlags:Monoid:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestFlags:Rep:4" class="instance expander" onclick="toggleSection('i:id:TestFlags:Rep:4')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></span> <a href="#t:TestFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestFlags:Rep:4" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "TestFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testHumanLog") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testMachineLog") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testShowDetails") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testKeepTix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>]))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyTestFlags" class="def">emptyTestFlags</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:emptyTestFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultTestFlags" class="def">defaultTestFlags</a> :: <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:defaultTestFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:testCommand" class="def">testCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> <a href="#v:testCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestShowDetails" class="def">TestShowDetails</a> <a href="#t:TestShowDetails" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Never" class="def">Never</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Failures" class="def">Failures</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Always" class="def">Always</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Streaming" class="def">Streaming</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Direct" class="def">Direct</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:TestShowDetails" class="caption collapser" onclick="toggleSection('i:TestShowDetails')">Instances</p><div id="section.i:TestShowDetails" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestShowDetails:Bounded:1" class="instance expander" onclick="toggleSection('i:id:TestShowDetails:Bounded:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:TestShowDetails" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestShowDetails:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestShowDetails:Enum:2" class="instance expander" onclick="toggleSection('i:id:TestShowDetails:Enum:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:TestShowDetails" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestShowDetails:Enum:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> [<a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> [<a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> [<a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> [<a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestShowDetails:Eq:3" class="instance expander" onclick="toggleSection('i:id:TestShowDetails:Eq:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:TestShowDetails" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestShowDetails:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestShowDetails:Ord:4" class="instance expander" onclick="toggleSection('i:id:TestShowDetails:Ord:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:TestShowDetails" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestShowDetails:Ord:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestShowDetails:Show:5" class="instance expander" onclick="toggleSection('i:id:TestShowDetails:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:TestShowDetails" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestShowDetails:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestShowDetails:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:TestShowDetails:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:TestShowDetails" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestShowDetails:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestShowDetails:Monoid:7" class="instance expander" onclick="toggleSection('i:id:TestShowDetails:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:TestShowDetails" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestShowDetails:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a>] -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestShowDetails:Text:8" class="instance expander" onclick="toggleSection('i:id:TestShowDetails:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:TestShowDetails" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestShowDetails:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BenchmarkFlags" class="def">BenchmarkFlags</a> <a href="#t:BenchmarkFlags" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BenchmarkFlags" class="def">BenchmarkFlags</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:benchmarkDistPref" class="def">benchmarkDistPref</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarkVerbosity" class="def">benchmarkVerbosity</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarkOptions" class="def">benchmarkOptions</a> :: [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:BenchmarkFlags" class="caption collapser" onclick="toggleSection('i:BenchmarkFlags')">Instances</p><div id="section.i:BenchmarkFlags" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkFlags:Generic:1" class="instance expander" onclick="toggleSection('i:id:BenchmarkFlags:Generic:1')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></span> <a href="#t:BenchmarkFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkFlags:Generic:1" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> x -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkFlags:Semigroup:2" class="instance expander" onclick="toggleSection('i:id:BenchmarkFlags:Semigroup:2')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></span> <a href="#t:BenchmarkFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkFlags:Semigroup:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkFlags:Monoid:3" class="instance expander" onclick="toggleSection('i:id:BenchmarkFlags:Monoid:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></span> <a href="#t:BenchmarkFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkFlags:Monoid:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a>] -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkFlags:Rep:4" class="instance expander" onclick="toggleSection('i:id:BenchmarkFlags:Rep:4')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a></span> <a href="#t:BenchmarkFlags" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkFlags:Rep:4" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BenchmarkFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkFlags" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarkDistPref") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarkVerbosity") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarkOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>])))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyBenchmarkFlags" class="def">emptyBenchmarkFlags</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:emptyBenchmarkFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultBenchmarkFlags" class="def">defaultBenchmarkFlags</a> :: <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:defaultBenchmarkFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:benchmarkCommand" class="def">benchmarkCommand</a> :: <a href="Distribution-Simple-Command.html#t:CommandUI">CommandUI</a> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> <a href="#v:benchmarkCommand" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CopyDest" class="def">CopyDest</a> <a href="#t:CopyDest" class="selflink">#</a></p><div class="doc"><p>The location prefix for the <em>copy</em> command.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoCopyDest" class="def">NoCopyDest</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CopyTo" class="def">CopyTo</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:CopyDest" class="caption collapser" onclick="toggleSection('i:CopyDest')">Instances</p><div id="section.i:CopyDest" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CopyDest:Eq:1" class="instance expander" onclick="toggleSection('i:id:CopyDest:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a></span> <a href="#t:CopyDest" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CopyDest:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CopyDest:Show:2" class="instance expander" onclick="toggleSection('i:id:CopyDest:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a></span> <a href="#t:CopyDest" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CopyDest:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:CopyDest">CopyDest</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:configureArgs" class="def">configureArgs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:configureArgs" class="selflink">#</a></p><div class="doc"><p>Arguments to pass to a <code>configure</code> script, e.g. generated by+ <code>autoconf</code>.</p></div></div><div class="top"><p class="src"><a id="v:configureOptions" class="def">configureOptions</a> :: <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>] <a href="#v:configureOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:configureCCompiler" class="def">configureCCompiler</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) <a href="#v:configureCCompiler" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:configureLinker" class="def">configureLinker</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]) <a href="#v:configureLinker" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildOptions" class="def">buildOptions</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a>] <a href="#v:buildOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:haddockOptions" class="def">haddockOptions</a> :: <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a>] <a href="#v:haddockOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:installDirsOptions" class="def">installDirsOptions</a> :: [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> (<a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>))] <a href="#v:installDirsOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:programDbOptions" class="def">programDbOptions</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> (flags -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]) -> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])] -> flags -> flags) -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags] <a href="#v:programDbOptions" class="selflink">#</a></p><div class="doc"><p>For each known program <code>PROG</code> in <code>progDb</code>, produce a <code>PROG-options</code>+ <code><a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:programDbPaths-39-" class="def">programDbPaths'</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>) -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> (flags -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]) -> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> flags -> flags) -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags] <a href="#v:programDbPaths-39-" class="selflink">#</a></p><div class="doc"><p>Like <code>programDbPaths</code>, but allows to customise the option name.</p></div></div><div class="top"><p class="src"><a id="v:programConfigurationOptions" class="def">programConfigurationOptions</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> (flags -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]) -> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])] -> flags -> flags) -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags] <a href="#v:programConfigurationOptions" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use programDbOptions instead</p></div><p>For each known program <code>PROG</code> in <code>progDb</code>, produce a <code>PROG-options</code>+ <code><a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:programConfigurationPaths-39-" class="def">programConfigurationPaths'</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>) -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> (flags -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]) -> ([(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> flags -> flags) -> [<a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags] <a href="#v:programConfigurationPaths-39-" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use programDbPaths' instead</p></div><p>Like <code>programDbPaths</code>, but allows to customise the option name.</p></div></div><div class="top"><p class="src"><a id="v:splitArgs" class="def">splitArgs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:splitArgs" class="selflink">#</a></p><div class="doc"><p>Helper function to split a string into a list of arguments.+ It's supposed to handle quoted things sensibly, eg:</p><pre>splitArgs "--foo=\"C:/Program Files/Bar/" --baz"+ = ["--foo=C:/Program Files/Bar", "--baz"]</pre><pre>splitArgs "\"-DMSGSTR=\\\"foo bar\\\"\" --baz"+ = ["-DMSGSTR=\"foo bar\"","--baz"]</pre></div></div><div class="top"><p class="src"><a id="v:defaultDistPref" class="def">defaultDistPref</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:defaultDistPref" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:optionDistPref" class="def">optionDistPref</a> :: (flags -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> flags -> flags) -> <a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">ShowOrParseArgs</a> -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags <a href="#v:optionDistPref" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Flag" class="def">Flag</a> a <a href="#t:Flag" class="selflink">#</a></p><div class="doc"><p>All flags are monoids, they come in two flavours:</p><ol><li>list flags eg</li></ol><pre>--ghc-option=foo --ghc-option=bar</pre><p>gives us all the values ["foo", "bar"]</p><ol><li>singular value flags, eg:</li></ol><pre>--enable-foo --disable-foo</pre><p>gives us Just False+ So this Flag type is for the latter singular kind of flag.+ Its monoid instance gives us the behaviour where it starts out as+ <code><a href="Distribution-Simple-Setup.html#v:NoFlag">NoFlag</a></code> and later flags override earlier ones.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Flag" class="def">Flag</a> a</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:NoFlag" class="def">NoFlag</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Flag" class="caption collapser" onclick="toggleSection('i:Flag')">Instances</p><div id="section.i:Flag" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Functor:1" class="instance expander" onclick="toggleSection('i:id:Flag:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> b -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Bounded:2" class="instance expander" onclick="toggleSection('i:id:Flag:Bounded:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Bounded:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Enum:3" class="instance expander" onclick="toggleSection('i:id:Flag:Enum:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Enum:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Eq:4" class="instance expander" onclick="toggleSection('i:id:Flag:Eq:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Eq:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Read:5" class="instance expander" onclick="toggleSection('i:id:Flag:Read:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Read:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a) <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a) <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Show:6" class="instance expander" onclick="toggleSection('i:id:Flag:Show:6')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Show:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Generic:7" class="instance expander" onclick="toggleSection('i:id:Flag:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a) x -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Semigroup:8" class="instance expander" onclick="toggleSection('i:id:Flag:Semigroup:8')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Semigroup:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a) -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Monoid:9" class="instance expander" onclick="toggleSection('i:id:Flag:Monoid:9')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Monoid:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Binary:10" class="instance expander" onclick="toggleSection('i:id:Flag:Binary:10')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Binary:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Rep:11" class="instance expander" onclick="toggleSection('i:id:Flag:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a)</span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Flag" "Distribution.Simple.Setup" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Flag" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> a))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NoFlag" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:toFlag" class="def">toFlag</a> :: a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:toFlag" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:fromFlag" class="def">fromFlag</a> :: <a href="Distribution-Compat-Stack.html#t:WithCallStack">WithCallStack</a> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> a) <a href="#v:fromFlag" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:fromFlagOrDefault" class="def">fromFlagOrDefault</a> :: a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> a <a href="#v:fromFlagOrDefault" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:flagToMaybe" class="def">flagToMaybe</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:flagToMaybe" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:flagToList" class="def">flagToList</a> :: <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a -> [a] <a href="#v:flagToList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:maybeToFlag" class="def">maybeToFlag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> a <a href="#v:maybeToFlag" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:BooleanFlag" class="def">BooleanFlag</a> a <span class="keyword">where</span> <a href="#t:BooleanFlag" class="selflink">#</a></p><div class="doc"><p>Types that represent boolean flags.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Simple-Setup.html#v:asBool">asBool</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:asBool" class="def">asBool</a> :: a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:asBool" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:BooleanFlag" class="caption collapser" onclick="toggleSection('i:BooleanFlag')">Instances</p><div id="section.i:BooleanFlag" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BooleanFlag:BooleanFlag:1" class="instance expander" onclick="toggleSection('i:ic:BooleanFlag:BooleanFlag:1')"></span> <a href="Distribution-Simple-Setup.html#t:BooleanFlag">BooleanFlag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></span> <a href="#t:BooleanFlag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:BooleanFlag:BooleanFlag:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:asBool">asBool</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:asBool" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:boolOpt" class="def">boolOpt</a> :: <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:SFlags">SFlags</a> -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) a <a href="#v:boolOpt" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:boolOpt-39-" class="def">boolOpt'</a> :: <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> -> <a href="Distribution-Simple-Command.html#t:OptFlags">OptFlags</a> -> <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) a <a href="#v:boolOpt-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:trueArg" class="def">trueArg</a> :: <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) a <a href="#v:trueArg" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:falseArg" class="def">falseArg</a> :: <a href="Distribution-Simple-Command.html#t:MkOptDescr">MkOptDescr</a> (a -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> a) a <a href="#v:falseArg" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:optionVerbosity" class="def">optionVerbosity</a> :: (flags -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>) -> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> flags -> flags) -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags <a href="#v:optionVerbosity" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:optionNumJobs" class="def">optionNumJobs</a> :: (flags -> <a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)) -> (<a href="Distribution-Simple-Setup.html#t:Flag">Flag</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> flags -> flags) -> <a href="Distribution-Simple-Command.html#t:OptionField">OptionField</a> flags <a href="#v:optionNumJobs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:readPToMaybe" class="def">readPToMaybe</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:readPToMaybe" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-SrcDist.html view
@@ -0,0 +1,19 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.SrcDist</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Simon Marlow 2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.SrcDist</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The top level action</a><ul><li><a href="#g:2">Parts of <code>sdist</code></a></li><li><a href="#g:3">Snapshots</a></li></ul></li><li><a href="#g:4">Extracting the source files</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This handles the <code>sdist</code> command. The module exports an <code><a href="Distribution-Simple-SrcDist.html#v:sdist">sdist</a></code> action but+ also some of the phases that make it up so that other tools can use just the+ bits they need. In particular the preparation of the tree of files to go+ into the source tarball is separated from actually building the source+ tarball.</p><p>The <code><a href="Distribution-Simple-SrcDist.html#v:createArchive">createArchive</a></code> action uses the external <code>tar</code> program and assumes that+ it accepts the <code>-z</code> flag. Neither of these assumptions are valid on Windows.+ The <code><a href="Distribution-Simple-SrcDist.html#v:sdist">sdist</a></code> action now also does some distribution QA checks.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:sdist">sdist</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:printPackageProblems">printPackageProblems</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:prepareTree">prepareTree</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:createArchive">createArchive</a> :: CreateArchiveFun</li><li class="src short"><a href="#v:prepareSnapshotTree">prepareSnapshotTree</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:snapshotPackage">snapshotPackage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/time-1.8.0.2/Data-Time-Clock.html#t:UTCTime">UTCTime</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li class="src short"><a href="#v:snapshotVersion">snapshotVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/time-1.8.0.2/Data-Time-Clock.html#t:UTCTime">UTCTime</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:dateToSnapshotNumber">dateToSnapshotNumber</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/time-1.8.0.2/Data-Time-Clock.html#t:UTCTime">UTCTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:listPackageSources">listPackageSources</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ([<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>], [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])</li></ul></div><div id="interface"><h1 id="g:1">The top level action</h1><div class="top"><p class="src"><a id="v:sdist" class="def">sdist</a> <a href="#v:sdist" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>information from the tarball</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc"><p>Information from configure</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a></td><td class="doc"><p>verbosity & snapshot</p></td></tr><tr><td class="src">-> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</td><td class="doc"><p>build prefix (temp dir)</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</td><td class="doc"><p>extra preprocessors (includes suffixes)</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Create a source distribution.</p></div></div><h2 id="g:2">Parts of <code><a href="Distribution-Simple-SrcDist.html#v:sdist">sdist</a></code></h2><div class="top"><p class="src"><a id="v:printPackageProblems" class="def">printPackageProblems</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:printPackageProblems" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:prepareTree" class="def">prepareTree</a> <a href="#v:prepareTree" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc"><p>verbosity</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>info from the cabal file</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>source tree to populate</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</td><td class="doc"><p>extra preprocessors (includes suffixes)</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Prepare a directory tree of source files.</p></div></div><div class="top"><p class="src"><a id="v:createArchive" class="def">createArchive</a> :: CreateArchiveFun <a href="#v:createArchive" class="selflink">#</a></p><div class="doc"><p>Create an archive from a tree of source files, and clean up the tree.</p></div></div><h2 id="g:3">Snapshots</h2><div class="top"><p class="src"><a id="v:prepareSnapshotTree" class="def">prepareSnapshotTree</a> <a href="#v:prepareSnapshotTree" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc"><p>verbosity</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>info from the cabal file</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>source tree to populate</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</td><td class="doc"><p>extra preprocessors (includes+ suffixes)</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Prepare a directory tree of source files for a snapshot version.+ It is expected that the appropriate snapshot version has already been set+ in the package description, eg using <code><a href="Distribution-Simple-SrcDist.html#v:snapshotPackage">snapshotPackage</a></code> or <code><a href="Distribution-Simple-SrcDist.html#v:snapshotVersion">snapshotVersion</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:snapshotPackage" class="def">snapshotPackage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/time-1.8.0.2/Data-Time-Clock.html#t:UTCTime">UTCTime</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:snapshotPackage" class="selflink">#</a></p><div class="doc"><p>Modifies a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code> by appending a snapshot number+ corresponding to the given date.</p></div></div><div class="top"><p class="src"><a id="v:snapshotVersion" class="def">snapshotVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/time-1.8.0.2/Data-Time-Clock.html#t:UTCTime">UTCTime</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:snapshotVersion" class="selflink">#</a></p><div class="doc"><p>Modifies a <code><a href="Distribution-Version.html#t:Version">Version</a></code> by appending a snapshot number corresponding+ to the given date.</p></div></div><div class="top"><p class="src"><a id="v:dateToSnapshotNumber" class="def">dateToSnapshotNumber</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/time-1.8.0.2/Data-Time-Clock.html#t:UTCTime">UTCTime</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:dateToSnapshotNumber" class="selflink">#</a></p><div class="doc"><p>Given a date produce a corresponding integer representation.+ For example given a date <code>18<em>03</em>2008</code> produce the number <code>20080318</code>.</p></div></div><h1 id="g:4">Extracting the source files</h1><div class="top"><p class="src"><a id="v:listPackageSources" class="def">listPackageSources</a> <a href="#v:listPackageSources" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc"><p>verbosity</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>info from the cabal file</p></td></tr><tr><td class="src">-> [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</td><td class="doc"><p>extra preprocessors (include+ suffixes)</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ([<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>], [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>List all source files of a package. Returns a tuple of lists: first+ component is a list of ordinary files, second one is a list of those files+ that may be executable.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Test-ExeV10.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Test.ExeV10</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Test.ExeV10</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:runTest" class="def">runTest</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> <a href="#v:runTest" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Test-LibV09.html view
@@ -0,0 +1,10 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Test.LibV09</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Test.LibV09</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:runTest">runTest</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a></li><li class="src short"><a href="#v:simpleTestStub">simpleTestStub</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:stubFilePath">stubFilePath</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:stubMain">stubMain</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-TestSuite.html#t:Test">Test</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:stubName">stubName</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:stubWriteLog">stubWriteLog</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:writeSimpleTestStub">writeSimpleTestStub</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:runTest" class="def">runTest</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> <a href="#v:runTest" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:simpleTestStub" class="def">simpleTestStub</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:simpleTestStub" class="selflink">#</a></p><div class="doc"><p>Source code for library test suite stub executable</p></div></div><div class="top"><p class="src"><a id="v:stubFilePath" class="def">stubFilePath</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:stubFilePath" class="selflink">#</a></p><div class="doc"><p>The filename of the source file for the stub executable associated with a+ library <code>TestSuite</code>.</p></div></div><div class="top"><p class="src"><a id="v:stubMain" class="def">stubMain</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="Distribution-TestSuite.html#t:Test">Test</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:stubMain" class="selflink">#</a></p><div class="doc"><p>Main function for test stubs. Once, it was written directly into the stub,+ but minimizing the amount of code actually in the stub maximizes the number+ of detectable errors when Cabal is compiled.</p></div></div><div class="top"><p class="src"><a id="v:stubName" class="def">stubName</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:stubName" class="selflink">#</a></p><div class="doc"><p>The name of the stub executable associated with a library <code>TestSuite</code>.</p></div></div><div class="top"><p class="src"><a id="v:stubWriteLog" class="def">stubWriteLog</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:stubWriteLog" class="selflink">#</a></p><div class="doc"><p>From a test stub, write the <code><a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a></code> to temporary file for the calling+ Cabal process to read.</p></div></div><div class="top"><p class="src"><a id="v:writeSimpleTestStub" class="def">writeSimpleTestStub</a> <a href="#v:writeSimpleTestStub" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></td><td class="doc"><p>library <code>TestSuite</code> for which a stub+ is being created</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>path to directory where stub source+ should be located</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Write the source file for a library <code>TestSuite</code> stub executable.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Test-Log.html view
@@ -0,0 +1,11 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Test.Log</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Test.Log</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:PackageLog">PackageLog</a> = <a href="#v:PackageLog">PackageLog</a> {<ul class="subs"><li><a href="#v:package">package</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></li><li><a href="#v:compiler">compiler</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></li><li><a href="#v:platform">platform</a> :: <a href="Distribution-System.html#t:Platform">Platform</a></li><li><a href="#v:testSuites">testSuites</a> :: [<a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a>]</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:TestLogs">TestLogs</a><ul class="subs"><li>= <a href="#v:TestLog">TestLog</a> { <ul class="subs"><li><a href="#v:testName">testName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:testOptionsReturned">testOptionsReturned</a> :: <a href="Distribution-TestSuite.html#t:Options">Options</a></li><li><a href="#v:testResult">testResult</a> :: <a href="Distribution-TestSuite.html#t:Result">Result</a></li></ul> }</li><li>| <a href="#v:GroupLogs">GroupLogs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> [<a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a>]</li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:TestSuiteLog">TestSuiteLog</a> = <a href="#v:TestSuiteLog">TestSuiteLog</a> {<ul class="subs"><li><a href="#v:testSuiteName">testSuiteName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:testLogs">testLogs</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a></li><li><a href="#v:logFile">logFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul>}</li><li class="src short"><a href="#v:countTestResults">countTestResults</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)</li><li class="src short"><a href="#v:localPackageLog">localPackageLog</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a></li><li class="src short"><a href="#v:summarizePackage">summarizePackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:summarizeSuiteFinish">summarizeSuiteFinish</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:summarizeSuiteStart">summarizeSuiteStart</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:summarizeTest">summarizeTest</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:suiteError">suiteError</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:suiteFailed">suiteFailed</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:suitePassed">suitePassed</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:testSuiteLogPath">testSuiteLogPath</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PackageLog" class="def">PackageLog</a> <a href="#t:PackageLog" class="selflink">#</a></p><div class="doc"><p>Logs all test results for a package, broken down first by test suite and+ then by test case.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:PackageLog" class="def">PackageLog</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:package" class="def">package</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:compiler" class="def">compiler</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:platform" class="def">platform</a> :: <a href="Distribution-System.html#t:Platform">Platform</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testSuites" class="def">testSuites</a> :: [<a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:PackageLog" class="caption collapser" onclick="toggleSection('i:PackageLog')">Instances</p><div id="section.i:PackageLog" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageLog:Eq:1" class="instance expander" onclick="toggleSection('i:id:PackageLog:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a></span> <a href="#t:PackageLog" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageLog:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> -> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> -> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageLog:Read:2" class="instance expander" onclick="toggleSection('i:id:PackageLog:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a></span> <a href="#t:PackageLog" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageLog:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageLog:Show:3" class="instance expander" onclick="toggleSection('i:id:PackageLog:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a></span> <a href="#t:PackageLog" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageLog:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestLogs" class="def">TestLogs</a> <a href="#t:TestLogs" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestLog" class="def">TestLog</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:testName" class="def">testName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testOptionsReturned" class="def">testOptionsReturned</a> :: <a href="Distribution-TestSuite.html#t:Options">Options</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testResult" class="def">testResult</a> :: <a href="Distribution-TestSuite.html#t:Result">Result</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:GroupLogs" class="def">GroupLogs</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> [<a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a>]</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:TestLogs" class="caption collapser" onclick="toggleSection('i:TestLogs')">Instances</p><div id="section.i:TestLogs" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestLogs:Eq:1" class="instance expander" onclick="toggleSection('i:id:TestLogs:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a></span> <a href="#t:TestLogs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestLogs:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestLogs:Read:2" class="instance expander" onclick="toggleSection('i:id:TestLogs:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a></span> <a href="#t:TestLogs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestLogs:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestLogs:Show:3" class="instance expander" onclick="toggleSection('i:id:TestLogs:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a></span> <a href="#t:TestLogs" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestLogs:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestSuiteLog" class="def">TestSuiteLog</a> <a href="#t:TestSuiteLog" class="selflink">#</a></p><div class="doc"><p>Logs test suite results, itemized by test case.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestSuiteLog" class="def">TestSuiteLog</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:testSuiteName" class="def">testSuiteName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testLogs" class="def">testLogs</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:logFile" class="def">logFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:TestSuiteLog" class="caption collapser" onclick="toggleSection('i:TestSuiteLog')">Instances</p><div id="section.i:TestSuiteLog" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteLog:Eq:1" class="instance expander" onclick="toggleSection('i:id:TestSuiteLog:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a></span> <a href="#t:TestSuiteLog" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteLog:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteLog:Read:2" class="instance expander" onclick="toggleSection('i:id:TestSuiteLog:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a></span> <a href="#t:TestSuiteLog" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteLog:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteLog:Show:3" class="instance expander" onclick="toggleSection('i:id:TestSuiteLog:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a></span> <a href="#t:TestSuiteLog" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteLog:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:countTestResults" class="def">countTestResults</a> <a href="#v:countTestResults" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)</td><td class="doc"><p>Passes, fails, and errors,+ respectively.</p></td></tr></table></div><div class="doc"><p>Count the number of pass, fail, and error test results in a <code><a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a></code>+ tree.</p></div></div><div class="top"><p class="src"><a id="v:localPackageLog" class="def">localPackageLog</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> <a href="#v:localPackageLog" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a></code> with package and platform information specified.</p></div></div><div class="top"><p class="src"><a id="v:summarizePackage" class="def">summarizePackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Test-Log.html#t:PackageLog">PackageLog</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:summarizePackage" class="selflink">#</a></p><div class="doc"><p>Print a summary to the console after all test suites have been run+ indicating the number of successful test suites and cases. Returns <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a></code> if+ all test suites passed and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a></code> otherwise.</p></div></div><div class="top"><p class="src"><a id="v:summarizeSuiteFinish" class="def">summarizeSuiteFinish</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:summarizeSuiteFinish" class="selflink">#</a></p><div class="doc"><p>Print a summary of the test suite's results on the console, suppressing+ output for certain verbosity or test filter levels.</p></div></div><div class="top"><p class="src"><a id="v:summarizeSuiteStart" class="def">summarizeSuiteStart</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:summarizeSuiteStart" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:summarizeTest" class="def">summarizeTest</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:summarizeTest" class="selflink">#</a></p><div class="doc"><p>Print a summary of a single test case's result to the console, supressing+ output for certain verbosity or test filter levels.</p></div></div><div class="top"><p class="src"><a id="v:suiteError" class="def">suiteError</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:suiteError" class="selflink">#</a></p><div class="doc"><p>From a <code><a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a></code>, determine if the test suite encountered errors.</p></div></div><div class="top"><p class="src"><a id="v:suiteFailed" class="def">suiteFailed</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:suiteFailed" class="selflink">#</a></p><div class="doc"><p>From a <code><a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a></code>, determine if the test suite failed.</p></div></div><div class="top"><p class="src"><a id="v:suitePassed" class="def">suitePassed</a> :: <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:suitePassed" class="selflink">#</a></p><div class="doc"><p>From a <code><a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">TestSuiteLog</a></code>, determine if the test suite passed.</p></div></div><div class="top"><p class="src"><a id="v:testSuiteLogPath" class="def">testSuiteLogPath</a> <a href="#v:testSuiteLogPath" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>test suite name</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Test-Log.html#t:TestLogs">TestLogs</a></td><td class="doc"><p>test suite results</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr></table></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Test.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Test</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Thomas Tuegel 2010</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Test</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is the entry point into testing a built package. It performs the+ "<code>./setup test</code>" action. It runs test suites designated in the package+ description and reports on the results.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:test">test</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:test" class="def">test</a> <a href="#v:test" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a></td><td class="doc"><p>positional command-line arguments</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></td><td class="doc"><p>information from the .cabal file</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc"><p>information from the configure step</p></td></tr><tr><td class="src">-> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a></td><td class="doc"><p>flags sent to test</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Perform the "<code>./setup test</code>" action.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-UHC.html view
@@ -0,0 +1,7 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.UHC</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Andres Loeh 2009</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.UHC</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module contains most of the UHC-specific code for configuring, building+ and installing packages.</p><p>Thanks to the authors of the other implementation-specific files, in+ particular to Isaac Jones, Duncan Coutts and Henning Thielemann, for+ inspiration on how to design this module.</p></div></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:configure" class="def">configure</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a>, <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>) <a href="#v:configure" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInstalledPackages" class="def">getInstalledPackages</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a> <a href="#v:getInstalledPackages" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildLib" class="def">buildLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildLib" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:buildExe" class="def">buildExe</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:buildExe" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:installLib" class="def">installLib</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installLib" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:registerPackage" class="def">registerPackage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a> -> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a> -> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a> -> <a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">InstalledPackageInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:registerPackage" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:inplacePackageDbPath" class="def">inplacePackageDbPath</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:inplacePackageDbPath" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-UserHooks.html view
@@ -0,0 +1,21 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.UserHooks</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.UserHooks</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This defines the API that <code>Setup.hs</code> scripts can use to customise the way+ the build works. This module just defines the <code><a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a></code> type. The+ predefined sets of hooks that implement the <code>Simple</code>, <code>Make</code> and <code>Configure</code>+ build systems are defined in <a href="Distribution-Simple.html">Distribution.Simple</a>. The <code><a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a></code> is a big+ record of functions. There are 3 for each action, a pre, post and the action+ itself. There are few other miscellaneous hooks, ones to extend the set of+ programs and preprocessors and one to override the function used to read the+ <code>.cabal</code> file.</p><p>This hooks type is widely agreed to not be the right solution. Partly this+ is because changes to it usually break custom <code>Setup.hs</code> files and yet many+ internal code changes do require changes to the hooks. For example we cannot+ pass any extra parameters to most of the functions that implement the+ various phases because it would involve changing the types of the+ corresponding hook. At some point it will have to be replaced.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:UserHooks">UserHooks</a> = <a href="#v:UserHooks">UserHooks</a> {<ul class="subs"><li><a href="#v:runTests">runTests</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:readDesc">readDesc</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>)</li><li><a href="#v:hookedPreProcessors">hookedPreProcessors</a> :: [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</li><li><a href="#v:hookedPrograms">hookedPrograms</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>]</li><li><a href="#v:preConf">preConf</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:confHook">confHook</a> :: (<a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>, <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a>) -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></li><li><a href="#v:postConf">postConf</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preBuild">preBuild</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:buildHook">buildHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postBuild">postBuild</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preRepl">preRepl</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:replHook">replHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postRepl">postRepl</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preClean">preClean</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:cleanHook">cleanHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> () -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postClean">postClean</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> () -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preCopy">preCopy</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:copyHook">copyHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postCopy">postCopy</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preInst">preInst</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:instHook">instHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postInst">postInst</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preSDist">preSDist</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:sDistHook">sDistHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postSDist">postSDist</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preReg">preReg</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:regHook">regHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postReg">postReg</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preUnreg">preUnreg</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:unregHook">unregHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postUnreg">postUnreg</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preHscolour">preHscolour</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:hscolourHook">hscolourHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postHscolour">postHscolour</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preDoctest">preDoctest</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:doctestHook">doctestHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postDoctest">postDoctest</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preHaddock">preHaddock</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:haddockHook">haddockHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postHaddock">postHaddock</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preTest">preTest</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:testHook">testHook</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postTest">postTest</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preBench">preBench</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:benchHook">benchHook</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postBench">postBench</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:Args">Args</a> = [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:emptyUserHooks">emptyUserHooks</a> :: <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:UserHooks" class="def">UserHooks</a> <a href="#t:UserHooks" class="selflink">#</a></p><div class="doc"><p>Hooks allow authors to add specific functionality before and after a+ command is run, and also to specify additional preprocessors.</p><ul><li>WARNING: The hooks interface is under rather constant flux as we try to+ understand users needs. Setup files that depend on this interface may+ break in future releases.</li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:UserHooks" class="def">UserHooks</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:runTests" class="def">runTests</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><div class="warning"><p>Deprecated: Please use the new testing interface instead!</p></div><p>Used for <code>./setup test</code></p></div></li><li><dfn class="src"><a id="v:readDesc" class="def">readDesc</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>)</dfn><div class="doc"><p>Read the description file</p></div></li><li><dfn class="src"><a id="v:hookedPreProcessors" class="def">hookedPreProcessors</a> :: [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</dfn><div class="doc"><p>Custom preprocessors in addition to and overriding <code><a href="Distribution-Simple-PreProcess.html#v:knownSuffixHandlers">knownSuffixHandlers</a></code>.</p></div></li><li><dfn class="src"><a id="v:hookedPrograms" class="def">hookedPrograms</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>]</dfn><div class="doc"><p>These programs are detected at configure time. Arguments for them are+ added to the configure command.</p></div></li><li><dfn class="src"><a id="v:preConf" class="def">preConf</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before configure command</p></div></li><li><dfn class="src"><a id="v:confHook" class="def">confHook</a> :: (<a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>, <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a>) -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></dfn><div class="doc"><p>Over-ride this hook to get different behavior during configure.</p></div></li><li><dfn class="src"><a id="v:postConf" class="def">postConf</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after configure command</p></div></li><li><dfn class="src"><a id="v:preBuild" class="def">preBuild</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before build command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:buildHook" class="def">buildHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during build.</p></div></li><li><dfn class="src"><a id="v:postBuild" class="def">postBuild</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after build command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preRepl" class="def">preRepl</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before repl command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:replHook" class="def">replHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during interpretation.</p></div></li><li><dfn class="src"><a id="v:postRepl" class="def">postRepl</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after repl command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preClean" class="def">preClean</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before clean command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:cleanHook" class="def">cleanHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> () -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during clean.</p></div></li><li><dfn class="src"><a id="v:postClean" class="def">postClean</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> () -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after clean command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preCopy" class="def">preCopy</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before copy command</p></div></li><li><dfn class="src"><a id="v:copyHook" class="def">copyHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during copy.</p></div></li><li><dfn class="src"><a id="v:postCopy" class="def">postCopy</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after copy command</p></div></li><li><dfn class="src"><a id="v:preInst" class="def">preInst</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before install command</p></div></li><li><dfn class="src"><a id="v:instHook" class="def">instHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during install.</p></div></li><li><dfn class="src"><a id="v:postInst" class="def">postInst</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after install command. postInst should be run+ on the target, not on the build machine.</p></div></li><li><dfn class="src"><a id="v:preSDist" class="def">preSDist</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before sdist command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:sDistHook" class="def">sDistHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during sdist.</p></div></li><li><dfn class="src"><a id="v:postSDist" class="def">postSDist</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after sdist command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preReg" class="def">preReg</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before register command</p></div></li><li><dfn class="src"><a id="v:regHook" class="def">regHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during registration.</p></div></li><li><dfn class="src"><a id="v:postReg" class="def">postReg</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after register command</p></div></li><li><dfn class="src"><a id="v:preUnreg" class="def">preUnreg</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before unregister command</p></div></li><li><dfn class="src"><a id="v:unregHook" class="def">unregHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during unregistration.</p></div></li><li><dfn class="src"><a id="v:postUnreg" class="def">postUnreg</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after unregister command</p></div></li><li><dfn class="src"><a id="v:preHscolour" class="def">preHscolour</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before hscolour command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:hscolourHook" class="def">hscolourHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during hscolour.</p></div></li><li><dfn class="src"><a id="v:postHscolour" class="def">postHscolour</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after hscolour command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preDoctest" class="def">preDoctest</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before doctest command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:doctestHook" class="def">doctestHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during doctest.</p></div></li><li><dfn class="src"><a id="v:postDoctest" class="def">postDoctest</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after doctest command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preHaddock" class="def">preHaddock</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before haddock command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:haddockHook" class="def">haddockHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during haddock.</p></div></li><li><dfn class="src"><a id="v:postHaddock" class="def">postHaddock</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after haddock command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preTest" class="def">preTest</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before test command.</p></div></li><li><dfn class="src"><a id="v:testHook" class="def">testHook</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during test.</p></div></li><li><dfn class="src"><a id="v:postTest" class="def">postTest</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after test command.</p></div></li><li><dfn class="src"><a id="v:preBench" class="def">preBench</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before bench command.</p></div></li><li><dfn class="src"><a id="v:benchHook" class="def">benchHook</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during bench.</p></div></li><li><dfn class="src"><a id="v:postBench" class="def">postBench</a> :: <a href="Distribution-Simple-UserHooks.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after bench command.</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Args" class="def">Args</a> = [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#t:Args" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emptyUserHooks" class="def">emptyUserHooks</a> :: <a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a> <a href="#v:emptyUserHooks" class="selflink">#</a></p><div class="doc"><p>Empty <code><a href="Distribution-Simple-UserHooks.html#t:UserHooks">UserHooks</a></code> which do nothing.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple-Utils.html view
@@ -0,0 +1,116 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Utils</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones Simon Marlow 2003-2004</td></tr><tr><th>License</th><td>BSD3+ portions Copyright (c) 2007, Galois Inc.</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple.Utils</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">logging and errors</a></li><li><a href="#g:2">exceptions</a></li><li><a href="#g:3">running programs</a></li><li><a href="#g:4">copying files</a></li><li><a href="#g:5">installing files</a></li><li><a href="#g:6">File permissions</a></li><li><a href="#g:7">file names</a></li><li><a href="#g:8">finding files</a></li><li><a href="#g:9">environment variables</a></li><li><a href="#g:10">simple file globbing</a></li><li><a href="#g:11">modification time</a></li><li><a href="#g:12">temp files and dirs</a></li><li><a href="#g:13">.cabal and .buildinfo files</a></li><li><a href="#g:14">reading and writing files safely</a></li><li><a href="#g:15">Unicode</a></li><li><a href="#g:16">BOM</a></li><li><a href="#g:17">generic utils</a></li><li><a href="#g:18">FilePath stuff</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A large and somewhat miscellaneous collection of utility functions used+ throughout the rest of the Cabal lib and in other tools that use the Cabal+ lib like <code>cabal-install</code>. It has a very simple set of logging actions. It+ has low level functions for running programs, a bunch of wrappers for+ various directory and file functions that do extra logging.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:cabalVersion">cabalVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:die">die</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:dieWithLocation">dieWithLocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:dieNoVerbosity">dieNoVerbosity</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:die-39-">die'</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:dieWithLocation-39-">dieWithLocation'</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:dieNoWrap">dieNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:topHandler">topHandler</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:topHandlerWith">topHandlerWith</a> :: <span class="keyword">forall</span> a. (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:warn">warn</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:notice">notice</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:noticeNoWrap">noticeNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:noticeDoc">noticeDoc</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:setupMessage">setupMessage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:info">info</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:infoNoWrap">infoNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:debug">debug</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:debugNoWrap">debugNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:chattyTry">chattyTry</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:annotateIO">annotateIO</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:printRawCommandAndArgs">printRawCommandAndArgs</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:printRawCommandAndArgsAndEnv">printRawCommandAndArgsAndEnv</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:handleDoesNotExist">handleDoesNotExist</a> :: a -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a</li><li class="src short"><a href="#v:rawSystemExit">rawSystemExit</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:rawSystemExitCode">rawSystemExitCode</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a></li><li class="src short"><a href="#v:rawSystemExitWithEnv">rawSystemExitWithEnv</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:rawSystemStdout">rawSystemStdout</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:rawSystemStdInOut">rawSystemStdInOut</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a>)</li><li class="src short"><a href="#v:rawSystemIOWithEnv">rawSystemIOWithEnv</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a></li><li class="src short"><a href="#v:createProcessWithEnv">createProcessWithEnv</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/process-1.6.1.0/System-Process.html#t:StdStream">StdStream</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/process-1.6.1.0/System-Process.html#t:StdStream">StdStream</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/process-1.6.1.0/System-Process.html#t:StdStream">StdStream</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/process-1.6.1.0/System-Process.html#t:ProcessHandle">ProcessHandle</a>)</li><li class="src short"><a href="#v:maybeExit">maybeExit</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:xargs">xargs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> ([<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:findProgramLocation">findProgramLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:findProgramVersion">findProgramVersion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>) -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</li><li class="src short"><a href="#v:smartCopySources">smartCopySources</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:createDirectoryIfMissingVerbose">createDirectoryIfMissingVerbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:copyFileVerbose">copyFileVerbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:copyDirectoryRecursiveVerbose">copyDirectoryRecursiveVerbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:copyFiles">copyFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:copyFileTo">copyFileTo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installOrdinaryFile">installOrdinaryFile</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installExecutableFile">installExecutableFile</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installMaybeExecutableFile">installMaybeExecutableFile</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installOrdinaryFiles">installOrdinaryFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installExecutableFiles">installExecutableFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installMaybeExecutableFiles">installMaybeExecutableFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:installDirectoryContents">installDirectoryContents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:copyDirectoryRecursive">copyDirectoryRecursive</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:doesExecutableExist">doesExecutableExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:setFileOrdinary">setFileOrdinary</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:setFileExecutable">setFileExecutable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:currentDir">currentDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:shortRelativePath">shortRelativePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:dropExeExtension">dropExeExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:exeExtensions">exeExtensions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:findFile">findFile</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:findFirstFile">findFirstFile</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> [a] -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:findFileWithExtension">findFileWithExtension</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:findFileWithExtension-39-">findFileWithExtension'</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))</li><li class="src short"><a href="#v:findAllFilesWithExtension">findAllFilesWithExtension</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li class="src short"><a href="#v:findModuleFile">findModuleFile</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:findModuleFiles">findModuleFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</li><li class="src short"><a href="#v:getDirectoryContentsRecursive">getDirectoryContentsRecursive</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li class="src short"><a href="#v:isInSearchPath">isInSearchPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:addLibraryPath">addLibraryPath</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li class="src short"><a href="#v:matchFileGlob">matchFileGlob</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li class="src short"><a href="#v:matchDirFileGlob">matchDirFileGlob</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li class="src short"><a href="#v:parseFileGlob">parseFileGlob</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Utils.html#t:FileGlob">FileGlob</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:FileGlob">FileGlob</a><ul class="subs"><li>= <a href="#v:NoGlob">NoGlob</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li>| <a href="#v:FileGlob">FileGlob</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:moreRecentFile">moreRecentFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:existsAndIsMoreRecentThan">existsAndIsMoreRecentThan</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:TempFileOptions">TempFileOptions</a> = <a href="#v:TempFileOptions">TempFileOptions</a> {<ul class="subs"><li><a href="#v:optKeepTempFiles">optKeepTempFiles</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:defaultTempFileOptions">defaultTempFileOptions</a> :: <a href="Distribution-Simple-Utils.html#t:TempFileOptions">TempFileOptions</a></li><li class="src short"><a href="#v:withTempFile">withTempFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:withTempFileEx">withTempFileEx</a> :: <a href="Distribution-Simple-Utils.html#t:TempFileOptions">TempFileOptions</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:withTempDirectory">withTempDirectory</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:withTempDirectoryEx">withTempDirectoryEx</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Utils.html#t:TempFileOptions">TempFileOptions</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:defaultPackageDesc">defaultPackageDesc</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:findPackageDesc">findPackageDesc</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:tryFindPackageDesc">tryFindPackageDesc</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:defaultHookedPackageDesc">defaultHookedPackageDesc</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:findHookedPackageDesc">findHookedPackageDesc</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:withFileContents">withFileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a</li><li class="src short"><a href="#v:writeFileAtomic">writeFileAtomic</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:rewriteFile">rewriteFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:rewriteFileEx">rewriteFileEx</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:fromUTF8">fromUTF8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:fromUTF8BS">fromUTF8BS</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:fromUTF8LBS">fromUTF8LBS</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:toUTF8">toUTF8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:readUTF8File">readUTF8File</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:withUTF8FileContents">withUTF8FileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:writeUTF8File">writeUTF8File</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:normaliseLineEndings">normaliseLineEndings</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:startsWithBOM">startsWithBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:fileHasBOM">fileHasBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:ignoreBOM">ignoreBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:dropWhileEndLE">dropWhileEndLE</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> [a]</li><li class="src short"><a href="#v:takeWhileEndLE">takeWhileEndLE</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> [a]</li><li class="src short"><a href="#v:equating">equating</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => (b -> a) -> b -> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:comparing">comparing</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => (b -> a) -> b -> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a></li><li class="src short"><a href="#v:isInfixOf">isInfixOf</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => [a] -> [a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:intercalate">intercalate</a> :: [a] -> [[a]] -> [a]</li><li class="src short"><a href="#v:lowercase">lowercase</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:listUnion">listUnion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] -> [a]</li><li class="src short"><a href="#v:listUnionRight">listUnionRight</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] -> [a]</li><li class="src short"><a href="#v:ordNub">ordNub</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a]</li><li class="src short"><a href="#v:ordNubBy">ordNubBy</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> b => (a -> b) -> [a] -> [a]</li><li class="src short"><a href="#v:ordNubRight">ordNubRight</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a]</li><li class="src short"><a href="#v:safeTail">safeTail</a> :: [a] -> [a]</li><li class="src short"><a href="#v:unintersperse">unintersperse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:wrapText">wrapText</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:wrapLine">wrapLine</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [[<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]]</li><li class="src short"><a href="#v:isAbsoluteOnAnyPlatform">isAbsoluteOnAnyPlatform</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isRelativeOnAnyPlatform">isRelativeOnAnyPlatform</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:cabalVersion" class="def">cabalVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:cabalVersion" class="selflink">#</a></p></div><h1 id="g:1">logging and errors</h1><div class="top"><p class="src"><a id="v:die" class="def">die</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:die" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Messages thrown with die can't be controlled with Verbosity; use die' instead, or dieNoVerbosity if Verbosity truly is not available</p></div></div></div><div class="top"><p class="src"><a id="v:dieWithLocation" class="def">dieWithLocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:dieWithLocation" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Messages thrown with dieWithLocation can't be controlled with Verbosity; use dieWithLocation' instead</p></div></div></div><div class="top"><p class="src"><a id="v:dieNoVerbosity" class="def">dieNoVerbosity</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:dieNoVerbosity" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:die-39-" class="def">die'</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:die-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:dieWithLocation-39-" class="def">dieWithLocation'</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:dieWithLocation-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:dieNoWrap" class="def">dieNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:dieNoWrap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:topHandler" class="def">topHandler</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:topHandler" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:topHandlerWith" class="def">topHandlerWith</a> :: <span class="keyword">forall</span> a. (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:topHandlerWith" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:warn" class="def">warn</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:warn" class="selflink">#</a></p><div class="doc"><p>Non fatal conditions that may be indicative of an error or problem.</p><p>We display these at the <code><a href="Distribution-Verbosity.html#v:normal">normal</a></code> verbosity level.</p></div></div><div class="top"><p class="src"><a id="v:notice" class="def">notice</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:notice" class="selflink">#</a></p><div class="doc"><p>Useful status messages.</p><p>We display these at the <code><a href="Distribution-Verbosity.html#v:normal">normal</a></code> verbosity level.</p><p>This is for the ordinary helpful status messages that users see. Just+ enough information to know that things are working but not floods of detail.</p></div></div><div class="top"><p class="src"><a id="v:noticeNoWrap" class="def">noticeNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:noticeNoWrap" class="selflink">#</a></p><div class="doc"><p>Display a message at <code><a href="Distribution-Verbosity.html#v:normal">normal</a></code> verbosity level, but without+ wrapping.</p></div></div><div class="top"><p class="src"><a id="v:noticeDoc" class="def">noticeDoc</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:noticeDoc" class="selflink">#</a></p><div class="doc"><p>Pretty-print a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></code> status message at <code><a href="Distribution-Verbosity.html#v:normal">normal</a></code> verbosity+ level. Use this if you need fancy formatting.</p></div></div><div class="top"><p class="src"><a id="v:setupMessage" class="def">setupMessage</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:setupMessage" class="selflink">#</a></p><div class="doc"><p>Display a "setup status message". Prefer using setupMessage'+ if possible.</p></div></div><div class="top"><p class="src"><a id="v:info" class="def">info</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:info" class="selflink">#</a></p><div class="doc"><p>More detail on the operation of some action.</p><p>We display these messages when the verbosity level is <code><a href="Distribution-Verbosity.html#v:verbose">verbose</a></code></p></div></div><div class="top"><p class="src"><a id="v:infoNoWrap" class="def">infoNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:infoNoWrap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:debug" class="def">debug</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:debug" class="selflink">#</a></p><div class="doc"><p>Detailed internal debugging information</p><p>We display these messages when the verbosity level is <code><a href="Distribution-Verbosity.html#v:deafening">deafening</a></code></p></div></div><div class="top"><p class="src"><a id="v:debugNoWrap" class="def">debugNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:debugNoWrap" class="selflink">#</a></p><div class="doc"><p>A variant of <code><a href="Distribution-Simple-Utils.html#v:debug">debug</a></code> that doesn't perform the automatic line+ wrapping. Produces better output in some cases.</p></div></div><div class="top"><p class="src"><a id="v:chattyTry" class="def">chattyTry</a> <a href="#v:chattyTry" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>a description of the action we were attempting</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc"><p>the action itself</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Perform an IO action, catching any IO exceptions and printing an error+ if one occurs.</p></div></div><div class="top"><p class="src"><a id="v:annotateIO" class="def">annotateIO</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:annotateIO" class="selflink">#</a></p><div class="doc"><p>Given a block of IO code that may raise an exception, annotate+ it with the metadata from the current scope. Use this as close+ to external code that raises IO exceptions as possible, since+ this function unconditionally wraps the error message with a trace+ (so it is NOT idempotent.)</p></div></div><div class="top"><p class="src"><a id="v:printRawCommandAndArgs" class="def">printRawCommandAndArgs</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:printRawCommandAndArgs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:printRawCommandAndArgsAndEnv" class="def">printRawCommandAndArgsAndEnv</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:printRawCommandAndArgsAndEnv" class="selflink">#</a></p></div><h1 id="g:2">exceptions</h1><div class="top"><p class="src"><a id="v:handleDoesNotExist" class="def">handleDoesNotExist</a> :: a -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a <a href="#v:handleDoesNotExist" class="selflink">#</a></p><div class="doc"><p>Run an IO computation, returning <code>e</code> if it raises a "file+ does not exist" error.</p></div></div><h1 id="g:3">running programs</h1><div class="top"><p class="src"><a id="v:rawSystemExit" class="def">rawSystemExit</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:rawSystemExit" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:rawSystemExitCode" class="def">rawSystemExitCode</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a> <a href="#v:rawSystemExitCode" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:rawSystemExitWithEnv" class="def">rawSystemExitWithEnv</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:rawSystemExitWithEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:rawSystemStdout" class="def">rawSystemStdout</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:rawSystemStdout" class="selflink">#</a></p><div class="doc"><p>Run a command and return its output.</p><p>The output is assumed to be text in the locale encoding.</p></div></div><div class="top"><p class="src"><a id="v:rawSystemStdInOut" class="def">rawSystemStdInOut</a> <a href="#v:rawSystemStdInOut" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Program location</p></td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc"><p>Arguments</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>New working dir or inherit</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</td><td class="doc"><p>New environment or inherit</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)</td><td class="doc"><p>input text and binary mode</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc"><p>output in binary mode</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a>)</td><td class="doc"><p>output, errors, exit</p></td></tr></table></div><div class="doc"><p>Run a command and return its output, errors and exit status. Optionally+ also supply some input. Also provides control over whether the binary/text+ mode of the input and output.</p></div></div><div class="top"><p class="src"><a id="v:rawSystemIOWithEnv" class="def">rawSystemIOWithEnv</a> <a href="#v:rawSystemIOWithEnv" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>New working dir or inherit</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</td><td class="doc"><p>New environment or inherit</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a></td><td class="doc"><p>stdin</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a></td><td class="doc"><p>stdout</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a></td><td class="doc"><p>stderr</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:createProcessWithEnv" class="def">createProcessWithEnv</a> <a href="#v:createProcessWithEnv" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>New working dir or inherit</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</td><td class="doc"><p>New environment or inherit</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/process-1.6.1.0/System-Process.html#t:StdStream">StdStream</a></td><td class="doc"><p>stdin</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/process-1.6.1.0/System-Process.html#t:StdStream">StdStream</a></td><td class="doc"><p>stdout</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/process-1.6.1.0/System-Process.html#t:StdStream">StdStream</a></td><td class="doc"><p>stderr</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/process-1.6.1.0/System-Process.html#t:ProcessHandle">ProcessHandle</a>)</td><td class="doc"><p>Any handles created for stdin, stdout, or stderr+ with <code>CreateProcess</code>, and a handle to the process.</p></td></tr></table></div></div><div class="top"><p class="src"><a id="v:maybeExit" class="def">maybeExit</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Exit.html#t:ExitCode">ExitCode</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:maybeExit" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:xargs" class="def">xargs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> ([<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:xargs" class="selflink">#</a></p><div class="doc"><p>Like the Unix xargs program. Useful for when we've got very long command+ lines that might overflow an OS limit on command line length and so you+ need to invoke a command multiple times to get all the args in.</p><p>Use it with either of the rawSystem variants above. For example:</p><pre>xargs (32*1024) (rawSystemExit verbosity) prog fixedArgs bigArgs</pre></div></div><div class="top"><p class="src"><a id="v:findProgramLocation" class="def">findProgramLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) <a href="#v:findProgramLocation" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: No longer used within Cabal, try findProgramOnSearchPath</p></div><p>Look for a program on the path.</p></div></div><div class="top"><p class="src"><a id="v:findProgramVersion" class="def">findProgramVersion</a> <a href="#v:findProgramVersion" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>version args</p></td></tr><tr><td class="src">-> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</td><td class="doc"><p>function to select version+ number from program output</p></td></tr><tr><td class="src">-> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>location</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Look for a program and try to find it's version number. It can accept+ either an absolute path or the name of a program binary, in which case we+ will look for the program on the path.</p></div></div><h1 id="g:4">copying files</h1><div class="top"><p class="src"><a id="v:smartCopySources" class="def">smartCopySources</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:smartCopySources" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use findModuleFiles and copyFiles or installOrdinaryFiles</p></div></div></div><div class="top"><p class="src"><a id="v:createDirectoryIfMissingVerbose" class="def">createDirectoryIfMissingVerbose</a> <a href="#v:createDirectoryIfMissingVerbose" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc"><p>Create its parents too?</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Same as <code>createDirectoryIfMissing</code> but logs at higher verbosity levels.</p></div></div><div class="top"><p class="src"><a id="v:copyFileVerbose" class="def">copyFileVerbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:copyFileVerbose" class="selflink">#</a></p><div class="doc"><p>Copies a file without copying file permissions. The target file is created+ with default permissions. Any existing target file is replaced.</p><p>At higher verbosity levels it logs an info message.</p></div></div><div class="top"><p class="src"><a id="v:copyDirectoryRecursiveVerbose" class="def">copyDirectoryRecursiveVerbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:copyDirectoryRecursiveVerbose" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: You probably want installDirectoryContents instead</p></div></div></div><div class="top"><p class="src"><a id="v:copyFiles" class="def">copyFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:copyFiles" class="selflink">#</a></p><div class="doc"><p>Copies a bunch of files to a target directory, preserving the directory+ structure in the target location. The target directories are created if they+ do not exist.</p><p>The files are identified by a pair of base directory and a path relative to+ that base. It is only the relative part that is preserved in the+ destination.</p><p>For example:</p><pre>copyFiles normal "dist/src"+ [("", "src/Foo.hs"), ("dist/build/", "src/Bar.hs")]</pre><p>This would copy "src/Foo.hs" to "dist/src/src/Foo.hs" and+ copy "dist/build/src/Bar.hs" to "dist/src/src/Bar.hs".</p><p>This operation is not atomic. Any IO failure during the copy (including any+ missing source files) leaves the target in an unknown state so it is best to+ use it with a freshly created directory so that it can be simply deleted if+ anything goes wrong.</p></div></div><div class="top"><p class="src"><a id="v:copyFileTo" class="def">copyFileTo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:copyFileTo" class="selflink">#</a></p><div class="doc"><p>Given a relative path to a file, copy it to the given directory, preserving+ the relative path and creating the parent directories if needed.</p></div></div><h1 id="g:5">installing files</h1><div class="top"><p class="src"><a id="v:installOrdinaryFile" class="def">installOrdinaryFile</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installOrdinaryFile" class="selflink">#</a></p><div class="doc"><p>Install an ordinary file. This is like a file copy but the permissions+ are set appropriately for an installed file. On Unix it is "-rw-r--r--"+ while on Windows it uses the default permissions for the target directory.</p></div></div><div class="top"><p class="src"><a id="v:installExecutableFile" class="def">installExecutableFile</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installExecutableFile" class="selflink">#</a></p><div class="doc"><p>Install an executable file. This is like a file copy but the permissions+ are set appropriately for an installed file. On Unix it is "-rwxr-xr-x"+ while on Windows it uses the default permissions for the target directory.</p></div></div><div class="top"><p class="src"><a id="v:installMaybeExecutableFile" class="def">installMaybeExecutableFile</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installMaybeExecutableFile" class="selflink">#</a></p><div class="doc"><p>Install a file that may or not be executable, preserving permissions.</p></div></div><div class="top"><p class="src"><a id="v:installOrdinaryFiles" class="def">installOrdinaryFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installOrdinaryFiles" class="selflink">#</a></p><div class="doc"><p>This is like <code><a href="Distribution-Simple-Utils.html#v:copyFiles">copyFiles</a></code> but uses <code><a href="Distribution-Simple-Utils.html#v:installOrdinaryFile">installOrdinaryFile</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:installExecutableFiles" class="def">installExecutableFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installExecutableFiles" class="selflink">#</a></p><div class="doc"><p>This is like <code><a href="Distribution-Simple-Utils.html#v:copyFiles">copyFiles</a></code> but uses <code><a href="Distribution-Simple-Utils.html#v:installExecutableFile">installExecutableFile</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:installMaybeExecutableFiles" class="def">installMaybeExecutableFiles</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installMaybeExecutableFiles" class="selflink">#</a></p><div class="doc"><p>This is like <code><a href="Distribution-Simple-Utils.html#v:copyFiles">copyFiles</a></code> but uses <code><a href="Distribution-Simple-Utils.html#v:installMaybeExecutableFile">installMaybeExecutableFile</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:installDirectoryContents" class="def">installDirectoryContents</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:installDirectoryContents" class="selflink">#</a></p><div class="doc"><p>This installs all the files in a directory to a target location,+ preserving the directory layout. All the files are assumed to be ordinary+ rather than executable files.</p></div></div><div class="top"><p class="src"><a id="v:copyDirectoryRecursive" class="def">copyDirectoryRecursive</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:copyDirectoryRecursive" class="selflink">#</a></p><div class="doc"><p>Recursively copy the contents of one directory to another path.</p></div></div><h1 id="g:6">File permissions</h1><div class="top"><p class="src"><a id="v:doesExecutableExist" class="def">doesExecutableExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:doesExecutableExist" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/directory-1.3.0.2/System-Directory.html#v:doesFileExist">doesFileExist</a></code>, but also checks that the file is executable.</p></div></div><div class="top"><p class="src"><a id="v:setFileOrdinary" class="def">setFileOrdinary</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:setFileOrdinary" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:setFileExecutable" class="def">setFileExecutable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:setFileExecutable" class="selflink">#</a></p></div><h1 id="g:7">file names</h1><div class="top"><p class="src"><a id="v:currentDir" class="def">currentDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:currentDir" class="selflink">#</a></p><div class="doc"><p>The path name that represents the current directory.+ In Unix, it's <code>"."</code>, but this is system-specific.+ (E.g. AmigaOS uses the empty string <code>""</code> for the current directory.)</p></div></div><div class="top"><p class="src"><a id="v:shortRelativePath" class="def">shortRelativePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:shortRelativePath" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:dropExeExtension" class="def">dropExeExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:dropExeExtension" class="selflink">#</a></p><div class="doc"><p>Drop the extension if it's one of <code><a href="Distribution-Simple-Utils.html#v:exeExtensions">exeExtensions</a></code>, or return the path+ unchanged.</p></div></div><div class="top"><p class="src"><a id="v:exeExtensions" class="def">exeExtensions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:exeExtensions" class="selflink">#</a></p><div class="doc"><p>List of possible executable file extensions on the current platform.</p></div></div><h1 id="g:8">finding files</h1><div class="top"><p class="src"><a id="v:findFile" class="def">findFile</a> <a href="#v:findFile" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</td><td class="doc"><p>search locations</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>File Name</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Find a file by looking in a search path. The file path must match exactly.</p></div></div><div class="top"><p class="src"><a id="v:findFirstFile" class="def">findFirstFile</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) -> [a] -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) <a href="#v:findFirstFile" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findFileWithExtension" class="def">findFileWithExtension</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) <a href="#v:findFileWithExtension" class="selflink">#</a></p><div class="doc"><p>Find a file by looking in a search path with one of a list of possible+ file extensions. The file base name should be given and it will be tried+ with each of the extensions in each element of the search path.</p></div></div><div class="top"><p class="src"><a id="v:findFileWithExtension-39-" class="def">findFileWithExtension'</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)) <a href="#v:findFileWithExtension-39-" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Utils.html#v:findFileWithExtension">findFileWithExtension</a></code> but returns which element of the search path+ the file was found in, and the file path relative to that base directory.</p></div></div><div class="top"><p class="src"><a id="v:findAllFilesWithExtension" class="def">findAllFilesWithExtension</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] <a href="#v:findAllFilesWithExtension" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findModuleFile" class="def">findModuleFile</a> <a href="#v:findModuleFile" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</td><td class="doc"><p>build prefix (location of objects)</p></td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc"><p>search suffixes</p></td></tr><tr><td class="src">-> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></td><td class="doc"><p>module</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Find the file corresponding to a Haskell module name.</p><p>This is similar to <code><a href="Distribution-Simple-Utils.html#v:findFileWithExtension-39-">findFileWithExtension'</a></code> but specialised to a module+ name. The function fails if the file corresponding to the module is missing.</p></div></div><div class="top"><p class="src"><a id="v:findModuleFiles" class="def">findModuleFiles</a> <a href="#v:findModuleFiles" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</td><td class="doc"><p>build prefix (location of objects)</p></td></tr><tr><td class="src">-> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc"><p>search suffixes</p></td></tr><tr><td class="src">-> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</td><td class="doc"><p>modules</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)]</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Finds the files corresponding to a list of Haskell module names.</p><p>As <code><a href="Distribution-Simple-Utils.html#v:findModuleFile">findModuleFile</a></code> but for a list of module names.</p></div></div><div class="top"><p class="src"><a id="v:getDirectoryContentsRecursive" class="def">getDirectoryContentsRecursive</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] <a href="#v:getDirectoryContentsRecursive" class="selflink">#</a></p><div class="doc"><p>List all the files in a directory and all subdirectories.</p><p>The order places files in sub-directories after all the files in their+ parent directories. The list is generated lazily so is not well defined if+ the source directory structure changes before the list is used.</p></div></div><h1 id="g:9">environment variables</h1><div class="top"><p class="src"><a id="v:isInSearchPath" class="def">isInSearchPath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isInSearchPath" class="selflink">#</a></p><div class="doc"><p>Is this directory in the system search path?</p></div></div><div class="top"><p class="src"><a id="v:addLibraryPath" class="def">addLibraryPath</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] -> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] <a href="#v:addLibraryPath" class="selflink">#</a></p></div><h1 id="g:10">simple file globbing</h1><div class="top"><p class="src"><a id="v:matchFileGlob" class="def">matchFileGlob</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] <a href="#v:matchFileGlob" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:matchDirFileGlob" class="def">matchDirFileGlob</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>] <a href="#v:matchDirFileGlob" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:parseFileGlob" class="def">parseFileGlob</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-Utils.html#t:FileGlob">FileGlob</a> <a href="#v:parseFileGlob" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:FileGlob" class="def">FileGlob</a> <a href="#t:FileGlob" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoGlob" class="def">NoGlob</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>No glob at all, just an ordinary file</p></td></tr><tr><td class="src"><a id="v:FileGlob" class="def">FileGlob</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>dir prefix and extension, like <code>"foo/bar/*.baz"</code> corresponds to+ <code>FileGlob "foo/bar" ".baz"</code></p></td></tr></table></div></div><h1 id="g:11">modification time</h1><div class="top"><p class="src"><a id="v:moreRecentFile" class="def">moreRecentFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:moreRecentFile" class="selflink">#</a></p><div class="doc"><p>Compare the modification times of two files to see if the first is newer+ than the second. The first file must exist but the second need not.+ The expected use case is when the second file is generated using the first.+ In this use case, if the result is True then the second file is out of date.</p></div></div><div class="top"><p class="src"><a id="v:existsAndIsMoreRecentThan" class="def">existsAndIsMoreRecentThan</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:existsAndIsMoreRecentThan" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Utils.html#v:moreRecentFile">moreRecentFile</a></code>, but also checks that the first file exists.</p></div></div><h1 id="g:12">temp files and dirs</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TempFileOptions" class="def">TempFileOptions</a> <a href="#t:TempFileOptions" class="selflink">#</a></p><div class="doc"><p>Advanced options for <code><a href="Distribution-Simple-Utils.html#v:withTempFile">withTempFile</a></code> and <code><a href="Distribution-Simple-Utils.html#v:withTempDirectory">withTempDirectory</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TempFileOptions" class="def">TempFileOptions</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:optKeepTempFiles" class="def">optKeepTempFiles</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Keep temporary files?</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:defaultTempFileOptions" class="def">defaultTempFileOptions</a> :: <a href="Distribution-Simple-Utils.html#t:TempFileOptions">TempFileOptions</a> <a href="#v:defaultTempFileOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:withTempFile" class="def">withTempFile</a> <a href="#v:withTempFile" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Temp dir to create the file in</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>File name template. See <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#v:openTempFile">openTempFile</a></code>.</p></td></tr><tr><td class="src">-> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Use a temporary filename that doesn't already exist.</p></div></div><div class="top"><p class="src"><a id="v:withTempFileEx" class="def">withTempFileEx</a> <a href="#v:withTempFileEx" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Simple-Utils.html#t:TempFileOptions">TempFileOptions</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Temp dir to create the file in</p></td></tr><tr><td class="src">-> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>File name template. See <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#v:openTempFile">openTempFile</a></code>.</p></td></tr><tr><td class="src">-> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-IO-Handle.html#t:Handle">Handle</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>A version of <code><a href="Distribution-Simple-Utils.html#v:withTempFile">withTempFile</a></code> that additionally takes a <code><a href="Distribution-Simple-Utils.html#t:TempFileOptions">TempFileOptions</a></code>+ argument.</p></div></div><div class="top"><p class="src"><a id="v:withTempDirectory" class="def">withTempDirectory</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:withTempDirectory" class="selflink">#</a></p><div class="doc"><p>Create and use a temporary directory.</p><p>Creates a new temporary directory inside the given directory, making use+ of the template. The temp directory is deleted after use. For example:</p><pre>withTempDirectory verbosity "src" "sdist." $ \tmpDir -> do ...</pre><p>The <code>tmpDir</code> will be a new subdirectory of the given directory, e.g.+ <code>src/sdist.342</code>.</p></div></div><div class="top"><p class="src"><a id="v:withTempDirectoryEx" class="def">withTempDirectoryEx</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Utils.html#t:TempFileOptions">TempFileOptions</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:withTempDirectoryEx" class="selflink">#</a></p><div class="doc"><p>A version of <code><a href="Distribution-Simple-Utils.html#v:withTempDirectory">withTempDirectory</a></code> that additionally takes a+ <code><a href="Distribution-Simple-Utils.html#t:TempFileOptions">TempFileOptions</a></code> argument.</p></div></div><h1 id="g:13">.cabal and .buildinfo files</h1><div class="top"><p class="src"><a id="v:defaultPackageDesc" class="def">defaultPackageDesc</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:defaultPackageDesc" class="selflink">#</a></p><div class="doc"><p>Package description file (<em>pkgname</em><code>.cabal</code>)</p></div></div><div class="top"><p class="src"><a id="v:findPackageDesc" class="def">findPackageDesc</a> <a href="#v:findPackageDesc" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Where to look</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</td><td class="doc"><p><a href="pkgname">pkgname</a>.cabal</p></td></tr></table></div><div class="doc"><p>Find a package description file in the given directory. Looks for+ <code>.cabal</code> files.</p></div></div><div class="top"><p class="src"><a id="v:tryFindPackageDesc" class="def">tryFindPackageDesc</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> <a href="#v:tryFindPackageDesc" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Utils.html#v:findPackageDesc">findPackageDesc</a></code>, but calls <code><a href="Distribution-Simple-Utils.html#v:die">die</a></code> in case of error.</p></div></div><div class="top"><p class="src"><a id="v:defaultHookedPackageDesc" class="def">defaultHookedPackageDesc</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) <a href="#v:defaultHookedPackageDesc" class="selflink">#</a></p><div class="doc"><p>Optional auxiliary package information file (<em>pkgname</em><code>.buildinfo</code>)</p></div></div><div class="top"><p class="src"><a id="v:findHookedPackageDesc" class="def">findHookedPackageDesc</a> <a href="#v:findHookedPackageDesc" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Directory to search</p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</td><td class="doc"><p><em>dir</em><code>/</code><em>pkgname</em><code>.buildinfo</code>, if present</p></td></tr></table></div><div class="doc"><p>Find auxiliary package information in the given directory.+ Looks for <code>.buildinfo</code> files.</p></div></div><h1 id="g:14">reading and writing files safely</h1><div class="top"><p class="src"><a id="v:withFileContents" class="def">withFileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a <a href="#v:withFileContents" class="selflink">#</a></p><div class="doc"><p>Gets the contents of a file, but guarantee that it gets closed.</p><p>The file is read lazily but if it is not fully consumed by the action then+ the remaining input is truncated and the file is closed.</p></div></div><div class="top"><p class="src"><a id="v:writeFileAtomic" class="def">writeFileAtomic</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:writeFileAtomic" class="selflink">#</a></p><div class="doc"><p>Writes a file atomically.</p><p>The file is either written successfully or an IO exception is raised and+ the original file is left unchanged.</p><p>On windows it is not possible to delete a file that is open by a process.+ This case will give an IO exception but the atomic property is not affected.</p></div></div><div class="top"><p class="src"><a id="v:rewriteFile" class="def">rewriteFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:rewriteFile" class="selflink">#</a></p><div class="doc"><p>See <code><a href="Distribution-Simple-Utils.html#v:rewriteFileEx">rewriteFileEx</a></code></p><p>This function is provided for backwards-compatibility</p></div></div><div class="top"><p class="src"><a id="v:rewriteFileEx" class="def">rewriteFileEx</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:rewriteFileEx" class="selflink">#</a></p><div class="doc"><p>Write a file but only if it would have new content. If we would be writing+ the same as the existing content then leave the file as is so that we do not+ update the file's modification time.</p><p>NB: the file is assumed to be ASCII-encoded.</p></div></div><h1 id="g:15">Unicode</h1><div class="top"><p class="src"><a id="v:fromUTF8" class="def">fromUTF8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:fromUTF8" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:fromUTF8BS" class="def">fromUTF8BS</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:fromUTF8BS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:fromUTF8LBS" class="def">fromUTF8LBS</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:fromUTF8LBS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:toUTF8" class="def">toUTF8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:toUTF8" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:readUTF8File" class="def">readUTF8File</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:readUTF8File" class="selflink">#</a></p><div class="doc"><p>Reads a UTF8 encoded text file as a Unicode String</p><p>Reads lazily using ordinary <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#v:readFile">readFile</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:withUTF8FileContents" class="def">withUTF8FileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:withUTF8FileContents" class="selflink">#</a></p><div class="doc"><p>Reads a UTF8 encoded text file as a Unicode String</p><p>Same behaviour as <code><a href="Distribution-Simple-Utils.html#v:withFileContents">withFileContents</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:writeUTF8File" class="def">writeUTF8File</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:writeUTF8File" class="selflink">#</a></p><div class="doc"><p>Writes a Unicode String as a UTF8 encoded text file.</p><p>Uses <code><a href="Distribution-Simple-Utils.html#v:writeFileAtomic">writeFileAtomic</a></code>, so provides the same guarantees.</p></div></div><div class="top"><p class="src"><a id="v:normaliseLineEndings" class="def">normaliseLineEndings</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:normaliseLineEndings" class="selflink">#</a></p><div class="doc"><p>Fix different systems silly line ending conventions</p></div></div><h1 id="g:16">BOM</h1><div class="top"><p class="src"><a id="v:startsWithBOM" class="def">startsWithBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:startsWithBOM" class="selflink">#</a></p><div class="doc"><p>Whether BOM is at the beginning of the input</p></div></div><div class="top"><p class="src"><a id="v:fileHasBOM" class="def">fileHasBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:fileHasBOM" class="selflink">#</a></p><div class="doc"><p>Check whether a file has Unicode byte order mark (BOM).</p></div></div><div class="top"><p class="src"><a id="v:ignoreBOM" class="def">ignoreBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:ignoreBOM" class="selflink">#</a></p><div class="doc"><p>Ignore a Unicode byte order mark (BOM) at the beginning of the input</p></div></div><h1 id="g:17">generic utils</h1><div class="top"><p class="src"><a id="v:dropWhileEndLE" class="def">dropWhileEndLE</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> [a] <a href="#v:dropWhileEndLE" class="selflink">#</a></p><div class="doc"><p><code>dropWhileEndLE p</code> is equivalent to <code>reverse . dropWhile p . reverse</code>, but+ quite a bit faster. The difference between "Data.List.dropWhileEnd" and this+ version is that the one in <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List.html">Data.List</a> is strict in elements, but spine-lazy,+ while this one is spine-strict but lazy in elements. That's what <code>LE</code> stands+ for - "lazy in elements".</p><p>Example:</p><pre>> tail $ Data.List.dropWhileEnd (<3) [undefined, 5, 4, 3, 2, 1]+*** Exception: Prelude.undefined+> tail $ dropWhileEndLE (<3) [undefined, 5, 4, 3, 2, 1]+[5,4,3]+> take 3 $ Data.List.dropWhileEnd (<3) [5, 4, 3, 2, 1, undefined]+[5,4,3]+> take 3 $ dropWhileEndLE (<3) [5, 4, 3, 2, 1, undefined]+*** Exception: Prelude.undefined+</pre></div></div><div class="top"><p class="src"><a id="v:takeWhileEndLE" class="def">takeWhileEndLE</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> [a] <a href="#v:takeWhileEndLE" class="selflink">#</a></p><div class="doc"><p><code>takeWhileEndLE p</code> is equivalent to <code>reverse . takeWhile p . reverse</code>, but+ is usually faster (as well as being easier to read).</p></div></div><div class="top"><p class="src"><a id="v:equating" class="def">equating</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => (b -> a) -> b -> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:equating" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:comparing" class="def">comparing</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => (b -> a) -> b -> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:comparing" class="selflink">#</a></p><div class="doc"><pre>comparing p x y = compare (p x) (p y)</pre><p>Useful combinator for use in conjunction with the <code>xxxBy</code> family+ of functions from <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List.html">Data.List</a>, for example:</p><pre> ... sortBy (comparing fst) ...</pre></div></div><div class="top"><p class="src"><a id="v:isInfixOf" class="def">isInfixOf</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => [a] -> [a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isInfixOf" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-Simple-Utils.html#v:isInfixOf">isInfixOf</a></code> function takes two lists and returns <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a></code>+ iff the first list is contained, wholly and intact,+ anywhere within the second.</p><p>Example:</p><pre>isInfixOf "Haskell" "I really like Haskell." == True+isInfixOf "Ial" "I really like Haskell." == False</pre></div></div><div class="top"><p class="src"><a id="v:intercalate" class="def">intercalate</a> :: [a] -> [[a]] -> [a] <a href="#v:intercalate" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-Simple-Utils.html#v:intercalate">intercalate</a></code> <code>xs xss</code> is equivalent to <code>(<code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-OldList.html#v:concat">concat</a></code> (<code><a href="Distribution-Compat-Prelude-Internal.html#v:intersperse">intersperse</a></code> xs xss))</code>.+ It inserts the list <code>xs</code> in between the lists in <code>xss</code> and concatenates the+ result.</p></div></div><div class="top"><p class="src"><a id="v:lowercase" class="def">lowercase</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:lowercase" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:listUnion" class="def">listUnion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] -> [a] <a href="#v:listUnion" class="selflink">#</a></p><div class="doc"><p>Like "Data.List.union", but has <code>O(n log n)</code> complexity instead of+ <code>O(n^2)</code>.</p></div></div><div class="top"><p class="src"><a id="v:listUnionRight" class="def">listUnionRight</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] -> [a] <a href="#v:listUnionRight" class="selflink">#</a></p><div class="doc"><p>A right-biased version of <code><a href="Distribution-Simple-Utils.html#v:listUnion">listUnion</a></code>.</p><p>Example:</p><pre>> listUnion [1,2,3,4,3] [2,1,1]+[1,2,3,4,3]+> listUnionRight [1,2,3,4,3] [2,1,1]+[4,3,2,1,1]+</pre></div></div><div class="top"><p class="src"><a id="v:ordNub" class="def">ordNub</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] <a href="#v:ordNub" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List.html#v:nub">nub</a></code>, but has <code>O(n log n)</code> complexity instead of+ <code>O(n^2)</code>. Code for <code><a href="Distribution-Simple-Utils.html#v:ordNub">ordNub</a></code> and <code><a href="Distribution-Simple-Utils.html#v:listUnion">listUnion</a></code> taken from Niklas Hambüchen's+ <a href="http://github.com/nh2/haskell-ordnub">ordnub</a> package.</p></div></div><div class="top"><p class="src"><a id="v:ordNubBy" class="def">ordNubBy</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> b => (a -> b) -> [a] -> [a] <a href="#v:ordNubBy" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple-Utils.html#v:ordNub">ordNub</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List.html#v:nubBy">nubBy</a></code>. Selects a key for each element and+ takes the nub based on that key.</p></div></div><div class="top"><p class="src"><a id="v:ordNubRight" class="def">ordNubRight</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] <a href="#v:ordNubRight" class="selflink">#</a></p><div class="doc"><p>A right-biased version of <code><a href="Distribution-Simple-Utils.html#v:ordNub">ordNub</a></code>.</p><p>Example:</p><pre>> ordNub [1,2,1]+[1,2]+> ordNubRight [1,2,1]+[2,1]+</pre></div></div><div class="top"><p class="src"><a id="v:safeTail" class="def">safeTail</a> :: [a] -> [a] <a href="#v:safeTail" class="selflink">#</a></p><div class="doc"><p>A total variant of <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-OldList.html#v:tail">tail</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:unintersperse" class="def">unintersperse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:unintersperse" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:wrapText" class="def">wrapText</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:wrapText" class="selflink">#</a></p><div class="doc"><p>Wraps text to the default line width. Existing newlines are preserved.</p></div></div><div class="top"><p class="src"><a id="v:wrapLine" class="def">wrapLine</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [[<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]] <a href="#v:wrapLine" class="selflink">#</a></p><div class="doc"><p>Wraps a list of words to a list of lines of words of a particular width.</p></div></div><h1 id="g:18">FilePath stuff</h1><div class="top"><p class="src"><a id="v:isAbsoluteOnAnyPlatform" class="def">isAbsoluteOnAnyPlatform</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isAbsoluteOnAnyPlatform" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-Simple-Utils.html#v:isAbsoluteOnAnyPlatform">isAbsoluteOnAnyPlatform</a></code> and <code><a href="Distribution-Simple-Utils.html#v:isRelativeOnAnyPlatform">isRelativeOnAnyPlatform</a></code> are like+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/filepath-1.4.1.2/System-FilePath.html#v:isAbsolute">isAbsolute</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/filepath-1.4.1.2/System-FilePath.html#v:isRelative">isRelative</a></code> but have+ platform independent heuristics.+ The System.FilePath exists in two versions, Windows and Posix. The two+ versions don't agree on what is a relative path and we don't know if we're+ given Windows or Posix paths.+ This results in false positives when running on Posix and inspecting+ Windows paths, like the hackage server does.+ System.FilePath.Posix.isAbsolute "C:\hello" == False+ System.FilePath.Windows.isAbsolute "/hello" == False+ This means that we would treat paths that start with "/" to be absolute.+ On Posix they are indeed absolute, while on Windows they are not.</p><p>The portable versions should be used when we might deal with paths that+ are from another OS than the host OS. For example, the Hackage Server+ deals with both Windows and Posix paths while performing the+ PackageDescription checks. In contrast, when we run 'cabal configure' we+ do expect the paths to be correct for our OS and we should not have to use+ the platform independent heuristics.</p></div></div><div class="top"><p class="src"><a id="v:isRelativeOnAnyPlatform" class="def">isRelativeOnAnyPlatform</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isRelativeOnAnyPlatform" class="selflink">#</a></p><div class="doc"><pre>isRelativeOnAnyPlatform = not . <code><a href="Distribution-Simple-Utils.html#v:isAbsoluteOnAnyPlatform">isAbsoluteOnAnyPlatform</a></code></pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Simple.html view
@@ -0,0 +1,29 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Simple</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Simple interface</a></li><li><a href="#g:2">Customization</a><ul><li><a href="#g:3">Standard sets of hooks</a></li><li><a href="#g:4">Utils</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is the command line front end to the Simple build system. When given+ the parsed command-line args and package information, is able to perform+ basic commands like configure, build, install, register, etc.</p><p>This module exports the main functions that Setup.hs scripts use. It+ re-exports the <code><a href="Distribution-Simple.html#t:UserHooks">UserHooks</a></code> type, the standard entry points like+ <code><a href="Distribution-Simple.html#v:defaultMain">defaultMain</a></code> and <code><a href="Distribution-Simple.html#v:defaultMainWithHooks">defaultMainWithHooks</a></code> and the predefined sets of+ <code><a href="Distribution-Simple.html#t:UserHooks">UserHooks</a></code> that custom <code>Setup.hs</code> scripts can extend to add their own+ behaviour.</p><p>This module isn't called "Simple" because it's simple. Far from+ it. It's called "Simple" because it does complicated things to+ simple software.</p><p>The original idea was that there could be different build systems that all+ presented the same compatible command line interfaces. There is still a+ <a href="Distribution-Make.html">Distribution.Make</a> system but in practice no packages use it.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short">module <a href="Distribution-Package.html">Distribution.Package</a></li><li class="src short">module <a href="Distribution-Version.html">Distribution.Version</a></li><li class="src short">module <a href="Distribution-License.html">Distribution.License</a></li><li class="src short">module <a href="Distribution-Simple-Compiler.html">Distribution.Simple.Compiler</a></li><li class="src short">module <a href="Language-Haskell-Extension.html">Language.Haskell.Extension</a></li><li class="src short"><a href="#v:defaultMain">defaultMain</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:defaultMainNoRead">defaultMainNoRead</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:defaultMainArgs">defaultMainArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><span class="keyword">data</span> <a href="#t:UserHooks">UserHooks</a> = <a href="#v:UserHooks">UserHooks</a> {<ul class="subs"><li><a href="#v:runTests">runTests</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:readDesc">readDesc</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>)</li><li><a href="#v:hookedPreProcessors">hookedPreProcessors</a> :: [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</li><li><a href="#v:hookedPrograms">hookedPrograms</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>]</li><li><a href="#v:preConf">preConf</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:confHook">confHook</a> :: (<a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>, <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a>) -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></li><li><a href="#v:postConf">postConf</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preBuild">preBuild</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:buildHook">buildHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postBuild">postBuild</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preRepl">preRepl</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:replHook">replHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postRepl">postRepl</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preClean">preClean</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:cleanHook">cleanHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> () -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postClean">postClean</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> () -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preCopy">preCopy</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:copyHook">copyHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postCopy">postCopy</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preInst">preInst</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:instHook">instHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postInst">postInst</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preSDist">preSDist</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:sDistHook">sDistHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postSDist">postSDist</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preReg">preReg</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:regHook">regHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postReg">postReg</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preUnreg">preUnreg</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:unregHook">unregHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postUnreg">postUnreg</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preHscolour">preHscolour</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:hscolourHook">hscolourHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postHscolour">postHscolour</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preDoctest">preDoctest</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:doctestHook">doctestHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postDoctest">postDoctest</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preHaddock">preHaddock</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:haddockHook">haddockHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postHaddock">postHaddock</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preTest">preTest</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:testHook">testHook</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postTest">postTest</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:preBench">preBench</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li><li><a href="#v:benchHook">benchHook</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li><a href="#v:postBench">postBench</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:Args">Args</a> = [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:defaultMainWithHooks">defaultMainWithHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:defaultMainWithHooksArgs">defaultMainWithHooksArgs</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:defaultMainWithHooksNoRead">defaultMainWithHooksNoRead</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:simpleUserHooks">simpleUserHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a></li><li class="src short"><a href="#v:autoconfUserHooks">autoconfUserHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a></li><li class="src short"><a href="#v:defaultUserHooks">defaultUserHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a></li><li class="src short"><a href="#v:emptyUserHooks">emptyUserHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a></li><li class="src short"><a href="#v:defaultHookedPackageDesc">defaultHookedPackageDesc</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src">module <a href="Distribution-Package.html">Distribution.Package</a></p></div><div class="top"><p class="src">module <a href="Distribution-Version.html">Distribution.Version</a></p></div><div class="top"><p class="src">module <a href="Distribution-License.html">Distribution.License</a></p></div><div class="top"><p class="src">module <a href="Distribution-Simple-Compiler.html">Distribution.Simple.Compiler</a></p></div><div class="top"><p class="src">module <a href="Language-Haskell-Extension.html">Language.Haskell.Extension</a></p></div><h1 id="g:1">Simple interface</h1><div class="top"><p class="src"><a id="v:defaultMain" class="def">defaultMain</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:defaultMain" class="selflink">#</a></p><div class="doc"><p>A simple implementation of <code>main</code> for a Cabal setup script.+ It reads the package description file using IO, and performs the+ action specified on the command line.</p></div></div><div class="top"><p class="src"><a id="v:defaultMainNoRead" class="def">defaultMainNoRead</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:defaultMainNoRead" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Simple.html#v:defaultMain">defaultMain</a></code>, but accepts the package description as input+ rather than using IO to read it.</p></div></div><div class="top"><p class="src"><a id="v:defaultMainArgs" class="def">defaultMainArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:defaultMainArgs" class="selflink">#</a></p><div class="doc"><p>A version of <code><a href="Distribution-Simple.html#v:defaultMain">defaultMain</a></code> that is passed the command line+ arguments, rather than getting them from the environment.</p></div></div><h1 id="g:2">Customization</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:UserHooks" class="def">UserHooks</a> <a href="#t:UserHooks" class="selflink">#</a></p><div class="doc"><p>Hooks allow authors to add specific functionality before and after a+ command is run, and also to specify additional preprocessors.</p><ul><li>WARNING: The hooks interface is under rather constant flux as we try to+ understand users needs. Setup files that depend on this interface may+ break in future releases.</li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:UserHooks" class="def">UserHooks</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:runTests" class="def">runTests</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><div class="warning"><p>Deprecated: Please use the new testing interface instead!</p></div><p>Used for <code>./setup test</code></p></div></li><li><dfn class="src"><a id="v:readDesc" class="def">readDesc</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>)</dfn><div class="doc"><p>Read the description file</p></div></li><li><dfn class="src"><a id="v:hookedPreProcessors" class="def">hookedPreProcessors</a> :: [<a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">PPSuffixHandler</a>]</dfn><div class="doc"><p>Custom preprocessors in addition to and overriding <code><a href="Distribution-Simple-PreProcess.html#v:knownSuffixHandlers">knownSuffixHandlers</a></code>.</p></div></li><li><dfn class="src"><a id="v:hookedPrograms" class="def">hookedPrograms</a> :: [<a href="Distribution-Simple-Program-Types.html#t:Program">Program</a>]</dfn><div class="doc"><p>These programs are detected at configure time. Arguments for them are+ added to the configure command.</p></div></li><li><dfn class="src"><a id="v:preConf" class="def">preConf</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before configure command</p></div></li><li><dfn class="src"><a id="v:confHook" class="def">confHook</a> :: (<a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>, <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a>) -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></dfn><div class="doc"><p>Over-ride this hook to get different behavior during configure.</p></div></li><li><dfn class="src"><a id="v:postConf" class="def">postConf</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after configure command</p></div></li><li><dfn class="src"><a id="v:preBuild" class="def">preBuild</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before build command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:buildHook" class="def">buildHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during build.</p></div></li><li><dfn class="src"><a id="v:postBuild" class="def">postBuild</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BuildFlags">BuildFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after build command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preRepl" class="def">preRepl</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before repl command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:replHook" class="def">replHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during interpretation.</p></div></li><li><dfn class="src"><a id="v:postRepl" class="def">postRepl</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:ReplFlags">ReplFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after repl command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preClean" class="def">preClean</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before clean command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:cleanHook" class="def">cleanHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> () -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during clean.</p></div></li><li><dfn class="src"><a id="v:postClean" class="def">postClean</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CleanFlags">CleanFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> () -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after clean command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preCopy" class="def">preCopy</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before copy command</p></div></li><li><dfn class="src"><a id="v:copyHook" class="def">copyHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during copy.</p></div></li><li><dfn class="src"><a id="v:postCopy" class="def">postCopy</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:CopyFlags">CopyFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after copy command</p></div></li><li><dfn class="src"><a id="v:preInst" class="def">preInst</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before install command</p></div></li><li><dfn class="src"><a id="v:instHook" class="def">instHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during install.</p></div></li><li><dfn class="src"><a id="v:postInst" class="def">postInst</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:InstallFlags">InstallFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after install command. postInst should be run+ on the target, not on the build machine.</p></div></li><li><dfn class="src"><a id="v:preSDist" class="def">preSDist</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before sdist command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:sDistHook" class="def">sDistHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during sdist.</p></div></li><li><dfn class="src"><a id="v:postSDist" class="def">postSDist</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:SDistFlags">SDistFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after sdist command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preReg" class="def">preReg</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before register command</p></div></li><li><dfn class="src"><a id="v:regHook" class="def">regHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during registration.</p></div></li><li><dfn class="src"><a id="v:postReg" class="def">postReg</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after register command</p></div></li><li><dfn class="src"><a id="v:preUnreg" class="def">preUnreg</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before unregister command</p></div></li><li><dfn class="src"><a id="v:unregHook" class="def">unregHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during unregistration.</p></div></li><li><dfn class="src"><a id="v:postUnreg" class="def">postUnreg</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:RegisterFlags">RegisterFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after unregister command</p></div></li><li><dfn class="src"><a id="v:preHscolour" class="def">preHscolour</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before hscolour command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:hscolourHook" class="def">hscolourHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during hscolour.</p></div></li><li><dfn class="src"><a id="v:postHscolour" class="def">postHscolour</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HscolourFlags">HscolourFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after hscolour command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preDoctest" class="def">preDoctest</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before doctest command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:doctestHook" class="def">doctestHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during doctest.</p></div></li><li><dfn class="src"><a id="v:postDoctest" class="def">postDoctest</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:DoctestFlags">DoctestFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after doctest command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preHaddock" class="def">preHaddock</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before haddock command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:haddockHook" class="def">haddockHook</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during haddock.</p></div></li><li><dfn class="src"><a id="v:postHaddock" class="def">postHaddock</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:HaddockFlags">HaddockFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after haddock command. Second arg indicates verbosity level.</p></div></li><li><dfn class="src"><a id="v:preTest" class="def">preTest</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before test command.</p></div></li><li><dfn class="src"><a id="v:testHook" class="def">testHook</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during test.</p></div></li><li><dfn class="src"><a id="v:postTest" class="def">postTest</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:TestFlags">TestFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after test command.</p></div></li><li><dfn class="src"><a id="v:preBench" class="def">preBench</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></dfn><div class="doc"><p>Hook to run before bench command.</p></div></li><li><dfn class="src"><a id="v:benchHook" class="def">benchHook</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Over-ride this hook to get different behavior during bench.</p></div></li><li><dfn class="src"><a id="v:postBench" class="def">postBench</a> :: <a href="Distribution-Simple.html#t:Args">Args</a> -> <a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">BenchmarkFlags</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</dfn><div class="doc"><p>Hook to run after bench command.</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Args" class="def">Args</a> = [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#t:Args" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultMainWithHooks" class="def">defaultMainWithHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:defaultMainWithHooks" class="selflink">#</a></p><div class="doc"><p>A customizable version of <code><a href="Distribution-Simple.html#v:defaultMain">defaultMain</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:defaultMainWithHooksArgs" class="def">defaultMainWithHooksArgs</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:defaultMainWithHooksArgs" class="selflink">#</a></p><div class="doc"><p>A customizable version of <code><a href="Distribution-Simple.html#v:defaultMain">defaultMain</a></code> that also takes the command+ line arguments.</p></div></div><div class="top"><p class="src"><a id="v:defaultMainWithHooksNoRead" class="def">defaultMainWithHooksNoRead</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:defaultMainWithHooksNoRead" class="selflink">#</a></p><div class="doc"><p>A customizable version of <code><a href="Distribution-Simple.html#v:defaultMainNoRead">defaultMainNoRead</a></code>.</p></div></div><h2 id="g:3">Standard sets of hooks</h2><div class="top"><p class="src"><a id="v:simpleUserHooks" class="def">simpleUserHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> <a href="#v:simpleUserHooks" class="selflink">#</a></p><div class="doc"><p>Hooks that correspond to a plain instantiation of the+ "simple" build system</p></div></div><div class="top"><p class="src"><a id="v:autoconfUserHooks" class="def">autoconfUserHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> <a href="#v:autoconfUserHooks" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultUserHooks" class="def">defaultUserHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> <a href="#v:defaultUserHooks" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use simpleUserHooks or autoconfUserHooks, unless you need Cabal-1.2+ compatibility in which case you must stick with defaultUserHooks</p></div><p>Basic autoconf <code><a href="Distribution-Simple.html#t:UserHooks">UserHooks</a></code>:</p><ul><li><code><a href="Distribution-Simple.html#v:postConf">postConf</a></code> runs <code>./configure</code>, if present.</li><li>the pre-hooks <code><a href="Distribution-Simple.html#v:preBuild">preBuild</a></code>, <code><a href="Distribution-Simple.html#v:preClean">preClean</a></code>, <code><a href="Distribution-Simple.html#v:preCopy">preCopy</a></code>, <code><a href="Distribution-Simple.html#v:preInst">preInst</a></code>,+ <code><a href="Distribution-Simple.html#v:preReg">preReg</a></code> and <code><a href="Distribution-Simple.html#v:preUnreg">preUnreg</a></code> read additional build information from+ <em>package</em><code>.buildinfo</code>, if present.</li></ul><p>Thus <code>configure</code> can use local system information to generate+ <em>package</em><code>.buildinfo</code> and possibly other files.</p></div></div><div class="top"><p class="src"><a id="v:emptyUserHooks" class="def">emptyUserHooks</a> :: <a href="Distribution-Simple.html#t:UserHooks">UserHooks</a> <a href="#v:emptyUserHooks" class="selflink">#</a></p><div class="doc"><p>Empty <code><a href="Distribution-Simple.html#t:UserHooks">UserHooks</a></code> which do nothing.</p></div></div><h2 id="g:4">Utils</h2><div class="top"><p class="src"><a id="v:defaultHookedPackageDesc" class="def">defaultHookedPackageDesc</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>) <a href="#v:defaultHookedPackageDesc" class="selflink">#</a></p><div class="doc"><p>Optional auxiliary package information file (<em>pkgname</em><code>.buildinfo</code>)</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-System.html view
@@ -0,0 +1,33 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.System</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2007-2008</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.System</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Operating System</a></li><li><a href="#g:2">Machine Architecture</a></li><li><a href="#g:3">Platform is a pair of arch and OS</a></li><li><a href="#g:4">Internal</a></li><li><a href="#g:5">Classification</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Cabal often needs to do slightly different things on specific platforms. You+ probably know about the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-Info.html#v:os">os</a></code> however using that is very+ inconvenient because it is a string and different Haskell implementations+ do not agree on using the same strings for the same platforms! (In+ particular see the controversy over "windows" vs "mingw32"). So to make it+ more consistent and easy to use we have an <code><a href="Distribution-System.html#t:OS">OS</a></code> enumeration.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:OS">OS</a><ul class="subs"><li>= <a href="#v:Linux">Linux</a></li><li>| <a href="#v:Windows">Windows</a></li><li>| <a href="#v:OSX">OSX</a></li><li>| <a href="#v:FreeBSD">FreeBSD</a></li><li>| <a href="#v:OpenBSD">OpenBSD</a></li><li>| <a href="#v:NetBSD">NetBSD</a></li><li>| <a href="#v:DragonFly">DragonFly</a></li><li>| <a href="#v:Solaris">Solaris</a></li><li>| <a href="#v:AIX">AIX</a></li><li>| <a href="#v:HPUX">HPUX</a></li><li>| <a href="#v:IRIX">IRIX</a></li><li>| <a href="#v:HaLVM">HaLVM</a></li><li>| <a href="#v:Hurd">Hurd</a></li><li>| <a href="#v:IOS">IOS</a></li><li>| <a href="#v:Android">Android</a></li><li>| <a href="#v:Ghcjs">Ghcjs</a></li><li>| <a href="#v:OtherOS">OtherOS</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:buildOS">buildOS</a> :: <a href="Distribution-System.html#t:OS">OS</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Arch">Arch</a><ul class="subs"><li>= <a href="#v:I386">I386</a></li><li>| <a href="#v:X86_64">X86_64</a></li><li>| <a href="#v:PPC">PPC</a></li><li>| <a href="#v:PPC64">PPC64</a></li><li>| <a href="#v:Sparc">Sparc</a></li><li>| <a href="#v:Arm">Arm</a></li><li>| <a href="#v:Mips">Mips</a></li><li>| <a href="#v:SH">SH</a></li><li>| <a href="#v:IA64">IA64</a></li><li>| <a href="#v:S390">S390</a></li><li>| <a href="#v:Alpha">Alpha</a></li><li>| <a href="#v:Hppa">Hppa</a></li><li>| <a href="#v:Rs6000">Rs6000</a></li><li>| <a href="#v:M68k">M68k</a></li><li>| <a href="#v:Vax">Vax</a></li><li>| <a href="#v:JavaScript">JavaScript</a></li><li>| <a href="#v:OtherArch">OtherArch</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:buildArch">buildArch</a> :: <a href="Distribution-System.html#t:Arch">Arch</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Platform">Platform</a> = <a href="#v:Platform">Platform</a> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="Distribution-System.html#t:OS">OS</a></li><li class="src short"><a href="#v:buildPlatform">buildPlatform</a> :: <a href="Distribution-System.html#t:Platform">Platform</a></li><li class="src short"><a href="#v:platformFromTriple">platformFromTriple</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a></li><li class="src short"><a href="#v:knownOSs">knownOSs</a> :: [<a href="Distribution-System.html#t:OS">OS</a>]</li><li class="src short"><a href="#v:knownArches">knownArches</a> :: [<a href="Distribution-System.html#t:Arch">Arch</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ClassificationStrictness">ClassificationStrictness</a><ul class="subs"><li>= <a href="#v:Permissive">Permissive</a></li><li>| <a href="#v:Compat">Compat</a></li><li>| <a href="#v:Strict">Strict</a></li></ul></li><li class="src short"><a href="#v:classifyOS">classifyOS</a> :: <a href="Distribution-System.html#t:ClassificationStrictness">ClassificationStrictness</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-System.html#t:OS">OS</a></li><li class="src short"><a href="#v:classifyArch">classifyArch</a> :: <a href="Distribution-System.html#t:ClassificationStrictness">ClassificationStrictness</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-System.html#t:Arch">Arch</a></li></ul></div><div id="interface"><h1 id="g:1">Operating System</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:OS" class="def">OS</a> <a href="#t:OS" class="selflink">#</a></p><div class="doc"><p>These are the known OS names: Linux, Windows, OSX+ ,FreeBSD, OpenBSD, NetBSD, DragonFly+ ,Solaris, AIX, HPUX, IRIX+ ,HaLVM ,Hurd ,IOS, Android,Ghcjs</p><p>The following aliases can also be used:,+ * Windows aliases: mingw32, win32, cygwin32+ * OSX alias: darwin+ * Hurd alias: gnu+ * FreeBSD alias: kfreebsdgnu+ * Solaris alias: solaris2</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Linux" class="def">Linux</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Windows" class="def">Windows</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OSX" class="def">OSX</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:FreeBSD" class="def">FreeBSD</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OpenBSD" class="def">OpenBSD</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:NetBSD" class="def">NetBSD</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:DragonFly" class="def">DragonFly</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Solaris" class="def">Solaris</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:AIX" class="def">AIX</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:HPUX" class="def">HPUX</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:IRIX" class="def">IRIX</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:HaLVM" class="def">HaLVM</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Hurd" class="def">Hurd</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:IOS" class="def">IOS</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Android" class="def">Android</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Ghcjs" class="def">Ghcjs</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OtherOS" class="def">OtherOS</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:OS" class="caption collapser" onclick="toggleSection('i:OS')">Instances</p><div id="section.i:OS" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OS:Eq:1" class="instance expander" onclick="toggleSection('i:id:OS:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:OS" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OS:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OS:Data:2" class="instance expander" onclick="toggleSection('i:id:OS:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:OS" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OS:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-System.html#t:OS">OS</a> -> c <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-System.html#t:OS">OS</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-System.html#t:OS">OS</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-System.html#t:OS">OS</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-System.html#t:OS">OS</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-System.html#t:OS">OS</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-System.html#t:OS">OS</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-System.html#t:OS">OS</a> -> m <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-System.html#t:OS">OS</a> -> m <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-System.html#t:OS">OS</a> -> m <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OS:Ord:3" class="instance expander" onclick="toggleSection('i:id:OS:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:OS" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OS:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OS:Read:4" class="instance expander" onclick="toggleSection('i:id:OS:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:OS" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OS:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-System.html#t:OS">OS</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-System.html#t:OS">OS</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OS:Show:5" class="instance expander" onclick="toggleSection('i:id:OS:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:OS" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OS:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-System.html#t:OS">OS</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OS:Generic:6" class="instance expander" onclick="toggleSection('i:id:OS:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:OS" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OS:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:OS">OS</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:OS">OS</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:OS">OS</a> x -> <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OS:Binary:7" class="instance expander" onclick="toggleSection('i:id:OS:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:OS" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OS:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-System.html#t:OS">OS</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OS:Text:8" class="instance expander" onclick="toggleSection('i:id:OS:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:OS" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OS:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OS:Rep:9" class="instance expander" onclick="toggleSection('i:id:OS:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:OS" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OS:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:OS">OS</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "OS" "Distribution.System" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Linux" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Windows" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OSX" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FreeBSD" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OpenBSD" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NetBSD" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DragonFly" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Solaris" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AIX" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HPUX" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "IRIX" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HaLVM" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Hurd" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "IOS" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Android" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Ghcjs" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OtherOS" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:buildOS" class="def">buildOS</a> :: <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:buildOS" class="selflink">#</a></p></div><h1 id="g:2">Machine Architecture</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Arch" class="def">Arch</a> <a href="#t:Arch" class="selflink">#</a></p><div class="doc"><p>These are the known Arches: I386, X86_64, PPC, PPC64, Sparc+ ,Arm, Mips, SH, IA64, S39, Alpha, Hppa, Rs6000, M68k, Vax+ and JavaScript.</p><p>The following aliases can also be used:+ * PPC alias: powerpc+ * PPC64 alias : powerpc64+ * Sparc aliases: sparc64, sun4+ * Mips aliases: mipsel, mipseb+ * Arm aliases: armeb, armel</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:I386" class="def">I386</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:X86_64" class="def">X86_64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:PPC" class="def">PPC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:PPC64" class="def">PPC64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Sparc" class="def">Sparc</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Arm" class="def">Arm</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Mips" class="def">Mips</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:SH" class="def">SH</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:IA64" class="def">IA64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:S390" class="def">S390</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Alpha" class="def">Alpha</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Hppa" class="def">Hppa</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Rs6000" class="def">Rs6000</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:M68k" class="def">M68k</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Vax" class="def">Vax</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:JavaScript" class="def">JavaScript</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OtherArch" class="def">OtherArch</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Arch" class="caption collapser" onclick="toggleSection('i:Arch')">Instances</p><div id="section.i:Arch" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Arch:Eq:1" class="instance expander" onclick="toggleSection('i:id:Arch:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Arch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Arch:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Arch:Data:2" class="instance expander" onclick="toggleSection('i:id:Arch:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Arch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Arch:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-System.html#t:Arch">Arch</a> -> c <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-System.html#t:Arch">Arch</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-System.html#t:Arch">Arch</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-System.html#t:Arch">Arch</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-System.html#t:Arch">Arch</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-System.html#t:Arch">Arch</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-System.html#t:Arch">Arch</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-System.html#t:Arch">Arch</a> -> m <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-System.html#t:Arch">Arch</a> -> m <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-System.html#t:Arch">Arch</a> -> m <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Arch:Ord:3" class="instance expander" onclick="toggleSection('i:id:Arch:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Arch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Arch:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Arch:Read:4" class="instance expander" onclick="toggleSection('i:id:Arch:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Arch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Arch:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-System.html#t:Arch">Arch</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-System.html#t:Arch">Arch</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Arch:Show:5" class="instance expander" onclick="toggleSection('i:id:Arch:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Arch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Arch:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-System.html#t:Arch">Arch</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Arch:Generic:6" class="instance expander" onclick="toggleSection('i:id:Arch:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Arch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Arch:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Arch">Arch</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Arch">Arch</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Arch">Arch</a> x -> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Arch:Binary:7" class="instance expander" onclick="toggleSection('i:id:Arch:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Arch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Arch:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-System.html#t:Arch">Arch</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Arch:Text:8" class="instance expander" onclick="toggleSection('i:id:Arch:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Arch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Arch:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Arch:Rep:9" class="instance expander" onclick="toggleSection('i:id:Arch:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Arch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Arch:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Arch">Arch</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Arch" "Distribution.System" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "I386" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "X86_64" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PPC" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PPC64" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Sparc" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Arm" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Mips" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SH" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "IA64" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "S390" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Alpha" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Hppa" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Rs6000" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "M68k" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Vax" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "JavaScript" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OtherArch" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:buildArch" class="def">buildArch</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:buildArch" class="selflink">#</a></p></div><h1 id="g:3">Platform is a pair of arch and OS</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Platform" class="def">Platform</a> <a href="#t:Platform" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Platform" class="def">Platform</a> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="Distribution-System.html#t:OS">OS</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Platform" class="caption collapser" onclick="toggleSection('i:Platform')">Instances</p><div id="section.i:Platform" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Platform:Eq:1" class="instance expander" onclick="toggleSection('i:id:Platform:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Platform" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Platform:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Platform:Data:2" class="instance expander" onclick="toggleSection('i:id:Platform:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Platform" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Platform:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-System.html#t:Platform">Platform</a> -> c <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-System.html#t:Platform">Platform</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-System.html#t:Platform">Platform</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-System.html#t:Platform">Platform</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-System.html#t:Platform">Platform</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-System.html#t:Platform">Platform</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-System.html#t:Platform">Platform</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-System.html#t:Platform">Platform</a> -> m <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-System.html#t:Platform">Platform</a> -> m <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-System.html#t:Platform">Platform</a> -> m <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Platform:Ord:3" class="instance expander" onclick="toggleSection('i:id:Platform:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Platform" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Platform:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Platform:Read:4" class="instance expander" onclick="toggleSection('i:id:Platform:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Platform" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Platform:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-System.html#t:Platform">Platform</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-System.html#t:Platform">Platform</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Platform:Show:5" class="instance expander" onclick="toggleSection('i:id:Platform:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Platform" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Platform:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-System.html#t:Platform">Platform</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Platform:Generic:6" class="instance expander" onclick="toggleSection('i:id:Platform:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Platform" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Platform:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Platform">Platform</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Platform">Platform</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Platform">Platform</a> x -> <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Platform:Binary:7" class="instance expander" onclick="toggleSection('i:id:Platform:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Platform" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Platform:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-System.html#t:Platform">Platform</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Platform:Text:8" class="instance expander" onclick="toggleSection('i:id:Platform:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Platform" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Platform:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Platform:Rep:9" class="instance expander" onclick="toggleSection('i:id:Platform:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Platform" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Platform:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-System.html#t:Platform">Platform</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Platform" "Distribution.System" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Platform" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-System.html#t:Arch">Arch</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-System.html#t:OS">OS</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:buildPlatform" class="def">buildPlatform</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:buildPlatform" class="selflink">#</a></p><div class="doc"><p>The platform Cabal was compiled on. In most cases,+ <code>LocalBuildInfo.hostPlatform</code> should be used instead (the platform we're+ targeting).</p></div></div><div class="top"><p class="src"><a id="v:platformFromTriple" class="def">platformFromTriple</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:platformFromTriple" class="selflink">#</a></p></div><h1 id="g:4">Internal</h1><div class="top"><p class="src"><a id="v:knownOSs" class="def">knownOSs</a> :: [<a href="Distribution-System.html#t:OS">OS</a>] <a href="#v:knownOSs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:knownArches" class="def">knownArches</a> :: [<a href="Distribution-System.html#t:Arch">Arch</a>] <a href="#v:knownArches" class="selflink">#</a></p></div><h1 id="g:5">Classification</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ClassificationStrictness" class="def">ClassificationStrictness</a> <a href="#t:ClassificationStrictness" class="selflink">#</a></p><div class="doc"><p>How strict to be when classifying strings into the <code><a href="Distribution-System.html#t:OS">OS</a></code> and <code><a href="Distribution-System.html#t:Arch">Arch</a></code> enums.</p><p>The reason we have multiple ways to do the classification is because there+ are two situations where we need to do it.</p><p>For parsing OS and arch names in .cabal files we really want everyone to be+ referring to the same or or arch by the same name. Variety is not a virtue+ in this case. We don't mind about case though.</p><p>For the System.Info.os/arch different Haskell implementations use different+ names for the same or/arch. Also they tend to distinguish versions of an+ OS/arch which we just don't care about.</p><p>The <code><a href="Distribution-System.html#v:Compat">Compat</a></code> classification allows us to recognise aliases that are already+ in common use but it allows us to distinguish them from the canonical name+ which enables us to warn about such deprecated aliases.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Permissive" class="def">Permissive</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Compat" class="def">Compat</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Strict" class="def">Strict</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:classifyOS" class="def">classifyOS</a> :: <a href="Distribution-System.html#t:ClassificationStrictness">ClassificationStrictness</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:classifyOS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:classifyArch" class="def">classifyArch</a> :: <a href="Distribution-System.html#t:ClassificationStrictness">ClassificationStrictness</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:classifyArch" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-TestSuite.html view
@@ -0,0 +1,19 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.TestSuite</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Thomas Tuegel 2010</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.TestSuite</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module defines the detailed test suite interface which makes it+ possible to expose individual tests to Cabal or other test agents.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:TestInstance">TestInstance</a> = <a href="#v:TestInstance">TestInstance</a> {<ul class="subs"><li><a href="#v:run">run</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-TestSuite.html#t:Progress">Progress</a></li><li><a href="#v:name">name</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:tags">tags</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:options">options</a> :: [<a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a>]</li><li><a href="#v:setOption">setOption</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-TestSuite.html#t:TestInstance">TestInstance</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:OptionDescr">OptionDescr</a> = <a href="#v:OptionDescr">OptionDescr</a> {<ul class="subs"><li><a href="#v:optionName">optionName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:optionDescription">optionDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:optionType">optionType</a> :: <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a></li><li><a href="#v:optionDefault">optionDefault</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:OptionType">OptionType</a><ul class="subs"><li>= <a href="#v:OptionFile">OptionFile</a> { <ul class="subs"><li><a href="#v:optionFileMustExist">optionFileMustExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:optionFileIsDir">optionFileIsDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:optionFileExtensions">optionFileExtensions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li></ul> }</li><li>| <a href="#v:OptionString">OptionString</a> { <ul class="subs"><li><a href="#v:optionStringMultiline">optionStringMultiline</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul> }</li><li>| <a href="#v:OptionNumber">OptionNumber</a> { <ul class="subs"><li><a href="#v:optionNumberIsInt">optionNumberIsInt</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:optionNumberBounds">optionNumberBounds</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</li></ul> }</li><li>| <a href="#v:OptionBool">OptionBool</a></li><li>| <a href="#v:OptionEnum">OptionEnum</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li>| <a href="#v:OptionSet">OptionSet</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li>| <a href="#v:OptionRngSeed">OptionRngSeed</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Test">Test</a><ul class="subs"><li>= <a href="#v:Test">Test</a> <a href="Distribution-TestSuite.html#t:TestInstance">TestInstance</a></li><li>| <a href="#v:Group">Group</a> { <ul class="subs"><li><a href="#v:groupName">groupName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:concurrently">concurrently</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:groupTests">groupTests</a> :: [<a href="Distribution-TestSuite.html#t:Test">Test</a>]</li></ul> }</li><li>| <a href="#v:ExtraOptions">ExtraOptions</a> [<a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a>] <a href="Distribution-TestSuite.html#t:Test">Test</a></li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Options">Options</a> = [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li class="src short"><span class="keyword">data</span> <a href="#t:Progress">Progress</a><ul class="subs"><li>= <a href="#v:Finished">Finished</a> <a href="Distribution-TestSuite.html#t:Result">Result</a></li><li>| <a href="#v:Progress">Progress</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-TestSuite.html#t:Progress">Progress</a>)</li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Result">Result</a><ul class="subs"><li>= <a href="#v:Pass">Pass</a></li><li>| <a href="#v:Fail">Fail</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li>| <a href="#v:Error">Error</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:testGroup">testGroup</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="Distribution-TestSuite.html#t:Test">Test</a>] -> <a href="Distribution-TestSuite.html#t:Test">Test</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestInstance" class="def">TestInstance</a> <a href="#t:TestInstance" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestInstance" class="def">TestInstance</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:run" class="def">run</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-TestSuite.html#t:Progress">Progress</a></dfn><div class="doc"><p>Perform the test.</p></div></li><li><dfn class="src"><a id="v:name" class="def">name</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A name for the test, unique within a+ test suite.</p></div></li><li><dfn class="src"><a id="v:tags" class="def">tags</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>Users can select groups of tests by+ their tags.</p></div></li><li><dfn class="src"><a id="v:options" class="def">options</a> :: [<a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a>]</dfn><div class="doc"><p>Descriptions of the options recognized+ by this test.</p></div></li><li><dfn class="src"><a id="v:setOption" class="def">setOption</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-TestSuite.html#t:TestInstance">TestInstance</a></dfn><div class="doc"><p>Try to set the named option to the given value. Returns an error+ message if the option is not supported or the value could not be+ correctly parsed; otherwise, a <code><a href="Distribution-TestSuite.html#t:TestInstance">TestInstance</a></code> with the option set to+ the given value is returned.</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:OptionDescr" class="def">OptionDescr</a> <a href="#t:OptionDescr" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:OptionDescr" class="def">OptionDescr</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:optionName" class="def">optionName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:optionDescription" class="def">optionDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A human-readable description of the+ option to guide the user setting it.</p></div></li><li><dfn class="src"><a id="v:optionType" class="def">optionType</a> :: <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:optionDefault" class="def">optionDefault</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:OptionDescr" class="caption collapser" onclick="toggleSection('i:OptionDescr')">Instances</p><div id="section.i:OptionDescr" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptionDescr:Eq:1" class="instance expander" onclick="toggleSection('i:id:OptionDescr:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a></span> <a href="#t:OptionDescr" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptionDescr:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a> -> <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a> -> <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptionDescr:Read:2" class="instance expander" onclick="toggleSection('i:id:OptionDescr:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a></span> <a href="#t:OptionDescr" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptionDescr:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptionDescr:Show:3" class="instance expander" onclick="toggleSection('i:id:OptionDescr:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a></span> <a href="#t:OptionDescr" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptionDescr:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:OptionType" class="def">OptionType</a> <a href="#t:OptionType" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:OptionFile" class="def">OptionFile</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:optionFileMustExist" class="def">optionFileMustExist</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:optionFileIsDir" class="def">optionFileIsDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:optionFileExtensions" class="def">optionFileExtensions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:OptionString" class="def">OptionString</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:optionStringMultiline" class="def">optionStringMultiline</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:OptionNumber" class="def">OptionNumber</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:optionNumberIsInt" class="def">optionNumberIsInt</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:optionNumberBounds" class="def">optionNumberBounds</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)</dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:OptionBool" class="def">OptionBool</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OptionEnum" class="def">OptionEnum</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OptionSet" class="def">OptionSet</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OptionRngSeed" class="def">OptionRngSeed</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:OptionType" class="caption collapser" onclick="toggleSection('i:OptionType')">Instances</p><div id="section.i:OptionType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptionType:Eq:1" class="instance expander" onclick="toggleSection('i:id:OptionType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a></span> <a href="#t:OptionType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptionType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a> -> <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a> -> <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptionType:Read:2" class="instance expander" onclick="toggleSection('i:id:OptionType:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a></span> <a href="#t:OptionType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptionType:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-TestSuite.html#t:OptionType">OptionType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-TestSuite.html#t:OptionType">OptionType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OptionType:Show:3" class="instance expander" onclick="toggleSection('i:id:OptionType:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a></span> <a href="#t:OptionType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:OptionType:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-TestSuite.html#t:OptionType">OptionType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-TestSuite.html#t:OptionType">OptionType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Test" class="def">Test</a> <a href="#t:Test" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Test" class="def">Test</a> <a href="Distribution-TestSuite.html#t:TestInstance">TestInstance</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Group" class="def">Group</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:groupName" class="def">groupName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:concurrently" class="def">concurrently</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>If true, then children of this group may be run in parallel.+ Note that this setting is not inherited by children. In+ particular, consider a group F with "concurrently = False" that+ has some children, including a group T with "concurrently =+ True". The children of group T may be run concurrently with each+ other, as long as none are run at the same time as any of the+ direct children of group F.</p></div></li><li><dfn class="src"><a id="v:groupTests" class="def">groupTests</a> :: [<a href="Distribution-TestSuite.html#t:Test">Test</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:ExtraOptions" class="def">ExtraOptions</a> [<a href="Distribution-TestSuite.html#t:OptionDescr">OptionDescr</a>] <a href="Distribution-TestSuite.html#t:Test">Test</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Options" class="def">Options</a> = [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)] <a href="#t:Options" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Progress" class="def">Progress</a> <a href="#t:Progress" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Finished" class="def">Finished</a> <a href="Distribution-TestSuite.html#t:Result">Result</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Progress" class="def">Progress</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> <a href="Distribution-TestSuite.html#t:Progress">Progress</a>)</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Result" class="def">Result</a> <a href="#t:Result" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Pass" class="def">Pass</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Fail" class="def">Fail</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Error" class="def">Error</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Result" class="caption collapser" onclick="toggleSection('i:Result')">Instances</p><div id="section.i:Result" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Result:Eq:1" class="instance expander" onclick="toggleSection('i:id:Result:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-TestSuite.html#t:Result">Result</a></span> <a href="#t:Result" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Result:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-TestSuite.html#t:Result">Result</a> -> <a href="Distribution-TestSuite.html#t:Result">Result</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-TestSuite.html#t:Result">Result</a> -> <a href="Distribution-TestSuite.html#t:Result">Result</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Result:Read:2" class="instance expander" onclick="toggleSection('i:id:Result:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-TestSuite.html#t:Result">Result</a></span> <a href="#t:Result" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Result:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-TestSuite.html#t:Result">Result</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-TestSuite.html#t:Result">Result</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-TestSuite.html#t:Result">Result</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-TestSuite.html#t:Result">Result</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Result:Show:3" class="instance expander" onclick="toggleSection('i:id:Result:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-TestSuite.html#t:Result">Result</a></span> <a href="#t:Result" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Result:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-TestSuite.html#t:Result">Result</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-TestSuite.html#t:Result">Result</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-TestSuite.html#t:Result">Result</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:testGroup" class="def">testGroup</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="Distribution-TestSuite.html#t:Test">Test</a>] -> <a href="Distribution-TestSuite.html#t:Test">Test</a> <a href="#v:testGroup" class="selflink">#</a></p><div class="doc"><p>Create a named group of tests, which are assumed to be safe to run in+ parallel.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Text.html view
@@ -0,0 +1,10 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Text</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Duncan Coutts 2007</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Text</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This defines a <code><a href="Distribution-Text.html#t:Text">Text</a></code> class which is a bit like the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a></code>+ classes. The difference is that is uses a modern pretty printer and parser+ system and the format is not expected to be Haskell concrete syntax but+ rather the external human readable representation used by Cabal.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:Text">Text</a> a <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:defaultStyle">defaultStyle</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Style">Style</a></li><li class="src short"><a href="#v:display">display</a> :: <a href="Distribution-Text.html#t:Text">Text</a> a => a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:flatStyle">flatStyle</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Style">Style</a></li><li class="src short"><a href="#v:simpleParse">simpleParse</a> :: <a href="Distribution-Text.html#t:Text">Text</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:stdParse">stdParse</a> :: <a href="Distribution-Text.html#t:Text">Text</a> ver => (ver -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> res) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r res</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Text" class="def">Text</a> a <span class="keyword">where</span> <a href="#t:Text" class="selflink">#</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Distribution-Text.html#v:disp">disp</a>, <a href="Distribution-Text.html#v:parse">parse</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:disp" class="def">disp</a> :: a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a id="v:parse" class="def">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a <a href="#v:parse" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:Text" class="caption collapser" onclick="toggleSection('i:Text')">Instances</p><div id="section.i:Text" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:1" class="instance expander" onclick="toggleSection('i:ic:Text:Text:1')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:2" class="instance expander" onclick="toggleSection('i:ic:Text:Text:2')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:3" class="instance expander" onclick="toggleSection('i:ic:Text:Text:3')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html#t:Version">Version</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html#t:Version">Version</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:4" class="instance expander" onclick="toggleSection('i:ic:Text:Text:4')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-System.html#t:Platform">Platform</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-System.html#t:Platform">Platform</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-System.html#t:Platform">Platform</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:5" class="instance expander" onclick="toggleSection('i:ic:Text:Text:5')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-System.html#t:Arch">Arch</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-System.html#t:Arch">Arch</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-System.html#t:Arch">Arch</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:6" class="instance expander" onclick="toggleSection('i:ic:Text:Text:6')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-System.html#t:OS">OS</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-System.html#t:OS">OS</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-System.html#t:OS">OS</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:7" class="instance expander" onclick="toggleSection('i:ic:Text:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:8" class="instance expander" onclick="toggleSection('i:ic:Text:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:9" class="instance expander" onclick="toggleSection('i:ic:Text:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:10" class="instance expander" onclick="toggleSection('i:ic:Text:Text:10')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:11" class="instance expander" onclick="toggleSection('i:ic:Text:Text:11')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:12" class="instance expander" onclick="toggleSection('i:ic:Text:Text:12')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:13" class="instance expander" onclick="toggleSection('i:ic:Text:Text:13')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:14" class="instance expander" onclick="toggleSection('i:ic:Text:Text:14')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:15" class="instance expander" onclick="toggleSection('i:ic:Text:Text:15')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:16" class="instance expander" onclick="toggleSection('i:ic:Text:Text:16')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:17" class="instance expander" onclick="toggleSection('i:ic:Text:Text:17')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:18" class="instance expander" onclick="toggleSection('i:ic:Text:Text:18')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:19" class="instance expander" onclick="toggleSection('i:ic:Text:Text:19')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:19" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:20" class="instance expander" onclick="toggleSection('i:ic:Text:Text:20')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:20" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:21" class="instance expander" onclick="toggleSection('i:ic:Text:Text:21')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:21" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:22" class="instance expander" onclick="toggleSection('i:ic:Text:Text:22')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:22" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:23" class="instance expander" onclick="toggleSection('i:ic:Text:Text:23')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:23" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:24" class="instance expander" onclick="toggleSection('i:ic:Text:Text:24')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-License.html#t:License">License</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:24" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-License.html#t:License">License</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-License.html#t:License">License</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:25" class="instance expander" onclick="toggleSection('i:ic:Text:Text:25')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:25" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:26" class="instance expander" onclick="toggleSection('i:ic:Text:Text:26')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:26" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:27" class="instance expander" onclick="toggleSection('i:ic:Text:Text:27')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:27" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:28" class="instance expander" onclick="toggleSection('i:ic:Text:Text:28')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:28" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Compiler.html#t:AbiTag">AbiTag</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:29" class="instance expander" onclick="toggleSection('i:ic:Text:Text:29')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:29" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Compiler.html#t:CompilerId">CompilerId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:30" class="instance expander" onclick="toggleSection('i:ic:Text:Text:30')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:30" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:31" class="instance expander" onclick="toggleSection('i:ic:Text:Text:31')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:31" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:32" class="instance expander" onclick="toggleSection('i:ic:Text:Text:32')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:32" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:33" class="instance expander" onclick="toggleSection('i:ic:Text:Text:33')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:33" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:34" class="instance expander" onclick="toggleSection('i:ic:Text:Text:34')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:34" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:35" class="instance expander" onclick="toggleSection('i:ic:Text:Text:35')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:35" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:36" class="instance expander" onclick="toggleSection('i:ic:Text:Text:36')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc"><p>The textual format for <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> coincides with the format+ GHC accepts for <code>-package-id</code>.</p></td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:36" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:37" class="instance expander" onclick="toggleSection('i:ic:Text:Text:37')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:37" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:38" class="instance expander" onclick="toggleSection('i:ic:Text:Text:38')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:38" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:39" class="instance expander" onclick="toggleSection('i:ic:Text:Text:39')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:39" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:40" class="instance expander" onclick="toggleSection('i:ic:Text:Text:40')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:40" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:41" class="instance expander" onclick="toggleSection('i:ic:Text:Text:41')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:41" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:42" class="instance expander" onclick="toggleSection('i:ic:Text:Text:42')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:42" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:43" class="instance expander" onclick="toggleSection('i:ic:Text:Text:43')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:43" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:44" class="instance expander" onclick="toggleSection('i:ic:Text:Text:44')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:44" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:45" class="instance expander" onclick="toggleSection('i:ic:Text:Text:45')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:45" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:46" class="instance expander" onclick="toggleSection('i:ic:Text:Text:46')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:46" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:47" class="instance expander" onclick="toggleSection('i:ic:Text:Text:47')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:47" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:48" class="instance expander" onclick="toggleSection('i:ic:Text:Text:48')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:48" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">AbiDependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:49" class="instance expander" onclick="toggleSection('i:ic:Text:Text:49')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:49" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:50" class="instance expander" onclick="toggleSection('i:ic:Text:Text:50')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:50" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Simple-Setup.html#t:TestShowDetails">TestShowDetails</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Text:Text:51" class="instance expander" onclick="toggleSection('i:ic:Text:Text:51')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a></span> <a href="#t:Text" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Text:Text:51" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Simple-Setup.html#t:RelaxedDep">RelaxedDep</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultStyle" class="def">defaultStyle</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Style">Style</a> <a href="#v:defaultStyle" class="selflink">#</a></p><div class="doc"><p>The default rendering style used in Cabal for console+ output. It has a fixed page width and adds line breaks+ automatically.</p></div></div><div class="top"><p class="src"><a id="v:display" class="def">display</a> :: <a href="Distribution-Text.html#t:Text">Text</a> a => a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:display" class="selflink">#</a></p><div class="doc"><p>Pretty-prints with the default style.</p></div></div><div class="top"><p class="src"><a id="v:flatStyle" class="def">flatStyle</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint-Annotated.html#t:Style">Style</a> <a href="#v:flatStyle" class="selflink">#</a></p><div class="doc"><p>A style for rendering all on one line.</p></div></div><div class="top"><p class="src"><a id="v:simpleParse" class="def">simpleParse</a> :: <a href="Distribution-Text.html#t:Text">Text</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="#v:simpleParse" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:stdParse" class="def">stdParse</a> :: <a href="Distribution-Text.html#t:Text">Text</a> ver => (ver -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> res) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r res <a href="#v:stdParse" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-AbiHash.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.AbiHash</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.AbiHash</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:AbiHash">AbiHash</a></li><li class="src short"><a href="#v:unAbiHash">unAbiHash</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkAbiHash">mkAbiHash</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:AbiHash" class="def">AbiHash</a> <a href="#t:AbiHash" class="selflink">#</a></p><div class="doc"><p>ABI Hashes</p><p>Use <code><a href="Distribution-Types-AbiHash.html#v:mkAbiHash">mkAbiHash</a></code> and <code><a href="Distribution-Types-AbiHash.html#v:unAbiHash">unAbiHash</a></code> to convert from/to a+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code>.</p><p>This type is opaque since <code>Cabal-2.0</code></p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:AbiHash" class="caption collapser" onclick="toggleSection('i:AbiHash')">Instances</p><div id="section.i:AbiHash" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiHash:Eq:1" class="instance expander" onclick="toggleSection('i:id:AbiHash:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></span> <a href="#t:AbiHash" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiHash:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiHash:Read:2" class="instance expander" onclick="toggleSection('i:id:AbiHash:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></span> <a href="#t:AbiHash" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiHash:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiHash:Show:3" class="instance expander" onclick="toggleSection('i:id:AbiHash:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></span> <a href="#t:AbiHash" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiHash:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiHash:IsString:4" class="instance expander" onclick="toggleSection('i:id:AbiHash:IsString:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></span> <a href="#t:AbiHash" class="selflink">#</a></td><td class="doc"><p><code><a href="Distribution-Types-AbiHash.html#v:mkAbiHash">mkAbiHash</a></code></p><p><em>Since: 2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:AbiHash:IsString:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiHash:Generic:5" class="instance expander" onclick="toggleSection('i:id:AbiHash:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></span> <a href="#t:AbiHash" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiHash:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> x -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiHash:Binary:6" class="instance expander" onclick="toggleSection('i:id:AbiHash:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></span> <a href="#t:AbiHash" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiHash:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiHash:Text:7" class="instance expander" onclick="toggleSection('i:id:AbiHash:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></span> <a href="#t:AbiHash" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiHash:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AbiHash:Rep:8" class="instance expander" onclick="toggleSection('i:id:AbiHash:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></span> <a href="#t:AbiHash" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AbiHash:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "AbiHash" "Distribution.Types.AbiHash" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AbiHash" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unAbiHash" class="def">unAbiHash</a> :: <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unAbiHash" class="selflink">#</a></p><div class="doc"><p>Construct a <code><a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></code> from a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><code><a href="Distribution-Types-AbiHash.html#v:mkAbiHash">mkAbiHash</a></code> is the inverse to <code><a href="Distribution-Types-AbiHash.html#v:unAbiHash">unAbiHash</a></code></p><p>Note: No validations are performed to ensure that the resulting+ <code><a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></code> is valid</p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:mkAbiHash" class="def">mkAbiHash</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a> <a href="#v:mkAbiHash" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-Types-AbiHash.html#t:AbiHash">AbiHash</a></code> to <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><em>Since: 2.0</em></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-AnnotatedId.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.AnnotatedId</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.AnnotatedId</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:AnnotatedId">AnnotatedId</a> id = <a href="#v:AnnotatedId">AnnotatedId</a> {<ul class="subs"><li><a href="#v:ann_pid">ann_pid</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></li><li><a href="#v:ann_cname">ann_cname</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li><a href="#v:ann_id">ann_id</a> :: id</li></ul>}</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:AnnotatedId" class="def">AnnotatedId</a> id <a href="#t:AnnotatedId" class="selflink">#</a></p><div class="doc"><p>An <code><a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a></code> is a <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code>, <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>, etc.+ which is annotated with some other useful information+ that is useful for printing to users, etc.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AnnotatedId" class="def">AnnotatedId</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:ann_pid" class="def">ann_pid</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ann_cname" class="def">ann_cname</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ann_id" class="def">ann_id</a> :: id</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:AnnotatedId" class="caption collapser" onclick="toggleSection('i:AnnotatedId')">Instances</p><div id="section.i:AnnotatedId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AnnotatedId:Functor:1" class="instance expander" onclick="toggleSection('i:id:AnnotatedId:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a></span> <a href="#t:AnnotatedId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AnnotatedId:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> a -> <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> b -> <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AnnotatedId:Show:2" class="instance expander" onclick="toggleSection('i:id:AnnotatedId:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> id => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id)</span> <a href="#t:AnnotatedId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AnnotatedId:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:AnnotatedId:Package:3" class="instance expander" onclick="toggleSection('i:id:AnnotatedId:Package:3')"></span> <a href="Distribution-Package.html#t:Package">Package</a> (<a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id)</span> <a href="#t:AnnotatedId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:AnnotatedId:Package:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-Benchmark.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.Benchmark</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.Benchmark</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Benchmark">Benchmark</a> = <a href="#v:Benchmark">Benchmark</a> {<ul class="subs"><li><a href="#v:benchmarkName">benchmarkName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:benchmarkInterface">benchmarkInterface</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></li><li><a href="#v:benchmarkBuildInfo">benchmarkBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><a href="#v:emptyBenchmark">emptyBenchmark</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></li><li class="src short"><a href="#v:benchmarkType">benchmarkType</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></li><li class="src short"><a href="#v:benchmarkModules">benchmarkModules</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:benchmarkModulesAutogen">benchmarkModulesAutogen</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Benchmark" class="def">Benchmark</a> <a href="#t:Benchmark" class="selflink">#</a></p><div class="doc"><p>A "benchmark" stanza in a cabal file.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Benchmark" class="def">Benchmark</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:benchmarkName" class="def">benchmarkName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarkInterface" class="def">benchmarkInterface</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarkBuildInfo" class="def">benchmarkBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Benchmark" class="caption collapser" onclick="toggleSection('i:Benchmark')">Instances</p><div id="section.i:Benchmark" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Eq:1" class="instance expander" onclick="toggleSection('i:id:Benchmark:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Data:2" class="instance expander" onclick="toggleSection('i:id:Benchmark:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> c <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> m <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> m <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> m <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Read:3" class="instance expander" onclick="toggleSection('i:id:Benchmark:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Show:4" class="instance expander" onclick="toggleSection('i:id:Benchmark:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Generic:5" class="instance expander" onclick="toggleSection('i:id:Benchmark:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> x -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:Benchmark:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Monoid:7" class="instance expander" onclick="toggleSection('i:id:Benchmark:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>] -> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Binary:8" class="instance expander" onclick="toggleSection('i:id:Benchmark:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Benchmark:Rep:9" class="instance expander" onclick="toggleSection('i:id:Benchmark:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></span> <a href="#t:Benchmark" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Benchmark:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Benchmark" "Distribution.Types.Benchmark" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Benchmark" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarkName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarkInterface") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarkBuildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyBenchmark" class="def">emptyBenchmark</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> <a href="#v:emptyBenchmark" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:benchmarkType" class="def">benchmarkType</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:benchmarkType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:benchmarkModules" class="def">benchmarkModules</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:benchmarkModules" class="selflink">#</a></p><div class="doc"><p>Get all the module names from a benchmark.</p></div></div><div class="top"><p class="src"><a id="v:benchmarkModulesAutogen" class="def">benchmarkModulesAutogen</a> :: <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:benchmarkModulesAutogen" class="selflink">#</a></p><div class="doc"><p>Get all the auto generated module names from a benchmark.+ This are a subset of <code><a href="Distribution-Types-Benchmark.html#v:benchmarkModules">benchmarkModules</a></code>.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-BenchmarkInterface.html view
@@ -0,0 +1,11 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.BenchmarkInterface</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.BenchmarkInterface</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:BenchmarkInterface">BenchmarkInterface</a><ul class="subs"><li>= <a href="#v:BenchmarkExeV10">BenchmarkExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li>| <a href="#v:BenchmarkUnsupported">BenchmarkUnsupported</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></li></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BenchmarkInterface" class="def">BenchmarkInterface</a> <a href="#t:BenchmarkInterface" class="selflink">#</a></p><div class="doc"><p>The benchmark interfaces that are currently defined. Each+ benchmark must specify which interface it supports.</p><p>More interfaces may be defined in future, either new revisions or+ totally new interfaces.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BenchmarkExeV10" class="def">BenchmarkExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Benchmark interface "exitcode-stdio-1.0". The benchmark+ takes the form of an executable. It returns a zero exit code+ for success, non-zero for failure. The stdout and stderr+ channels may be logged. It takes no command line parameters+ and nothing on stdin.</p></td></tr><tr><td class="src"><a id="v:BenchmarkUnsupported" class="def">BenchmarkUnsupported</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></td><td class="doc"><p>A benchmark that does not conform to one of the above+ interfaces for the given reason (e.g. unknown benchmark type).</p></td></tr></table></div><div class="subs instances"><p id="control.i:BenchmarkInterface" class="caption collapser" onclick="toggleSection('i:BenchmarkInterface')">Instances</p><div id="section.i:BenchmarkInterface" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Eq:1" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Data:2" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> c <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> m <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> m <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> m <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Read:3" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Show:4" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Generic:5" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> x -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Monoid:7" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a>] -> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Binary:8" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkInterface:Rep:9" class="instance expander" onclick="toggleSection('i:id:BenchmarkInterface:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a></span> <a href="#t:BenchmarkInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkInterface:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">BenchmarkInterface</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BenchmarkInterface" "Distribution.Types.BenchmarkInterface" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkExeV10" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkUnsupported" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a>))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-BenchmarkType.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.BenchmarkType</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.BenchmarkType</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:BenchmarkType">BenchmarkType</a><ul class="subs"><li>= <a href="#v:BenchmarkTypeExe">BenchmarkTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:BenchmarkTypeUnknown">BenchmarkTypeUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></li></ul></li><li class="src short"><a href="#v:knownBenchmarkTypes">knownBenchmarkTypes</a> :: [<a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BenchmarkType" class="def">BenchmarkType</a> <a href="#t:BenchmarkType" class="selflink">#</a></p><div class="doc"><p>The "benchmark-type" field in the benchmark stanza.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BenchmarkTypeExe" class="def">BenchmarkTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>"type: exitcode-stdio-x.y"</p></td></tr><tr><td class="src"><a id="v:BenchmarkTypeUnknown" class="def">BenchmarkTypeUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>Some unknown benchmark type e.g. "type: foo"</p></td></tr></table></div><div class="subs instances"><p id="control.i:BenchmarkType" class="caption collapser" onclick="toggleSection('i:BenchmarkType')">Instances</p><div id="section.i:BenchmarkType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Eq:1" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Data:2" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> c <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> m <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> m <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> m <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Read:3" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Show:4" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Generic:5" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> x -> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Binary:6" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Text:7" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BenchmarkType:Rep:8" class="instance expander" onclick="toggleSection('i:id:BenchmarkType:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a></span> <a href="#t:BenchmarkType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BenchmarkType:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BenchmarkType" "Distribution.Types.BenchmarkType" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkTypeExe" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchmarkTypeUnknown" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownBenchmarkTypes" class="def">knownBenchmarkTypes</a> :: [<a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">BenchmarkType</a>] <a href="#v:knownBenchmarkTypes" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-BuildInfo.html view
@@ -0,0 +1,12 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.BuildInfo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.BuildInfo</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:BuildInfo">BuildInfo</a> = <a href="#v:BuildInfo">BuildInfo</a> {<ul class="subs"><li><a href="#v:buildable">buildable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:buildTools">buildTools</a> :: [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>]</li><li><a href="#v:buildToolDepends">buildToolDepends</a> :: [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>]</li><li><a href="#v:cppOptions">cppOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:ccOptions">ccOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:ldOptions">ldOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:pkgconfigDepends">pkgconfigDepends</a> :: [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>]</li><li><a href="#v:frameworks">frameworks</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:extraFrameworkDirs">extraFrameworkDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:cSources">cSources</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:jsSources">jsSources</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:hsSourceDirs">hsSourceDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:otherModules">otherModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:autogenModules">autogenModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:defaultLanguage">defaultLanguage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></li><li><a href="#v:otherLanguages">otherLanguages</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</li><li><a href="#v:defaultExtensions">defaultExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:otherExtensions">otherExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:oldExtensions">oldExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li><a href="#v:extraLibs">extraLibs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:extraGHCiLibs">extraGHCiLibs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:extraLibDirs">extraLibDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:includeDirs">includeDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:includes">includes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:installIncludes">installIncludes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:options">options</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:profOptions">profOptions</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:sharedOptions">sharedOptions</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</li><li><a href="#v:customFieldsBI">customFieldsBI</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:targetBuildDepends">targetBuildDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</li><li><a href="#v:mixins">mixins</a> :: [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyBuildInfo">emptyBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li><li class="src short"><a href="#v:allLanguages">allLanguages</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</li><li class="src short"><a href="#v:allExtensions">allExtensions</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li class="src short"><a href="#v:usedExtensions">usedExtensions</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</li><li class="src short"><a href="#v:hcOptions">hcOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:hcProfOptions">hcProfOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:hcSharedOptions">hcSharedOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BuildInfo" class="def">BuildInfo</a> <a href="#t:BuildInfo" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:BuildInfo" class="def">BuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:buildable" class="def">buildable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>component is buildable here+ | Tools needed to build this bit.</p><p>This is a legacy field that "build-tool-depends" larely supersedes.</p><p>Unless use are very sure what you are doing, use the functions in+ <code><a href="Distribution-Simple.html#v:BuildToolDepends">BuildToolDepends</a></code> rather than accessing this+ field directly.</p></div></li><li><dfn class="src"><a id="v:buildTools" class="def">buildTools</a> :: [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:buildToolDepends" class="def">buildToolDepends</a> :: [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>]</dfn><div class="doc"><p>Haskell tools needed to build this bit</p><p>This field is better than "build-tools" because it allows one to+ precisely specify an executable in a package.</p><p>Unless use are very sure what you are doing, use the functions in+ <code><a href="Distribution-Simple.html#v:BuildToolDepends">BuildToolDepends</a></code> rather than accessing this+ field directly.</p></div></li><li><dfn class="src"><a id="v:cppOptions" class="def">cppOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>options for pre-processing Haskell code</p></div></li><li><dfn class="src"><a id="v:ccOptions" class="def">ccOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>options for C compiler</p></div></li><li><dfn class="src"><a id="v:ldOptions" class="def">ldOptions</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>options for linker</p></div></li><li><dfn class="src"><a id="v:pkgconfigDepends" class="def">pkgconfigDepends</a> :: [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>]</dfn><div class="doc"><p>pkg-config packages that are used</p></div></li><li><dfn class="src"><a id="v:frameworks" class="def">frameworks</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>support frameworks for Mac OS X</p></div></li><li><dfn class="src"><a id="v:extraFrameworkDirs" class="def">extraFrameworkDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>extra locations to find frameworks.</p></div></li><li><dfn class="src"><a id="v:cSources" class="def">cSources</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:jsSources" class="def">jsSources</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:hsSourceDirs" class="def">hsSourceDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>where to look for the Haskell module hierarchy</p></div></li><li><dfn class="src"><a id="v:otherModules" class="def">otherModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dfn><div class="doc"><p>non-exposed or non-main modules</p></div></li><li><dfn class="src"><a id="v:autogenModules" class="def">autogenModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dfn><div class="doc"><p>not present on sdist, Paths_* or user-generated with a custom Setup.hs</p></div></li><li><dfn class="src"><a id="v:defaultLanguage" class="def">defaultLanguage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></dfn><div class="doc"><p>language used when not explicitly specified</p></div></li><li><dfn class="src"><a id="v:otherLanguages" class="def">otherLanguages</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</dfn><div class="doc"><p>other languages used within the package</p></div></li><li><dfn class="src"><a id="v:defaultExtensions" class="def">defaultExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dfn><div class="doc"><p>language extensions used by all modules</p></div></li><li><dfn class="src"><a id="v:otherExtensions" class="def">otherExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dfn><div class="doc"><p>other language extensions used within the package</p></div></li><li><dfn class="src"><a id="v:oldExtensions" class="def">oldExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]</dfn><div class="doc"><p>the old extensions field, treated same as <code><a href="Distribution-Types-BuildInfo.html#v:defaultExtensions">defaultExtensions</a></code></p></div></li><li><dfn class="src"><a id="v:extraLibs" class="def">extraLibs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>what libraries to link with when compiling a program that uses your package</p></div></li><li><dfn class="src"><a id="v:extraGHCiLibs" class="def">extraGHCiLibs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>if present, overrides extraLibs when package is loaded with GHCi.</p></div></li><li><dfn class="src"><a id="v:extraLibDirs" class="def">extraLibDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:includeDirs" class="def">includeDirs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>directories to find .h files</p></div></li><li><dfn class="src"><a id="v:includes" class="def">includes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>The .h files to be found in includeDirs</p></div></li><li><dfn class="src"><a id="v:installIncludes" class="def">installIncludes</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>.h files to install with the package</p></div></li><li><dfn class="src"><a id="v:options" class="def">options</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:profOptions" class="def">profOptions</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sharedOptions" class="def">sharedOptions</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:customFieldsBI" class="def">customFieldsBI</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</dfn><div class="doc"><p>Custom fields starting+ with x-, stored in a+ simple assoc-list.</p></div></li><li><dfn class="src"><a id="v:targetBuildDepends" class="def">targetBuildDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</dfn><div class="doc"><p>Dependencies specific to a library or executable target</p></div></li><li><dfn class="src"><a id="v:mixins" class="def">mixins</a> :: [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:BuildInfo" class="caption collapser" onclick="toggleSection('i:BuildInfo')">Instances</p><div id="section.i:BuildInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Eq:1" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Data:2" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> c <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> m <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> m <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> m <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Read:3" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Show:4" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Generic:5" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> x -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Monoid:7" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>] -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Binary:8" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildInfo:Rep:9" class="instance expander" onclick="toggleSection('i:id:BuildInfo:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></span> <a href="#t:BuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildInfo:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BuildInfo" "Distribution.Types.BuildInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildable") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildTools") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildToolDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "cppOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ccOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "ldOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgconfigDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "frameworks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraFrameworkDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "cSources") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "jsSources") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hsSourceDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "otherModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "autogenModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "defaultLanguage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a>))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "otherLanguages") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "defaultExtensions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "otherExtensions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "oldExtensions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraGHCiLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraLibDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "includeDirs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "includes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "options") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "profOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sharedOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "customFieldsBI") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "targetBuildDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "mixins") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>]))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyBuildInfo" class="def">emptyBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:emptyBuildInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:allLanguages" class="def">allLanguages</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] <a href="#v:allLanguages" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Language-Haskell-Extension.html#t:Language">Language</a></code>s used by this component</p></div></div><div class="top"><p class="src"><a id="v:allExtensions" class="def">allExtensions</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] <a href="#v:allExtensions" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Language-Haskell-Extension.html#t:Extension">Extension</a></code>s that are used somewhere by this component</p></div></div><div class="top"><p class="src"><a id="v:usedExtensions" class="def">usedExtensions</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] <a href="#v:usedExtensions" class="selflink">#</a></p><div class="doc"><p>The <code>Extensions</code> that are used by all modules in this component</p></div></div><div class="top"><p class="src"><a id="v:hcOptions" class="def">hcOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:hcOptions" class="selflink">#</a></p><div class="doc"><p>Select options for a particular Haskell compiler.</p></div></div><div class="top"><p class="src"><a id="v:hcProfOptions" class="def">hcProfOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:hcProfOptions" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hcSharedOptions" class="def">hcSharedOptions</a> :: <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:hcSharedOptions" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-BuildType.html view
@@ -0,0 +1,9 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.BuildType</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.BuildType</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:BuildType">BuildType</a><ul class="subs"><li>= <a href="#v:Simple">Simple</a></li><li>| <a href="#v:Configure">Configure</a></li><li>| <a href="#v:Make">Make</a></li><li>| <a href="#v:Custom">Custom</a></li><li>| <a href="#v:UnknownBuildType">UnknownBuildType</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:knownBuildTypes">knownBuildTypes</a> :: [<a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BuildType" class="def">BuildType</a> <a href="#t:BuildType" class="selflink">#</a></p><div class="doc"><p>The type of build system used by this package.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Simple" class="def">Simple</a></td><td class="doc"><p>calls <code>Distribution.Simple.defaultMain</code></p></td></tr><tr><td class="src"><a id="v:Configure" class="def">Configure</a></td><td class="doc"><p>calls <code>Distribution.Simple.defaultMainWithHooks defaultUserHooks</code>,+ which invokes <code>configure</code> to generate additional build+ information used by later phases.</p></td></tr><tr><td class="src"><a id="v:Make" class="def">Make</a></td><td class="doc"><p>calls <code>Distribution.Make.defaultMain</code></p></td></tr><tr><td class="src"><a id="v:Custom" class="def">Custom</a></td><td class="doc"><p>uses user-supplied <code>Setup.hs</code> or <code>Setup.lhs</code> (default)</p></td></tr><tr><td class="src"><a id="v:UnknownBuildType" class="def">UnknownBuildType</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>a package that uses an unknown build type cannot actually+ be built. Doing it this way rather than just giving a+ parse error means we get better error messages and allows+ you to inspect the rest of the package description.</p></td></tr></table></div><div class="subs instances"><p id="control.i:BuildType" class="caption collapser" onclick="toggleSection('i:BuildType')">Instances</p><div id="section.i:BuildType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Eq:1" class="instance expander" onclick="toggleSection('i:id:BuildType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Data:2" class="instance expander" onclick="toggleSection('i:id:BuildType:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> c <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> m <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> m <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> m <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Read:3" class="instance expander" onclick="toggleSection('i:id:BuildType:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Show:4" class="instance expander" onclick="toggleSection('i:id:BuildType:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Generic:5" class="instance expander" onclick="toggleSection('i:id:BuildType:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> x -> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Binary:6" class="instance expander" onclick="toggleSection('i:id:BuildType:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Text:7" class="instance expander" onclick="toggleSection('i:id:BuildType:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:BuildType:Rep:8" class="instance expander" onclick="toggleSection('i:id:BuildType:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></span> <a href="#t:BuildType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:BuildType:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "BuildType" "Distribution.Types.BuildType" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Simple" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Configure" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Make" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Custom" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnknownBuildType" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownBuildTypes" class="def">knownBuildTypes</a> :: [<a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a>] <a href="#v:knownBuildTypes" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-Component.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.Component</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.Component</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Component">Component</a><ul class="subs"><li>= <a href="#v:CLib">CLib</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></li><li>| <a href="#v:CFLib">CFLib</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></li><li>| <a href="#v:CExe">CExe</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></li><li>| <a href="#v:CTest">CTest</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></li><li>| <a href="#v:CBench">CBench</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></li></ul></li><li class="src short"><a href="#v:foldComponent">foldComponent</a> :: (<a href="Distribution-Types-Library.html#t:Library">Library</a> -> a) -> (<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> a) -> (<a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> a) -> (<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> a) -> (<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> a) -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> a</li><li class="src short"><a href="#v:componentBuildInfo">componentBuildInfo</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li><li class="src short"><a href="#v:componentBuildable">componentBuildable</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:componentName">componentName</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li class="src short"><a href="#v:partitionComponents">partitionComponents</a> :: [<a href="Distribution-Types-Component.html#t:Component">Component</a>] -> ([<a href="Distribution-Types-Library.html#t:Library">Library</a>], [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>], [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>], [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>], [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>])</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Component" class="def">Component</a> <a href="#t:Component" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CLib" class="def">CLib</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CFLib" class="def">CFLib</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CExe" class="def">CExe</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CTest" class="def">CTest</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CBench" class="def">CBench</a> <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Component" class="caption collapser" onclick="toggleSection('i:Component')">Instances</p><div id="section.i:Component" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Component:Eq:1" class="instance expander" onclick="toggleSection('i:id:Component:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-Component.html#t:Component">Component</a></span> <a href="#t:Component" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Component:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Component:Read:2" class="instance expander" onclick="toggleSection('i:id:Component:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-Component.html#t:Component">Component</a></span> <a href="#t:Component" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Component:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-Component.html#t:Component">Component</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-Component.html#t:Component">Component</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Component:Show:3" class="instance expander" onclick="toggleSection('i:id:Component:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-Component.html#t:Component">Component</a></span> <a href="#t:Component" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Component:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-Component.html#t:Component">Component</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Component:Semigroup:4" class="instance expander" onclick="toggleSection('i:id:Component:Semigroup:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-Component.html#t:Component">Component</a></span> <a href="#t:Component" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Component:Semigroup:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:foldComponent" class="def">foldComponent</a> :: (<a href="Distribution-Types-Library.html#t:Library">Library</a> -> a) -> (<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> a) -> (<a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> a) -> (<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> a) -> (<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> a) -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> a <a href="#v:foldComponent" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentBuildInfo" class="def">componentBuildInfo</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a> <a href="#v:componentBuildInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentBuildable" class="def">componentBuildable</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:componentBuildable" class="selflink">#</a></p><div class="doc"><p>Is a component buildable (i.e., not marked with <code>buildable: False</code>)?+ See also this note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>.</p><p><em>Since: 2.0.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:componentName" class="def">componentName</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:componentName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:partitionComponents" class="def">partitionComponents</a> :: [<a href="Distribution-Types-Component.html#t:Component">Component</a>] -> ([<a href="Distribution-Types-Library.html#t:Library">Library</a>], [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>], [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>], [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>], [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>]) <a href="#v:partitionComponents" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ComponentId.html view
@@ -0,0 +1,9 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ComponentId</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ComponentId</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentId">ComponentId</a></li><li class="src short"><a href="#v:unComponentId">unComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkComponentId">mkComponentId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ComponentId" class="def">ComponentId</a> <a href="#t:ComponentId" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> uniquely identifies the transitive source+ code closure of a component (i.e. libraries, executables).</p><p>For non-Backpack components, this corresponds one to one with+ the <code>UnitId</code>, which serves as the basis for install paths,+ linker symbols, etc.</p><p>Use <code><a href="Distribution-Types-ComponentId.html#v:mkComponentId">mkComponentId</a></code> and <code><a href="Distribution-Types-ComponentId.html#v:unComponentId">unComponentId</a></code> to convert from/to a+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code>.</p><p>This type is opaque since <code>Cabal-2.0</code></p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:ComponentId" class="caption collapser" onclick="toggleSection('i:ComponentId')">Instances</p><div id="section.i:ComponentId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:Eq:1" class="instance expander" onclick="toggleSection('i:id:ComponentId:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:Data:2" class="instance expander" onclick="toggleSection('i:id:ComponentId:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> c <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> m <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> m <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> m <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:Ord:3" class="instance expander" onclick="toggleSection('i:id:ComponentId:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:Read:4" class="instance expander" onclick="toggleSection('i:id:ComponentId:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:Show:5" class="instance expander" onclick="toggleSection('i:id:ComponentId:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:IsString:6" class="instance expander" onclick="toggleSection('i:id:ComponentId:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc"><p><code><a href="Distribution-Types-ComponentId.html#v:mkComponentId">mkComponentId</a></code></p><p><em>Since: 2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:Generic:7" class="instance expander" onclick="toggleSection('i:id:ComponentId:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> x -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:Binary:8" class="instance expander" onclick="toggleSection('i:id:ComponentId:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:NFData:9" class="instance expander" onclick="toggleSection('i:id:ComponentId:NFData:9')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:NFData:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:Text:10" class="instance expander" onclick="toggleSection('i:id:ComponentId:Text:10')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:Text:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentId:Rep:11" class="instance expander" onclick="toggleSection('i:id:ComponentId:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></span> <a href="#t:ComponentId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentId:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ComponentId" "Distribution.Types.ComponentId" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ComponentId" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unComponentId" class="def">unComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unComponentId" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> to <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:mkComponentId" class="def">mkComponentId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:mkComponentId" class="selflink">#</a></p><div class="doc"><p>Construct a <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> from a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><code><a href="Distribution-Types-ComponentId.html#v:mkComponentId">mkComponentId</a></code> is the inverse to <code><a href="Distribution-Types-ComponentId.html#v:unComponentId">unComponentId</a></code></p><p>Note: No validations are performed to ensure that the resulting+ <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> is valid</p><p><em>Since: 2.0</em></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ComponentInclude.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ComponentInclude</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ComponentInclude</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentInclude">ComponentInclude</a> id rn = <a href="#v:ComponentInclude">ComponentInclude</a> {<ul class="subs"><li><a href="#v:ci_ann_id">ci_ann_id</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id</li><li><a href="#v:ci_renaming">ci_renaming</a> :: rn</li><li><a href="#v:ci_implicit">ci_implicit</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:ci_id">ci_id</a> :: <a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> id rn -> id</li><li class="src short"><a href="#v:ci_pkgid">ci_pkgid</a> :: <a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> id rn -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></li><li class="src short"><a href="#v:ci_cname">ci_cname</a> :: <a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> id rn -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ComponentInclude" class="def">ComponentInclude</a> id rn <a href="#t:ComponentInclude" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ComponentInclude" class="def">ComponentInclude</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:ci_ann_id" class="def">ci_ann_id</a> :: <a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">AnnotatedId</a> id</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ci_renaming" class="def">ci_renaming</a> :: rn</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:ci_implicit" class="def">ci_implicit</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Did this come from an entry in <code>mixins</code>, or+ was implicitly generated by <code>build-depends</code>?</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:ci_id" class="def">ci_id</a> :: <a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> id rn -> id <a href="#v:ci_id" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ci_pkgid" class="def">ci_pkgid</a> :: <a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> id rn -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> <a href="#v:ci_pkgid" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ci_cname" class="def">ci_cname</a> :: <a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">ComponentInclude</a> id rn -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:ci_cname" class="selflink">#</a></p><div class="doc"><p>This should always return <code><a href="Distribution-Types-ComponentName.html#v:CLibName">CLibName</a></code> or <code><a href="Distribution-Types-ComponentName.html#v:CSubLibName">CSubLibName</a></code></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ComponentLocalBuildInfo.html view
@@ -0,0 +1,91 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ComponentLocalBuildInfo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ComponentLocalBuildInfo</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a><ul class="subs"><li>= <a href="#v:LibComponentLocalBuildInfo">LibComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentIsIndefinite_">componentIsIndefinite_</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:componentInstantiatedWith">componentInstantiatedWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentCompatPackageKey">componentCompatPackageKey</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:componentCompatPackageName">componentCompatPackageName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></li><li><a href="#v:componentExposedModules">componentExposedModules</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>]</li><li><a href="#v:componentIsPublic">componentIsPublic</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul> }</li><li>| <a href="#v:FLibComponentLocalBuildInfo">FLibComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li></ul> }</li><li>| <a href="#v:ExeComponentLocalBuildInfo">ExeComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li></ul> }</li><li>| <a href="#v:TestComponentLocalBuildInfo">TestComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li></ul> }</li><li>| <a href="#v:BenchComponentLocalBuildInfo">BenchComponentLocalBuildInfo</a> { <ul class="subs"><li><a href="#v:componentLocalName">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li><a href="#v:componentComponentId">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li><a href="#v:componentUnitId">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li><li><a href="#v:componentIncludes">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</li><li><a href="#v:componentExeDeps">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li><li><a href="#v:componentInternalDeps">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</li></ul> }</li></ul></li><li class="src short"><a href="#v:componentIsIndefinite">componentIsIndefinite</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:maybeComponentInstantiatedWith">maybeComponentInstantiatedWith</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ComponentLocalBuildInfo" class="def">ComponentLocalBuildInfo</a> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></p><div class="doc"><p>The first five fields are common across all algebraic variants.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:LibComponentLocalBuildInfo" class="def">LibComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentIsIndefinite_" class="def">componentIsIndefinite_</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Is this an indefinite component (i.e. has unfilled holes)?</p></div></li><li><dfn class="src"><a id="v:componentInstantiatedWith" class="def">componentInstantiatedWith</a> :: [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)]</dfn><div class="doc"><p>How the component was instantiated</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li><li><dfn class="src"><a id="v:componentCompatPackageKey" class="def">componentCompatPackageKey</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Compatibility "package key" that we pass to older versions of GHC.</p></div></li><li><dfn class="src"><a id="v:componentCompatPackageName" class="def">componentCompatPackageName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></dfn><div class="doc"><p>Compatibility "package name" that we register this component as.</p></div></li><li><dfn class="src"><a id="v:componentExposedModules" class="def">componentExposedModules</a> :: [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>]</dfn><div class="doc"><p>A list of exposed modules (either defined in this component,+ or reexported from another component.)</p></div></li><li><dfn class="src"><a id="v:componentIsPublic" class="def">componentIsPublic</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Convenience field, specifying whether or not this is the+ "public library" that has the same name as the package.</p></div></li></ul></div></td></tr><tr><td class="src"><a id="v:FLibComponentLocalBuildInfo" class="def">FLibComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li></ul></div></td></tr><tr><td class="src"><a id="v:ExeComponentLocalBuildInfo" class="def">ExeComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li></ul></div></td></tr><tr><td class="src"><a id="v:TestComponentLocalBuildInfo" class="def">TestComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li></ul></div></td></tr><tr><td class="src"><a id="v:BenchComponentLocalBuildInfo" class="def">BenchComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:componentLocalName" class="def">componentLocalName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></dfn><div class="doc"><p>It would be very convenient to store the literal Library here,+ but if we do that, it will get serialized (via the Binary)+ instance twice. So instead we just provide the ComponentName,+ which can be used to find the Component in the+ PackageDescription. NB: eventually, this will NOT uniquely+ identify the ComponentLocalBuildInfo.</p></div></li><li><dfn class="src"><a id="v:componentComponentId" class="def">componentComponentId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> of this component.</p></div></li><li><dfn class="src"><a id="v:componentUnitId" class="def">componentUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></dfn><div class="doc"><p>The computed <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which uniquely identifies this+ component. Might be hashed.</p></div></li><li><dfn class="src"><a id="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</dfn><div class="doc"><p>Resolved internal and external package dependencies for this component.+ The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be+ satisfied in terms of version ranges. This field fixes those dependencies+ to the specific versions available on this machine for this compiler.</p></div></li><li><dfn class="src"><a id="v:componentIncludes" class="def">componentIncludes</a> :: [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]</dfn><div class="doc"><p>The set of packages that are brought into scope during+ compilation, including a <code><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></code> which may used+ to hide or rename modules. This is what gets translated into+ <code>-package-id</code> arguments. This is a modernized version of+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, which is kept around for BC purposes.</p></div></li><li><dfn class="src"><a id="v:componentExeDeps" class="def">componentExeDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:componentInternalDeps" class="def">componentInternalDeps</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]</dfn><div class="doc"><p>The internal dependencies which induce a graph on the+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> of this package. This does NOT+ coincide with <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code> because it ALSO records+ 'build-tool' dependencies on executables. Maybe one day+ <code>cabal-install</code> will also handle these correctly too!</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ComponentLocalBuildInfo" class="caption collapser" onclick="toggleSection('i:ComponentLocalBuildInfo')">Instances</p><div id="section.i:ComponentLocalBuildInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Read:1" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Read:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Read:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Show:2" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Generic:3" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Generic:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Generic:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> x -> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Binary:4" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Binary:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Binary:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:IsNode:5" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:IsNode:5')"></span> <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:IsNode:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Rep:6" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ComponentLocalBuildInfo" "Distribution.Types.ComponentLocalBuildInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LibComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIsIndefinite_") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInstantiatedWith") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentCompatPackageKey") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentCompatPackageName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExposedModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">ExposedModule</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIsPublic") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FLibComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>]))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExeComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BenchComponentLocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentLocalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentComponentId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentPackageDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentIncludes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Backpack.html#t:OpenUnitId">OpenUnitId</a>, <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentExeDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentInternalDeps") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>])))))))))</div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentLocalBuildInfo:Key:7" class="instance expander" onclick="toggleSection('i:id:ComponentLocalBuildInfo:Key:7')"></span> <span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></span> <a href="#t:ComponentLocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentLocalBuildInfo:Key:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> = <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:componentIsIndefinite" class="def">componentIsIndefinite</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:componentIsIndefinite" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:maybeComponentInstantiatedWith" class="def">maybeComponentInstantiatedWith</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-Backpack.html#t:OpenModule">OpenModule</a>)] <a href="#v:maybeComponentInstantiatedWith" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ComponentName.html view
@@ -0,0 +1,8 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ComponentName</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ComponentName</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentName">ComponentName</a><ul class="subs"><li>= <a href="#v:CLibName">CLibName</a></li><li>| <a href="#v:CSubLibName">CSubLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CFLibName">CFLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CExeName">CExeName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CTestName">CTestName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li>| <a href="#v:CBenchName">CBenchName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li></ul></li><li class="src short"><a href="#v:defaultLibName">defaultLibName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li class="src short"><a href="#v:libraryComponentName">libraryComponentName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li><li class="src short"><a href="#v:showComponentName">showComponentName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:componentNameStanza">componentNameStanza</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:componentNameString">componentNameString</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ComponentName" class="def">ComponentName</a> <a href="#t:ComponentName" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CLibName" class="def">CLibName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CSubLibName" class="def">CSubLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CFLibName" class="def">CFLibName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CExeName" class="def">CExeName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CTestName" class="def">CTestName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CBenchName" class="def">CBenchName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ComponentName" class="caption collapser" onclick="toggleSection('i:ComponentName')">Instances</p><div id="section.i:ComponentName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Eq:1" class="instance expander" onclick="toggleSection('i:id:ComponentName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Ord:2" class="instance expander" onclick="toggleSection('i:id:ComponentName:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Read:3" class="instance expander" onclick="toggleSection('i:id:ComponentName:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Show:4" class="instance expander" onclick="toggleSection('i:id:ComponentName:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Generic:5" class="instance expander" onclick="toggleSection('i:id:ComponentName:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> x -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Binary:6" class="instance expander" onclick="toggleSection('i:id:ComponentName:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Text:7" class="instance expander" onclick="toggleSection('i:id:ComponentName:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentName:Rep:8" class="instance expander" onclick="toggleSection('i:id:ComponentName:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></span> <a href="#t:ComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentName:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ComponentName" "Distribution.Types.ComponentName" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CLibName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CSubLibName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CFLibName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CExeName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CTestName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CBenchName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultLibName" class="def">defaultLibName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:defaultLibName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:libraryComponentName" class="def">libraryComponentName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:libraryComponentName" class="selflink">#</a></p><div class="doc"><p>Convert the <code><a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></code> of a library into a+ <code><a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:showComponentName" class="def">showComponentName</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showComponentName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentNameStanza" class="def">componentNameStanza</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:componentNameStanza" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:componentNameString" class="def">componentNameString</a> :: <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:componentNameString" class="selflink">#</a></p><div class="doc"><p>This gets the underlying unqualified component name. In fact, it is+ guaranteed to uniquely identify a component, returning+ <code>Nothing</code> if the <code><a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></code> was for the public+ library.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ComponentRequestedSpec.html view
@@ -0,0 +1,30 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ComponentRequestedSpec</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ComponentRequestedSpec</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentRequestedSpec">ComponentRequestedSpec</a><ul class="subs"><li>= <a href="#v:ComponentRequestedSpec">ComponentRequestedSpec</a> { <ul class="subs"><li><a href="#v:testsRequested">testsRequested</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:benchmarksRequested">benchmarksRequested</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul> }</li><li>| <a href="#v:OneComponentRequestedSpec">OneComponentRequestedSpec</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentDisabledReason">ComponentDisabledReason</a><ul class="subs"><li>= <a href="#v:DisabledComponent">DisabledComponent</a></li><li>| <a href="#v:DisabledAllTests">DisabledAllTests</a></li><li>| <a href="#v:DisabledAllBenchmarks">DisabledAllBenchmarks</a></li><li>| <a href="#v:DisabledAllButOne">DisabledAllButOne</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:defaultComponentRequestedSpec">defaultComponentRequestedSpec</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></li><li class="src short"><a href="#v:componentNameRequested">componentNameRequested</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:componentEnabled">componentEnabled</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:componentDisabledReason">componentDisabledReason</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentDisabledReason">ComponentDisabledReason</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="doc"><p><a id="buildable_vs_enabled_components"></a></p><h1>Note: Buildable versus requested versus enabled components</h1><p>What's the difference between a buildable component (ala+ <code><a href="Distribution-Types-Component.html#v:componentBuildable">componentBuildable</a></code>), a requested component+ (ala <code><a href="Distribution-Types-ComponentRequestedSpec.html#v:componentNameRequested">componentNameRequested</a></code>), and an enabled component (ala+ <code><a href="Distribution-Types-ComponentRequestedSpec.html#v:componentEnabled">componentEnabled</a></code>)?</p><p>A component is <strong>buildable</strong> if, after resolving flags and+ conditionals, there is no <code>buildable: False</code> property in it.+ This is a <em>static</em> property that arises from the+ Cabal file and the package description flattening; once we have+ a <code>PackageDescription</code> buildability is known.</p><p>A component is <strong>requested</strong> if a user specified, via a+ the flags and arguments passed to configure, that it should be+ built. E.g., <code>--enable-tests</code> or <code>--enable-benchmarks</code> request+ all tests and benchmarks, if they are provided. What is requested+ can be read off directly from <code><a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></code>. A requested+ component is not always buildable; e.g., a user may <code>--enable-tests</code>+ but one of the test suites may have <code>buildable: False</code>.</p><p>A component is <strong>enabled</strong> if it is BOTH buildable+ and requested. Once we have a <code>LocalBuildInfo</code>, whether or not a+ component is enabled is known.</p><p>Generally speaking, most Cabal API code cares if a component+ is enabled. (For example, if you want to run a preprocessor on each+ component prior to building them, you want to run this on each+ <em>enabled</em> component.)</p><p>Note that post-configuration, you will generally not see a+ non-buildable <code><a href="Distribution-Types-Component.html#t:Component">Component</a></code>. This is because <code>flattenPD</code> will drop+ any such components from <code>PackageDescription</code>. See #3858 for+ an example where this causes problems.</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ComponentRequestedSpec" class="def">ComponentRequestedSpec</a> <a href="#t:ComponentRequestedSpec" class="selflink">#</a></p><div class="doc"><p>Describes what components are enabled by user-interaction.+ See also this note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>.</p><p><em>Since: 2.0.0.0</em></p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ComponentRequestedSpec" class="def">ComponentRequestedSpec</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:testsRequested" class="def">testsRequested</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarksRequested" class="def">benchmarksRequested</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr><tr><td class="src"><a id="v:OneComponentRequestedSpec" class="def">OneComponentRequestedSpec</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ComponentRequestedSpec" class="caption collapser" onclick="toggleSection('i:ComponentRequestedSpec')">Instances</p><div id="section.i:ComponentRequestedSpec" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentRequestedSpec:Eq:1" class="instance expander" onclick="toggleSection('i:id:ComponentRequestedSpec:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></span> <a href="#t:ComponentRequestedSpec" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentRequestedSpec:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentRequestedSpec:Read:2" class="instance expander" onclick="toggleSection('i:id:ComponentRequestedSpec:Read:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></span> <a href="#t:ComponentRequestedSpec" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentRequestedSpec:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentRequestedSpec:Show:3" class="instance expander" onclick="toggleSection('i:id:ComponentRequestedSpec:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></span> <a href="#t:ComponentRequestedSpec" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentRequestedSpec:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentRequestedSpec:Generic:4" class="instance expander" onclick="toggleSection('i:id:ComponentRequestedSpec:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></span> <a href="#t:ComponentRequestedSpec" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentRequestedSpec:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> x -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentRequestedSpec:Binary:5" class="instance expander" onclick="toggleSection('i:id:ComponentRequestedSpec:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></span> <a href="#t:ComponentRequestedSpec" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentRequestedSpec:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ComponentRequestedSpec:Rep:6" class="instance expander" onclick="toggleSection('i:id:ComponentRequestedSpec:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></span> <a href="#t:ComponentRequestedSpec" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ComponentRequestedSpec:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ComponentRequestedSpec" "Distribution.Types.ComponentRequestedSpec" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ComponentRequestedSpec" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testsRequested") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarksRequested") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OneComponentRequestedSpec" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ComponentDisabledReason" class="def">ComponentDisabledReason</a> <a href="#t:ComponentDisabledReason" class="selflink">#</a></p><div class="doc"><p>A reason explaining why a component is disabled.</p><p><em>Since: 2.0.0.0</em></p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:DisabledComponent" class="def">DisabledComponent</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:DisabledAllTests" class="def">DisabledAllTests</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:DisabledAllBenchmarks" class="def">DisabledAllBenchmarks</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:DisabledAllButOne" class="def">DisabledAllButOne</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a id="v:defaultComponentRequestedSpec" class="def">defaultComponentRequestedSpec</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> <a href="#v:defaultComponentRequestedSpec" class="selflink">#</a></p><div class="doc"><p>The default set of enabled components. Historically tests and+ benchmarks are NOT enabled by default.</p><p><em>Since: 2.0.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:componentNameRequested" class="def">componentNameRequested</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:componentNameRequested" class="selflink">#</a></p><div class="doc"><p>Is this component name enabled? See also this note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>.</p><p><em>Since: 2.0.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:componentEnabled" class="def">componentEnabled</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:componentEnabled" class="selflink">#</a></p><div class="doc"><p>Is this component enabled? See also this note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>.</p><p><em>Since: 2.0.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:componentDisabledReason" class="def">componentDisabledReason</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentDisabledReason">ComponentDisabledReason</a> <a href="#v:componentDisabledReason" class="selflink">#</a></p><div class="doc"><p>Is this component disabled, and if so, why?</p><p><em>Since: 2.0.0.0</em></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-CondTree.html view
@@ -0,0 +1,26 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.CondTree</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.CondTree</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:CondTree">CondTree</a> v c a = <a href="#v:CondNode">CondNode</a> {<ul class="subs"><li><a href="#v:condTreeData">condTreeData</a> :: a</li><li><a href="#v:condTreeConstraints">condTreeConstraints</a> :: c</li><li><a href="#v:condTreeComponents">condTreeComponents</a> :: [<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a]</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:CondBranch">CondBranch</a> v c a = <a href="#v:CondBranch">CondBranch</a> {<ul class="subs"><li><a href="#v:condBranchCondition">condBranchCondition</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v</li><li><a href="#v:condBranchIfTrue">condBranchIfTrue</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a</li><li><a href="#v:condBranchIfFalse">condBranchIfFalse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)</li></ul>}</li><li class="src short"><a href="#v:condIfThen">condIfThen</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a</li><li class="src short"><a href="#v:condIfThenElse">condIfThenElse</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a</li><li class="src short"><a href="#v:mapCondTree">mapCondTree</a> :: (a -> b) -> (c -> d) -> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> w) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> w d b</li><li class="src short"><a href="#v:mapTreeConstrs">mapTreeConstrs</a> :: (c -> d) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v d a</li><li class="src short"><a href="#v:mapTreeConds">mapTreeConds</a> :: (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> w) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> w c a</li><li class="src short"><a href="#v:mapTreeData">mapTreeData</a> :: (a -> b) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c b</li><li class="src short"><a href="#v:extractCondition">extractCondition</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v => (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v</li><li class="src short"><a href="#v:simplifyCondTree">simplifyCondTree</a> :: (<a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> d) => (v -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> v <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v d a -> (d, a)</li><li class="src short"><a href="#v:ignoreConditions">ignoreConditions</a> :: (<a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> c) => <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> (a, c)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CondTree" class="def">CondTree</a> v c a <a href="#t:CondTree" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a></code> is used to represent the conditional structure of+ a Cabal file, reflecting a syntax element subject to constraints,+ and then any number of sub-elements which may be enabled subject+ to some condition. Both <code>a</code> and <code>c</code> are usually <code><a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a></code>s.</p><p>To be more concrete, consider the following fragment of a <code>Cabal</code>+ file:</p><pre>build-depends: base >= 4.0+if flag(extra)+ build-depends: base >= 4.2+</pre><p>One way to represent this is to have <code><code><a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a></code> <code>ConfVar</code>+ [<code>Dependency</code>] <code>BuildInfo</code></code>. Here, <code><a href="Distribution-Types-CondTree.html#v:condTreeData">condTreeData</a></code> represents+ the actual fields which are not behind any conditional, while+ <code><a href="Distribution-Types-CondTree.html#v:condTreeComponents">condTreeComponents</a></code> recursively records any further fields+ which are behind a conditional. <code><a href="Distribution-Types-CondTree.html#v:condTreeConstraints">condTreeConstraints</a></code> records+ the constraints (in this case, <code>base >= 4.0</code>) which would+ be applied if you use this syntax; in general, this is+ derived off of <code>targetBuildInfo</code> (perhaps a good refactoring+ would be to convert this into an opaque type, with a smart+ constructor that pre-computes the dependencies.)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CondNode" class="def">CondNode</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:condTreeData" class="def">condTreeData</a> :: a</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condTreeConstraints" class="def">condTreeConstraints</a> :: c</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condTreeComponents" class="def">condTreeComponents</a> :: [<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:CondTree" class="caption collapser" onclick="toggleSection('i:CondTree')">Instances</p><div id="section.i:CondTree" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Functor:1" class="instance expander" onclick="toggleSection('i:id:CondTree:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c b -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Foldable:2" class="instance expander" onclick="toggleSection('i:id:CondTree:Foldable:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Foldable">Foldable</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Foldable:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fold">fold</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c m -> m <a href="#v:fold" class="selflink">#</a></p><p class="src"><a href="#v:foldMap">foldMap</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => (a -> m) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> m <a href="#v:foldMap" class="selflink">#</a></p><p class="src"><a href="#v:foldr">foldr</a> :: (a -> b -> b) -> b -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> b <a href="#v:foldr" class="selflink">#</a></p><p class="src"><a href="#v:foldr-39-">foldr'</a> :: (a -> b -> b) -> b -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> b <a href="#v:foldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldl">foldl</a> :: (b -> a -> b) -> b -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> b <a href="#v:foldl" class="selflink">#</a></p><p class="src"><a href="#v:foldl-39-">foldl'</a> :: (b -> a -> b) -> b -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> b <a href="#v:foldl-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr1">foldr1</a> :: (a -> a -> a) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:foldr1" class="selflink">#</a></p><p class="src"><a href="#v:foldl1">foldl1</a> :: (a -> a -> a) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:foldl1" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> [a] <a href="#v:toList" class="selflink">#</a></p><p class="src"><a href="#v:null">null</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:null" class="selflink">#</a></p><p class="src"><a href="#v:length">length</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:length" class="selflink">#</a></p><p class="src"><a href="#v:elem">elem</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:elem" class="selflink">#</a></p><p class="src"><a href="#v:maximum">maximum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:maximum" class="selflink">#</a></p><p class="src"><a href="#v:minimum">minimum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:minimum" class="selflink">#</a></p><p class="src"><a href="#v:sum">sum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:sum" class="selflink">#</a></p><p class="src"><a href="#v:product">product</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> a <a href="#v:product" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Traversable:3" class="instance expander" onclick="toggleSection('i:id:CondTree:Traversable:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Traversable</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Traversable:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:traverse">traverse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => (a -> f b) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> f (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c b) <a href="#v:traverse" class="selflink">#</a></p><p class="src"><a href="#v:sequenceA">sequenceA</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c (f a) -> f (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) <a href="#v:sequenceA" class="selflink">#</a></p><p class="src"><a href="#v:mapM">mapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> m (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c b) <a href="#v:mapM" class="selflink">#</a></p><p class="src"><a href="#v:sequence">sequence</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c (m a) -> m (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) <a href="#v:sequence" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Eq:4" class="instance expander" onclick="toggleSection('i:id:CondTree:Eq:4')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> c, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Eq:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Data:5" class="instance expander" onclick="toggleSection('i:id:CondTree:Data:5')"></span> (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> a, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> c, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> v) => <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Data:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> c (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> m (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> m (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> m (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Show:6" class="instance expander" onclick="toggleSection('i:id:CondTree:Show:6')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> v, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> c, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Show:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Generic:7" class="instance expander" onclick="toggleSection('i:id:CondTree:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) x -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Binary:8" class="instance expander" onclick="toggleSection('i:id:CondTree:Binary:8')"></span> (<a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> v, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> c, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a) => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondTree:Rep:9" class="instance expander" onclick="toggleSection('i:id:CondTree:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)</span> <a href="#t:CondTree" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondTree:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "CondTree" "Distribution.Types.CondTree" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CondNode" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condTreeData") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> a)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condTreeConstraints") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> c)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condTreeComponents") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a])))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CondBranch" class="def">CondBranch</a> v c a <a href="#t:CondBranch" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a></code> represents a conditional branch, e.g., <code>if+ flag(foo)</code> on some syntax <code>a</code>. It also has an optional false+ branch.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CondBranch" class="def">CondBranch</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:condBranchCondition" class="def">condBranchCondition</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condBranchIfTrue" class="def">condBranchIfTrue</a> :: <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condBranchIfFalse" class="def">condBranchIfFalse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:CondBranch" class="caption collapser" onclick="toggleSection('i:CondBranch')">Instances</p><div id="section.i:CondBranch" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondBranch:Functor:1" class="instance expander" onclick="toggleSection('i:id:CondBranch:Functor:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c)</span> <a href="#t:CondBranch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondBranch:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c b -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondBranch:Foldable:2" class="instance expander" onclick="toggleSection('i:id:CondBranch:Foldable:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Foldable">Foldable</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c)</span> <a href="#t:CondBranch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondBranch:Foldable:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fold">fold</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c m -> m <a href="#v:fold" class="selflink">#</a></p><p class="src"><a href="#v:foldMap">foldMap</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => (a -> m) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> m <a href="#v:foldMap" class="selflink">#</a></p><p class="src"><a href="#v:foldr">foldr</a> :: (a -> b -> b) -> b -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> b <a href="#v:foldr" class="selflink">#</a></p><p class="src"><a href="#v:foldr-39-">foldr'</a> :: (a -> b -> b) -> b -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> b <a href="#v:foldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldl">foldl</a> :: (b -> a -> b) -> b -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> b <a href="#v:foldl" class="selflink">#</a></p><p class="src"><a href="#v:foldl-39-">foldl'</a> :: (b -> a -> b) -> b -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> b <a href="#v:foldl-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr1">foldr1</a> :: (a -> a -> a) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> a <a href="#v:foldr1" class="selflink">#</a></p><p class="src"><a href="#v:foldl1">foldl1</a> :: (a -> a -> a) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> a <a href="#v:foldl1" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> [a] <a href="#v:toList" class="selflink">#</a></p><p class="src"><a href="#v:null">null</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:null" class="selflink">#</a></p><p class="src"><a href="#v:length">length</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:length" class="selflink">#</a></p><p class="src"><a href="#v:elem">elem</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:elem" class="selflink">#</a></p><p class="src"><a href="#v:maximum">maximum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> a <a href="#v:maximum" class="selflink">#</a></p><p class="src"><a href="#v:minimum">minimum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> a <a href="#v:minimum" class="selflink">#</a></p><p class="src"><a href="#v:sum">sum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> a <a href="#v:sum" class="selflink">#</a></p><p class="src"><a href="#v:product">product</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> a <a href="#v:product" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondBranch:Traversable:3" class="instance expander" onclick="toggleSection('i:id:CondBranch:Traversable:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Traversable</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c)</span> <a href="#t:CondBranch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondBranch:Traversable:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:traverse">traverse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => (a -> f b) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> f (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c b) <a href="#v:traverse" class="selflink">#</a></p><p class="src"><a href="#v:sequenceA">sequenceA</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c (f a) -> f (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) <a href="#v:sequenceA" class="selflink">#</a></p><p class="src"><a href="#v:mapM">mapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> m (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c b) <a href="#v:mapM" class="selflink">#</a></p><p class="src"><a href="#v:sequence">sequence</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c (m a) -> m (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) <a href="#v:sequence" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondBranch:Eq:4" class="instance expander" onclick="toggleSection('i:id:CondBranch:Eq:4')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> c, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a)</span> <a href="#t:CondBranch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondBranch:Eq:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondBranch:Data:5" class="instance expander" onclick="toggleSection('i:id:CondBranch:Data:5')"></span> (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> a, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> c, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> v) => <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a)</span> <a href="#t:CondBranch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondBranch:Data:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> c (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a)) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a)) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> m (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> m (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> m (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondBranch:Show:6" class="instance expander" onclick="toggleSection('i:id:CondBranch:Show:6')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> c, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> v) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a)</span> <a href="#t:CondBranch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondBranch:Show:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondBranch:Generic:7" class="instance expander" onclick="toggleSection('i:id:CondBranch:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a)</span> <a href="#t:CondBranch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondBranch:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) x -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondBranch:Binary:8" class="instance expander" onclick="toggleSection('i:id:CondBranch:Binary:8')"></span> (<a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> v, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> c, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a) => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a)</span> <a href="#t:CondBranch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondBranch:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CondBranch:Rep:9" class="instance expander" onclick="toggleSection('i:id:CondBranch:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a)</span> <a href="#t:CondBranch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CondBranch:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "CondBranch" "Distribution.Types.CondTree" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CondBranch" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condBranchCondition") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condBranchIfTrue") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condBranchIfFalse") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:condIfThen" class="def">condIfThen</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a <a href="#v:condIfThen" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:condIfThenElse" class="def">condIfThenElse</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondBranch">CondBranch</a> v c a <a href="#v:condIfThenElse" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mapCondTree" class="def">mapCondTree</a> :: (a -> b) -> (c -> d) -> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> w) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> w d b <a href="#v:mapCondTree" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mapTreeConstrs" class="def">mapTreeConstrs</a> :: (c -> d) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v d a <a href="#v:mapTreeConstrs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mapTreeConds" class="def">mapTreeConds</a> :: (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> w) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> w c a <a href="#v:mapTreeConds" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mapTreeData" class="def">mapTreeData</a> :: (a -> b) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c b <a href="#v:mapTreeData" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extractCondition" class="def">extractCondition</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v => (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v <a href="#v:extractCondition" class="selflink">#</a></p><div class="doc"><p>Extract the condition matched by the given predicate from a cond tree.</p><p>We use this mainly for extracting buildable conditions (see the Note above),+ but the function is in fact more general.</p></div></div><div class="top"><p class="src"><a id="v:simplifyCondTree" class="def">simplifyCondTree</a> :: (<a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> d) => (v -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> v <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v d a -> (d, a) <a href="#v:simplifyCondTree" class="selflink">#</a></p><div class="doc"><p>Flattens a CondTree using a partial flag assignment. When a condition+ cannot be evaluated, both branches are ignored.</p></div></div><div class="top"><p class="src"><a id="v:ignoreConditions" class="def">ignoreConditions</a> :: (<a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> a, <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> c) => <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> v c a -> (a, c) <a href="#v:ignoreConditions" class="selflink">#</a></p><div class="doc"><p>Flatten a CondTree. This will resolve the CondTree by taking all+ possible paths into account. Note that since branches represent exclusive+ choices this may not result in a "sane" result.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-Condition.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.Condition</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.Condition</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Condition">Condition</a> c<ul class="subs"><li>= <a href="#v:Var">Var</a> c</li><li>| <a href="#v:Lit">Lit</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li>| <a href="#v:CNot">CNot</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</li><li>| <a href="#v:COr">COr</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</li><li>| <a href="#v:CAnd">CAnd</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</li></ul></li><li class="src short"><a href="#v:cNot">cNot</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a</li><li class="src short"><a href="#v:cAnd">cAnd</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a</li><li class="src short"><a href="#v:cOr">cOr</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v => <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v</li><li class="src short"><a href="#v:simplifyCondition">simplifyCondition</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> (c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> d <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> d, [d])</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Condition" class="def">Condition</a> c <a href="#t:Condition" class="selflink">#</a></p><div class="doc"><p>A boolean expression parameterized over the variable type used.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Var" class="def">Var</a> c</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Lit" class="def">Lit</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CNot" class="def">CNot</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:COr" class="def">COr</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CAnd" class="def">CAnd</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Condition" class="caption collapser" onclick="toggleSection('i:Condition')">Instances</p><div id="section.i:Condition" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Monad:1" class="instance expander" onclick="toggleSection('i:id:Condition:Monad:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(>>=)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> (a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(>>)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Functor:2" class="instance expander" onclick="toggleSection('i:id:Condition:Functor:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Applicative:3" class="instance expander" onclick="toggleSection('i:id:Condition:Applicative:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Applicative:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(<*>)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> (a -> b) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -> b -> c) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*>)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(<*)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Foldable:4" class="instance expander" onclick="toggleSection('i:id:Condition:Foldable:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Foldable">Foldable</a> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Foldable:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fold">fold</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> m -> m <a href="#v:fold" class="selflink">#</a></p><p class="src"><a href="#v:foldMap">foldMap</a> :: <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> m => (a -> m) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> m <a href="#v:foldMap" class="selflink">#</a></p><p class="src"><a href="#v:foldr">foldr</a> :: (a -> b -> b) -> b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> b <a href="#v:foldr" class="selflink">#</a></p><p class="src"><a href="#v:foldr-39-">foldr'</a> :: (a -> b -> b) -> b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> b <a href="#v:foldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldl">foldl</a> :: (b -> a -> b) -> b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> b <a href="#v:foldl" class="selflink">#</a></p><p class="src"><a href="#v:foldl-39-">foldl'</a> :: (b -> a -> b) -> b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> b <a href="#v:foldl-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr1">foldr1</a> :: (a -> a -> a) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> a <a href="#v:foldr1" class="selflink">#</a></p><p class="src"><a href="#v:foldl1">foldl1</a> :: (a -> a -> a) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> a <a href="#v:foldl1" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> [a] <a href="#v:toList" class="selflink">#</a></p><p class="src"><a href="#v:null">null</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:null" class="selflink">#</a></p><p class="src"><a href="#v:length">length</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:length" class="selflink">#</a></p><p class="src"><a href="#v:elem">elem</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:elem" class="selflink">#</a></p><p class="src"><a href="#v:maximum">maximum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> a <a href="#v:maximum" class="selflink">#</a></p><p class="src"><a href="#v:minimum">minimum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> a <a href="#v:minimum" class="selflink">#</a></p><p class="src"><a href="#v:sum">sum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> a <a href="#v:sum" class="selflink">#</a></p><p class="src"><a href="#v:product">product</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a> a => <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> a <a href="#v:product" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Traversable:5" class="instance expander" onclick="toggleSection('i:id:Condition:Traversable:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Traversable</a> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Traversable:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:traverse">traverse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => (a -> f b) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> f (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b) <a href="#v:traverse" class="selflink">#</a></p><p class="src"><a href="#v:sequenceA">sequenceA</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f => <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> (f a) -> f (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a) <a href="#v:sequenceA" class="selflink">#</a></p><p class="src"><a href="#v:mapM">mapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> m (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> b) <a href="#v:mapM" class="selflink">#</a></p><p class="src"><a href="#v:sequence">sequence</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> (m a) -> m (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a) <a href="#v:sequence" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Alternative:6" class="instance expander" onclick="toggleSection('i:id:Condition:Alternative:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Alternative">Alternative</a> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Alternative:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(<|>)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:MonadPlus:7" class="instance expander" onclick="toggleSection('i:id:Condition:MonadPlus:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a></span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:MonadPlus:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:mplus" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Eq:8" class="instance expander" onclick="toggleSection('i:id:Condition:Eq:8')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> c => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Eq:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Data:9" class="instance expander" onclick="toggleSection('i:id:Condition:Data:9')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> c => <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Data:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> c (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> m (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> m (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> m (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Show:10" class="instance expander" onclick="toggleSection('i:id:Condition:Show:10')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> c => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Show:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Generic:11" class="instance expander" onclick="toggleSection('i:id:Condition:Generic:11')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Generic:11" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) x -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Semigroup:12" class="instance expander" onclick="toggleSection('i:id:Condition:Semigroup:12')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Semigroup:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a) -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Monoid:13" class="instance expander" onclick="toggleSection('i:id:Condition:Monoid:13')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Monoid:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a] -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Binary:14" class="instance expander" onclick="toggleSection('i:id:Condition:Binary:14')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> c => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Binary:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Condition:Rep:15" class="instance expander" onclick="toggleSection('i:id:Condition:Rep:15')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)</span> <a href="#t:Condition" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Condition:Rep:15" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c) = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Condition" "Distribution.Types.Condition" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Var" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> c))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Lit" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CNot" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "COr" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CAnd" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:cNot" class="def">cNot</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:cNot" class="selflink">#</a></p><div class="doc"><p>Boolean negation of a <code><a href="Distribution-Types-Condition.html#t:Condition">Condition</a></code> value.</p></div></div><div class="top"><p class="src"><a id="v:cAnd" class="def">cAnd</a> :: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> a <a href="#v:cAnd" class="selflink">#</a></p><div class="doc"><p>Boolean AND of two <code>Condtion</code> values.</p></div></div><div class="top"><p class="src"><a id="v:cOr" class="def">cOr</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> v => <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v -> <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> v <a href="#v:cOr" class="selflink">#</a></p><div class="doc"><p>Boolean OR of two <code><a href="Distribution-Types-Condition.html#t:Condition">Condition</a></code> values.</p></div></div><div class="top"><p class="src"><a id="v:simplifyCondition" class="def">simplifyCondition</a> <a href="#v:simplifyCondition" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-Condition.html#t:Condition">Condition</a> c</td><td class="doc empty"> </td></tr><tr><td class="src">-> (c -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> d <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)</td><td class="doc"><p>(partial) variable assignment</p></td></tr><tr><td class="src">-> (<a href="Distribution-Types-Condition.html#t:Condition">Condition</a> d, [d])</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Simplify the condition and return its free variables.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-Dependency.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.Dependency</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.Dependency</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Dependency">Dependency</a> = <a href="#v:Dependency">Dependency</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:depPkgName">depPkgName</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></li><li class="src short"><a href="#v:depVerRange">depVerRange</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:thisPackageVersion">thisPackageVersion</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></li><li class="src short"><a href="#v:notThisPackageVersion">notThisPackageVersion</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></li><li class="src short"><a href="#v:simplifyDependency">simplifyDependency</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Dependency" class="def">Dependency</a> <a href="#t:Dependency" class="selflink">#</a></p><div class="doc"><p>Describes a dependency on a source package (API)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Dependency" class="def">Dependency</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Dependency" class="caption collapser" onclick="toggleSection('i:Dependency')">Instances</p><div id="section.i:Dependency" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Dependency:Eq:1" class="instance expander" onclick="toggleSection('i:id:Dependency:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Dependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Dependency:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Dependency:Data:2" class="instance expander" onclick="toggleSection('i:id:Dependency:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Dependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Dependency:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> c <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> m <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> m <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> m <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Dependency:Read:3" class="instance expander" onclick="toggleSection('i:id:Dependency:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Dependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Dependency:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Dependency:Show:4" class="instance expander" onclick="toggleSection('i:id:Dependency:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Dependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Dependency:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Dependency:Generic:5" class="instance expander" onclick="toggleSection('i:id:Dependency:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Dependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Dependency:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> x -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Dependency:Binary:6" class="instance expander" onclick="toggleSection('i:id:Dependency:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Dependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Dependency:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Dependency:NFData:7" class="instance expander" onclick="toggleSection('i:id:Dependency:NFData:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Dependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Dependency:NFData:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Dependency:Text:8" class="instance expander" onclick="toggleSection('i:id:Dependency:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Dependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Dependency:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Dependency:Rep:9" class="instance expander" onclick="toggleSection('i:id:Dependency:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></span> <a href="#t:Dependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Dependency:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Dependency" "Distribution.Types.Dependency" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Dependency" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:depPkgName" class="def">depPkgName</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:depPkgName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:depVerRange" class="def">depVerRange</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:depVerRange" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:thisPackageVersion" class="def">thisPackageVersion</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:thisPackageVersion" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:notThisPackageVersion" class="def">notThisPackageVersion</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:notThisPackageVersion" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:simplifyDependency" class="def">simplifyDependency</a> :: <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> -> <a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a> <a href="#v:simplifyDependency" class="selflink">#</a></p><div class="doc"><p>Simplify the <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> expression in a <code><a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a></code>.+ See <code><a href="Distribution-Version.html#v:simplifyVersionRange">simplifyVersionRange</a></code>.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-DependencyMap.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.DependencyMap</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.DependencyMap</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:DependencyMap">DependencyMap</a></li><li class="src short"><a href="#v:toDepMap">toDepMap</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></li><li class="src short"><a href="#v:fromDepMap">fromDepMap</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</li><li class="src short"><a href="#v:constrainBy">constrainBy</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DependencyMap" class="def">DependencyMap</a> <a href="#t:DependencyMap" class="selflink">#</a></p><div class="doc"><p>A map of dependencies. Newtyped since the default monoid instance is not+ appropriate. The monoid instance uses <code><a href="Distribution-Version.html#v:intersectVersionRanges">intersectVersionRanges</a></code>.</p></div><div class="subs instances"><p id="control.i:DependencyMap" class="caption collapser" onclick="toggleSection('i:DependencyMap')">Instances</p><div id="section.i:DependencyMap" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DependencyMap:Read:1" class="instance expander" onclick="toggleSection('i:id:DependencyMap:Read:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></span> <a href="#t:DependencyMap" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DependencyMap:Read:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DependencyMap:Show:2" class="instance expander" onclick="toggleSection('i:id:DependencyMap:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></span> <a href="#t:DependencyMap" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DependencyMap:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DependencyMap:Semigroup:3" class="instance expander" onclick="toggleSection('i:id:DependencyMap:Semigroup:3')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></span> <a href="#t:DependencyMap" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DependencyMap:Semigroup:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DependencyMap:Monoid:4" class="instance expander" onclick="toggleSection('i:id:DependencyMap:Monoid:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></span> <a href="#t:DependencyMap" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DependencyMap:Monoid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a>] -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:toDepMap" class="def">toDepMap</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] -> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> <a href="#v:toDepMap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:fromDepMap" class="def">fromDepMap</a> :: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a> -> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="#v:fromDepMap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:constrainBy" class="def">constrainBy</a> <a href="#v:constrainBy" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></td><td class="doc"><p>Input map</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></td><td class="doc"><p>Extra constraints</p></td></tr><tr><td class="src">-> <a href="Distribution-Types-DependencyMap.html#t:DependencyMap">DependencyMap</a></td><td class="doc empty"> </td></tr></table></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ExeDependency.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ExeDependency</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ExeDependency</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ExeDependency">ExeDependency</a> = <a href="#v:ExeDependency">ExeDependency</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:qualifiedExeName">qualifiedExeName</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ExeDependency" class="def">ExeDependency</a> <a href="#t:ExeDependency" class="selflink">#</a></p><div class="doc"><p>Describes a dependency on an executable from a package</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ExeDependency" class="def">ExeDependency</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ExeDependency" class="caption collapser" onclick="toggleSection('i:ExeDependency')">Instances</p><div id="section.i:ExeDependency" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExeDependency:Eq:1" class="instance expander" onclick="toggleSection('i:id:ExeDependency:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:ExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExeDependency:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExeDependency:Data:2" class="instance expander" onclick="toggleSection('i:id:ExeDependency:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:ExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExeDependency:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> c <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> m <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> m <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> m <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExeDependency:Read:3" class="instance expander" onclick="toggleSection('i:id:ExeDependency:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:ExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExeDependency:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExeDependency:Show:4" class="instance expander" onclick="toggleSection('i:id:ExeDependency:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:ExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExeDependency:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExeDependency:Generic:5" class="instance expander" onclick="toggleSection('i:id:ExeDependency:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:ExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExeDependency:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> x -> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExeDependency:Binary:6" class="instance expander" onclick="toggleSection('i:id:ExeDependency:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:ExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExeDependency:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExeDependency:NFData:7" class="instance expander" onclick="toggleSection('i:id:ExeDependency:NFData:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:ExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExeDependency:NFData:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExeDependency:Text:8" class="instance expander" onclick="toggleSection('i:id:ExeDependency:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:ExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExeDependency:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExeDependency:Rep:9" class="instance expander" onclick="toggleSection('i:id:ExeDependency:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a></span> <a href="#t:ExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExeDependency:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ExeDependency" "Distribution.Types.ExeDependency" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExeDependency" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:qualifiedExeName" class="def">qualifiedExeName</a> :: <a href="Distribution-Types-ExeDependency.html#t:ExeDependency">ExeDependency</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> <a href="#v:qualifiedExeName" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-Executable.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.Executable</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.Executable</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Executable">Executable</a> = <a href="#v:Executable">Executable</a> {<ul class="subs"><li><a href="#v:exeName">exeName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:modulePath">modulePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:exeScope">exeScope</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></li><li><a href="#v:buildInfo">buildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><a href="#v:emptyExecutable">emptyExecutable</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></li><li class="src short"><a href="#v:exeModules">exeModules</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:exeModulesAutogen">exeModulesAutogen</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Executable" class="def">Executable</a> <a href="#t:Executable" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Executable" class="def">Executable</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:exeName" class="def">exeName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:modulePath" class="def">modulePath</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:exeScope" class="def">exeScope</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:buildInfo" class="def">buildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Executable" class="caption collapser" onclick="toggleSection('i:Executable')">Instances</p><div id="section.i:Executable" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Eq:1" class="instance expander" onclick="toggleSection('i:id:Executable:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Data:2" class="instance expander" onclick="toggleSection('i:id:Executable:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> c <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Executable.html#t:Executable">Executable</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Executable.html#t:Executable">Executable</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> m <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> m <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> m <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Read:3" class="instance expander" onclick="toggleSection('i:id:Executable:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Show:4" class="instance expander" onclick="toggleSection('i:id:Executable:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Generic:5" class="instance expander" onclick="toggleSection('i:id:Executable:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> x -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:Executable:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Monoid:7" class="instance expander" onclick="toggleSection('i:id:Executable:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>] -> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Binary:8" class="instance expander" onclick="toggleSection('i:id:Executable:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Executable:Rep:9" class="instance expander" onclick="toggleSection('i:id:Executable:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a></span> <a href="#t:Executable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Executable:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Executable" "Distribution.Types.Executable" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Executable" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exeName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "modulePath") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exeScope") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyExecutable" class="def">emptyExecutable</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> <a href="#v:emptyExecutable" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:exeModules" class="def">exeModules</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:exeModules" class="selflink">#</a></p><div class="doc"><p>Get all the module names from an exe</p></div></div><div class="top"><p class="src"><a id="v:exeModulesAutogen" class="def">exeModulesAutogen</a> :: <a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:exeModulesAutogen" class="selflink">#</a></p><div class="doc"><p>Get all the auto generated module names from an exe+ This are a subset of <code><a href="Distribution-Types-Executable.html#v:exeModules">exeModules</a></code>.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ExecutableScope.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ExecutableScope</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ExecutableScope</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ExecutableScope" class="def">ExecutableScope</a> <a href="#t:ExecutableScope" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ExecutableScopeUnknown" class="def">ExecutableScopeUnknown</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ExecutablePublic" class="def">ExecutablePublic</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ExecutablePrivate" class="def">ExecutablePrivate</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ExecutableScope" class="caption collapser" onclick="toggleSection('i:ExecutableScope')">Instances</p><div id="section.i:ExecutableScope" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Eq:1" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Data:2" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> c <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> m <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> m <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> m <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Read:3" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Show:4" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Generic:5" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> x -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Monoid:7" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>] -> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Binary:8" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Text:9" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExecutableScope:Rep:10" class="instance expander" onclick="toggleSection('i:id:ExecutableScope:Rep:10')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a></span> <a href="#t:ExecutableScope" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ExecutableScope:Rep:10" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">ExecutableScope</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ExecutableScope" "Distribution.Types.ExecutableScope" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExecutableScopeUnknown" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExecutablePublic" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExecutablePrivate" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ForeignLib.html view
@@ -0,0 +1,17 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ForeignLib</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ForeignLib</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ForeignLib">ForeignLib</a> = <a href="#v:ForeignLib">ForeignLib</a> {<ul class="subs"><li><a href="#v:foreignLibName">foreignLibName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:foreignLibType">foreignLibType</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></li><li><a href="#v:foreignLibOptions">foreignLibOptions</a> :: [<a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a>]</li><li><a href="#v:foreignLibBuildInfo">foreignLibBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li><li><a href="#v:foreignLibVersionInfo">foreignLibVersionInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></li><li><a href="#v:foreignLibVersionLinux">foreignLibVersionLinux</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li><a href="#v:foreignLibModDefFile">foreignLibModDefFile</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyForeignLib">emptyForeignLib</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></li><li class="src short"><a href="#v:foreignLibModules">foreignLibModules</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:foreignLibIsShared">foreignLibIsShared</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:foreignLibVersion">foreignLibVersion</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:LibVersionInfo">LibVersionInfo</a></li><li class="src short"><a href="#v:mkLibVersionInfo">mkLibVersionInfo</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></li><li class="src short"><a href="#v:libVersionInfoCRA">libVersionInfoCRA</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)</li><li class="src short"><a href="#v:libVersionNumber">libVersionNumber</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)</li><li class="src short"><a href="#v:libVersionNumberShow">libVersionNumberShow</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:libVersionMajor">libVersionMajor</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ForeignLib" class="def">ForeignLib</a> <a href="#t:ForeignLib" class="selflink">#</a></p><div class="doc"><p>A foreign library stanza is like a library stanza, except that+ the built code is intended for consumption by a non-Haskell client.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ForeignLib" class="def">ForeignLib</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:foreignLibName" class="def">foreignLibName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc"><p>Name of the foreign library</p></div></li><li><dfn class="src"><a id="v:foreignLibType" class="def">foreignLibType</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></dfn><div class="doc"><p>What kind of foreign library is this (static or dynamic).</p></div></li><li><dfn class="src"><a id="v:foreignLibOptions" class="def">foreignLibOptions</a> :: [<a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a>]</dfn><div class="doc"><p>What options apply to this foreign library (e.g., are we+ merging in all foreign dependencies.)</p></div></li><li><dfn class="src"><a id="v:foreignLibBuildInfo" class="def">foreignLibBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc"><p>Build information for this foreign library.</p></div></li><li><dfn class="src"><a id="v:foreignLibVersionInfo" class="def">foreignLibVersionInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></dfn><div class="doc"><p>Libtool-style version-info data to compute library version.+ Refer to the libtool documentation on the+ current:revision:age versioning scheme.</p></div></li><li><dfn class="src"><a id="v:foreignLibVersionLinux" class="def">foreignLibVersionLinux</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></dfn><div class="doc"><p>Linux library version</p></div></li><li><dfn class="src"><a id="v:foreignLibModDefFile" class="def">foreignLibModDefFile</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc"><p>(Windows-specific) module definition files</p><p>This is a list rather than a maybe field so that we can flatten+ the condition trees (for instance, when creating an sdist)</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ForeignLib" class="caption collapser" onclick="toggleSection('i:ForeignLib')">Instances</p><div id="section.i:ForeignLib" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLib:Eq:1" class="instance expander" onclick="toggleSection('i:id:ForeignLib:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:ForeignLib" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLib:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLib:Data:2" class="instance expander" onclick="toggleSection('i:id:ForeignLib:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:ForeignLib" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLib:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> c <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> m <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> m <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> m <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLib:Read:3" class="instance expander" onclick="toggleSection('i:id:ForeignLib:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:ForeignLib" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLib:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLib:Show:4" class="instance expander" onclick="toggleSection('i:id:ForeignLib:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:ForeignLib" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLib:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLib:Generic:5" class="instance expander" onclick="toggleSection('i:id:ForeignLib:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:ForeignLib" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLib:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> x -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLib:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:ForeignLib:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:ForeignLib" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLib:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLib:Monoid:7" class="instance expander" onclick="toggleSection('i:id:ForeignLib:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:ForeignLib" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLib:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>] -> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLib:Binary:8" class="instance expander" onclick="toggleSection('i:id:ForeignLib:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:ForeignLib" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLib:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLib:Rep:9" class="instance expander" onclick="toggleSection('i:id:ForeignLib:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></span> <a href="#t:ForeignLib" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLib:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ForeignLib" "Distribution.Types.ForeignLib" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ForeignLib" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "foreignLibName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "foreignLibType") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "foreignLibOptions") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "foreignLibBuildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "foreignLibVersionInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "foreignLibVersionLinux") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "foreignLibModDefFile") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyForeignLib" class="def">emptyForeignLib</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> <a href="#v:emptyForeignLib" class="selflink">#</a></p><div class="doc"><p>An empty foreign library.</p></div></div><div class="top"><p class="src"><a id="v:foreignLibModules" class="def">foreignLibModules</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:foreignLibModules" class="selflink">#</a></p><div class="doc"><p>Modules defined by a foreign library.</p></div></div><div class="top"><p class="src"><a id="v:foreignLibIsShared" class="def">foreignLibIsShared</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:foreignLibIsShared" class="selflink">#</a></p><div class="doc"><p>Is the foreign library shared?</p></div></div><div class="top"><p class="src"><a id="v:foreignLibVersion" class="def">foreignLibVersion</a> :: <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-System.html#t:OS">OS</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>] <a href="#v:foreignLibVersion" class="selflink">#</a></p><div class="doc"><p>Get a version number for a foreign library.+ If we're on Linux, and a Linux version is specified, use that.+ If we're on Linux, and libtool-style version-info is specified, translate+ that field into appropriate version numbers.+ Otherwise, this feature is unsupported so we don't return any version data.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LibVersionInfo" class="def">LibVersionInfo</a> <a href="#t:LibVersionInfo" class="selflink">#</a></p><div class="subs instances"><p id="control.i:LibVersionInfo" class="caption collapser" onclick="toggleSection('i:LibVersionInfo')">Instances</p><div id="section.i:LibVersionInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LibVersionInfo:Eq:1" class="instance expander" onclick="toggleSection('i:id:LibVersionInfo:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:LibVersionInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LibVersionInfo:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LibVersionInfo:Data:2" class="instance expander" onclick="toggleSection('i:id:LibVersionInfo:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:LibVersionInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LibVersionInfo:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> c <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> m <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> m <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> m <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LibVersionInfo:Ord:3" class="instance expander" onclick="toggleSection('i:id:LibVersionInfo:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:LibVersionInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LibVersionInfo:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LibVersionInfo:Read:4" class="instance expander" onclick="toggleSection('i:id:LibVersionInfo:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:LibVersionInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LibVersionInfo:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LibVersionInfo:Show:5" class="instance expander" onclick="toggleSection('i:id:LibVersionInfo:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:LibVersionInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LibVersionInfo:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LibVersionInfo:Generic:6" class="instance expander" onclick="toggleSection('i:id:LibVersionInfo:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:LibVersionInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LibVersionInfo:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> x -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LibVersionInfo:Binary:7" class="instance expander" onclick="toggleSection('i:id:LibVersionInfo:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:LibVersionInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LibVersionInfo:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LibVersionInfo:Text:8" class="instance expander" onclick="toggleSection('i:id:LibVersionInfo:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:LibVersionInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LibVersionInfo:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LibVersionInfo:Rep:9" class="instance expander" onclick="toggleSection('i:id:LibVersionInfo:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></span> <a href="#t:LibVersionInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LibVersionInfo:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "LibVersionInfo" "Distribution.Types.ForeignLib" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LibVersionInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:mkLibVersionInfo" class="def">mkLibVersionInfo</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) -> <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> <a href="#v:mkLibVersionInfo" class="selflink">#</a></p><div class="doc"><p>Construct <code><a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></code> from <code>(current, revision, age)</code>+ numbers.</p><p>For instance, <code>mkLibVersionInfo (3,0,0)</code> constructs a+ <code><a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></code> representing the version-info <code>3:0:0</code>.</p><p>All version components must be non-negative.</p></div></div><div class="top"><p class="src"><a id="v:libVersionInfoCRA" class="def">libVersionInfoCRA</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) <a href="#v:libVersionInfoCRA" class="selflink">#</a></p><div class="doc"><p>From a given <code><a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a></code>, extract the <code>(current, revision,+ age)</code> numbers.</p></div></div><div class="top"><p class="src"><a id="v:libVersionNumber" class="def">libVersionNumber</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>) <a href="#v:libVersionNumber" class="selflink">#</a></p><div class="doc"><p>Given a version-info field, produce a <code>major.minor.build</code> version</p></div></div><div class="top"><p class="src"><a id="v:libVersionNumberShow" class="def">libVersionNumberShow</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:libVersionNumberShow" class="selflink">#</a></p><div class="doc"><p>Given a version-info field, return <code>"major.minor.build"</code> as a+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p></div></div><div class="top"><p class="src"><a id="v:libVersionMajor" class="def">libVersionMajor</a> :: <a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">LibVersionInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:libVersionMajor" class="selflink">#</a></p><div class="doc"><p>Return the <code>major</code> version of a version-info field.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ForeignLibOption.html view
@@ -0,0 +1,8 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ForeignLibOption</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ForeignLibOption</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ForeignLibOption" class="def">ForeignLibOption</a> <a href="#t:ForeignLibOption" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ForeignLibStandalone" class="def">ForeignLibStandalone</a></td><td class="doc"><p>Merge in all dependent libraries (i.e., use+ <code>ghc -shared -static</code> rather than just record+ the dependencies, ala <code>ghc -shared -dynamic</code>).+ This option is compulsory on Windows and unsupported+ on other platforms.</p></td></tr></table></div><div class="subs instances"><p id="control.i:ForeignLibOption" class="caption collapser" onclick="toggleSection('i:ForeignLibOption')">Instances</p><div id="section.i:ForeignLibOption" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibOption:Eq:1" class="instance expander" onclick="toggleSection('i:id:ForeignLibOption:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a></span> <a href="#t:ForeignLibOption" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibOption:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibOption:Data:2" class="instance expander" onclick="toggleSection('i:id:ForeignLibOption:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a></span> <a href="#t:ForeignLibOption" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibOption:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> c <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> m <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> m <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> m <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibOption:Read:3" class="instance expander" onclick="toggleSection('i:id:ForeignLibOption:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a></span> <a href="#t:ForeignLibOption" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibOption:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibOption:Show:4" class="instance expander" onclick="toggleSection('i:id:ForeignLibOption:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a></span> <a href="#t:ForeignLibOption" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibOption:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibOption:Generic:5" class="instance expander" onclick="toggleSection('i:id:ForeignLibOption:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a></span> <a href="#t:ForeignLibOption" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibOption:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> x -> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibOption:Binary:6" class="instance expander" onclick="toggleSection('i:id:ForeignLibOption:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a></span> <a href="#t:ForeignLibOption" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibOption:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibOption:Text:7" class="instance expander" onclick="toggleSection('i:id:ForeignLibOption:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a></span> <a href="#t:ForeignLibOption" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibOption:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibOption:Rep:8" class="instance expander" onclick="toggleSection('i:id:ForeignLibOption:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a></span> <a href="#t:ForeignLibOption" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibOption:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">ForeignLibOption</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ForeignLibOption" "Distribution.Types.ForeignLibOption" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ForeignLibStandalone" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ForeignLibType.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ForeignLibType</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ForeignLibType</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ForeignLibType">ForeignLibType</a><ul class="subs"><li>= <a href="#v:ForeignLibNativeShared">ForeignLibNativeShared</a></li><li>| <a href="#v:ForeignLibNativeStatic">ForeignLibNativeStatic</a></li><li>| <a href="#v:ForeignLibTypeUnknown">ForeignLibTypeUnknown</a></li></ul></li><li class="src short"><a href="#v:knownForeignLibTypes">knownForeignLibTypes</a> :: [<a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>]</li><li class="src short"><a href="#v:foreignLibTypeIsShared">foreignLibTypeIsShared</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ForeignLibType" class="def">ForeignLibType</a> <a href="#t:ForeignLibType" class="selflink">#</a></p><div class="doc"><p>What kind of foreign library is to be built?</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ForeignLibNativeShared" class="def">ForeignLibNativeShared</a></td><td class="doc"><p>A native shared library (<code>.so</code> on Linux, <code>.dylib</code> on OSX, or+ <code>.dll</code> on Windows).</p></td></tr><tr><td class="src"><a id="v:ForeignLibNativeStatic" class="def">ForeignLibNativeStatic</a></td><td class="doc"><p>A native static library (not currently supported.)</p></td></tr><tr><td class="src"><a id="v:ForeignLibTypeUnknown" class="def">ForeignLibTypeUnknown</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ForeignLibType" class="caption collapser" onclick="toggleSection('i:ForeignLibType')">Instances</p><div id="section.i:ForeignLibType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Eq:1" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Data:2" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> c <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> m <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> m <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> m <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Read:3" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Show:4" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Generic:5" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> x -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Monoid:7" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>] -> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Binary:8" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Text:9" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ForeignLibType:Rep:10" class="instance expander" onclick="toggleSection('i:id:ForeignLibType:Rep:10')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a></span> <a href="#t:ForeignLibType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ForeignLibType:Rep:10" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ForeignLibType" "Distribution.Types.ForeignLibType" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ForeignLibNativeShared" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ForeignLibNativeStatic" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ForeignLibTypeUnknown" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownForeignLibTypes" class="def">knownForeignLibTypes</a> :: [<a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a>] <a href="#v:knownForeignLibTypes" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:foreignLibTypeIsShared" class="def">foreignLibTypeIsShared</a> :: <a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">ForeignLibType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:foreignLibTypeIsShared" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-GenericPackageDescription.html view
@@ -0,0 +1,9 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.GenericPackageDescription</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.GenericPackageDescription</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:GenericPackageDescription">GenericPackageDescription</a> = <a href="#v:GenericPackageDescription">GenericPackageDescription</a> {<ul class="subs"><li><a href="#v:packageDescription">packageDescription</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li><a href="#v:genPackageFlags">genPackageFlags</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a>]</li><li><a href="#v:condLibrary">condLibrary</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Library.html#t:Library">Library</a>)</li><li><a href="#v:condSubLibraries">condSubLibraries</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Library.html#t:Library">Library</a>)]</li><li><a href="#v:condForeignLibs">condForeignLibs</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>)]</li><li><a href="#v:condExecutables">condExecutables</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Executable.html#t:Executable">Executable</a>)]</li><li><a href="#v:condTestSuites">condTestSuites</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>)]</li><li><a href="#v:condBenchmarks">condBenchmarks</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>)]</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:Flag">Flag</a> = <a href="#v:MkFlag">MkFlag</a> {<ul class="subs"><li><a href="#v:flagName">flagName</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></li><li><a href="#v:flagDescription">flagDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:flagDefault">flagDefault</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:flagManual">flagManual</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:emptyFlag">emptyFlag</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:FlagName">FlagName</a></li><li class="src short"><a href="#v:mkFlagName">mkFlagName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></li><li class="src short"><a href="#v:unFlagName">unFlagName</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:FlagAssignment">FlagAssignment</a> = [(<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)]</li><li class="src short"><a href="#v:showFlagValue">showFlagValue</a> :: (<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:dispFlagAssignment">dispFlagAssignment</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:parseFlagAssignment">parseFlagAssignment</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ConfVar">ConfVar</a><ul class="subs"><li>= <a href="#v:OS">OS</a> <a href="Distribution-System.html#t:OS">OS</a></li><li>| <a href="#v:Arch">Arch</a> <a href="Distribution-System.html#t:Arch">Arch</a></li><li>| <a href="#v:Flag">Flag</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></li><li>| <a href="#v:Impl">Impl</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GenericPackageDescription" class="def">GenericPackageDescription</a> <a href="#t:GenericPackageDescription" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:GenericPackageDescription" class="def">GenericPackageDescription</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:packageDescription" class="def">packageDescription</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:genPackageFlags" class="def">genPackageFlags</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condLibrary" class="def">condLibrary</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Library.html#t:Library">Library</a>)</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condSubLibraries" class="def">condSubLibraries</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Library.html#t:Library">Library</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condForeignLibs" class="def">condForeignLibs</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condExecutables" class="def">condExecutables</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Executable.html#t:Executable">Executable</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condTestSuites" class="def">condTestSuites</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:condBenchmarks" class="def">condBenchmarks</a> :: [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>)]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:GenericPackageDescription" class="caption collapser" onclick="toggleSection('i:GenericPackageDescription')">Instances</p><div id="section.i:GenericPackageDescription" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Eq:1" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Data:2" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> c <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Show:3" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Generic:4" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> x -> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Binary:5" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Package:6" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Package:6')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Package:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:GenericPackageDescription:Rep:7" class="instance expander" onclick="toggleSection('i:id:GenericPackageDescription:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a></span> <a href="#t:GenericPackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:GenericPackageDescription:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">GenericPackageDescription</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "GenericPackageDescription" "Distribution.Types.GenericPackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GenericPackageDescription" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "packageDescription") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "genPackageFlags") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condLibrary") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Library.html#t:Library">Library</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condSubLibraries") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Library.html#t:Library">Library</a>)])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condForeignLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condExecutables") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Executable.html#t:Executable">Executable</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condTestSuites") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "condBenchmarks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-CondTree.html#t:CondTree">CondTree</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>] <a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>)]))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Flag" class="def">Flag</a> <a href="#t:Flag" class="selflink">#</a></p><div class="doc"><p>A flag can represent a feature to be included, or a way of linking+ a target against its dependencies, or in fact whatever you can think of.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:MkFlag" class="def">MkFlag</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:flagName" class="def">flagName</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:flagDescription" class="def">flagDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:flagDefault" class="def">flagDefault</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:flagManual" class="def">flagManual</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Flag" class="caption collapser" onclick="toggleSection('i:Flag')">Instances</p><div id="section.i:Flag" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Eq:1" class="instance expander" onclick="toggleSection('i:id:Flag:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Data:2" class="instance expander" onclick="toggleSection('i:id:Flag:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> c <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Show:3" class="instance expander" onclick="toggleSection('i:id:Flag:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Generic:4" class="instance expander" onclick="toggleSection('i:id:Flag:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> x -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Binary:5" class="instance expander" onclick="toggleSection('i:id:Flag:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Flag:Rep:6" class="instance expander" onclick="toggleSection('i:id:Flag:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a></span> <a href="#t:Flag" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Flag:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Flag" "Distribution.Types.GenericPackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MkFlag" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagDescription") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagDefault") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagManual") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyFlag" class="def">emptyFlag</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a> <a href="#v:emptyFlag" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Flag</a></code> initialized with default parameters.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:FlagName" class="def">FlagName</a> <a href="#t:FlagName" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></code> is the name of a user-defined configuration flag</p><p>Use <code><a href="Distribution-Types-GenericPackageDescription.html#v:mkFlagName">mkFlagName</a></code> and <code><a href="Distribution-Types-GenericPackageDescription.html#v:unFlagName">unFlagName</a></code> to convert from/to a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code>.</p><p>This type is opaque since <code>Cabal-2.0</code></p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:FlagName" class="caption collapser" onclick="toggleSection('i:FlagName')">Instances</p><div id="section.i:FlagName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Eq:1" class="instance expander" onclick="toggleSection('i:id:FlagName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Data:2" class="instance expander" onclick="toggleSection('i:id:FlagName:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> c <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Ord:3" class="instance expander" onclick="toggleSection('i:id:FlagName:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Read:4" class="instance expander" onclick="toggleSection('i:id:FlagName:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Show:5" class="instance expander" onclick="toggleSection('i:id:FlagName:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:IsString:6" class="instance expander" onclick="toggleSection('i:id:FlagName:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc"><p><code><a href="Distribution-Types-GenericPackageDescription.html#v:mkFlagName">mkFlagName</a></code></p><p><em>Since: 2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Generic:7" class="instance expander" onclick="toggleSection('i:id:FlagName:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> x -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Binary:8" class="instance expander" onclick="toggleSection('i:id:FlagName:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:FlagName:Rep:9" class="instance expander" onclick="toggleSection('i:id:FlagName:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></span> <a href="#t:FlagName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:FlagName:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "FlagName" "Distribution.Types.GenericPackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FlagName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:mkFlagName" class="def">mkFlagName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> <a href="#v:mkFlagName" class="selflink">#</a></p><div class="doc"><p>Construct a <code><a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></code> from a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><code><a href="Distribution-Types-GenericPackageDescription.html#v:mkFlagName">mkFlagName</a></code> is the inverse to <code><a href="Distribution-Types-GenericPackageDescription.html#v:unFlagName">unFlagName</a></code></p><p>Note: No validations are performed to ensure that the resulting+ <code><a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></code> is valid</p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:unFlagName" class="def">unFlagName</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unFlagName" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></code> to <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:FlagAssignment" class="def">FlagAssignment</a> = [(<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)] <a href="#t:FlagAssignment" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></code> is a total or partial mapping of <code><a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></code>s to+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></code> flag values. It represents the flags chosen by the user or+ discovered during configuration. For example <code>--flags=foo --flags=-bar</code>+ becomes <code>[("foo", True), ("bar", False)]</code></p></div></div><div class="top"><p class="src"><a id="v:showFlagValue" class="def">showFlagValue</a> :: (<a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showFlagValue" class="selflink">#</a></p><div class="doc"><p>String representation of a flag-value pair.</p></div></div><div class="top"><p class="src"><a id="v:dispFlagAssignment" class="def">dispFlagAssignment</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:dispFlagAssignment" class="selflink">#</a></p><div class="doc"><p>Pretty-prints a flag assignment.</p></div></div><div class="top"><p class="src"><a id="v:parseFlagAssignment" class="def">parseFlagAssignment</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a> <a href="#v:parseFlagAssignment" class="selflink">#</a></p><div class="doc"><p>Parses a flag assignment.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ConfVar" class="def">ConfVar</a> <a href="#t:ConfVar" class="selflink">#</a></p><div class="doc"><p>A <code>ConfVar</code> represents the variable type used.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:OS" class="def">OS</a> <a href="Distribution-System.html#t:OS">OS</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Arch" class="def">Arch</a> <a href="Distribution-System.html#t:Arch">Arch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Flag" class="def">Flag</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Impl" class="def">Impl</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ConfVar" class="caption collapser" onclick="toggleSection('i:ConfVar')">Instances</p><div id="section.i:ConfVar" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Eq:1" class="instance expander" onclick="toggleSection('i:id:ConfVar:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Data:2" class="instance expander" onclick="toggleSection('i:id:ConfVar:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> c <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> m <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Show:3" class="instance expander" onclick="toggleSection('i:id:ConfVar:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Generic:4" class="instance expander" onclick="toggleSection('i:id:ConfVar:Generic:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Generic:4" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> x -> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Binary:5" class="instance expander" onclick="toggleSection('i:id:ConfVar:Binary:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Binary:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ConfVar:Rep:6" class="instance expander" onclick="toggleSection('i:id:ConfVar:Rep:6')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a></span> <a href="#t:ConfVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ConfVar:Rep:6" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">ConfVar</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ConfVar" "Distribution.Types.GenericPackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OS" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-System.html#t:OS">OS</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Arch" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-System.html#t:Arch">Arch</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Flag" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">FlagName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Impl" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>))))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-HookedBuildInfo.html view
@@ -0,0 +1,41 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.HookedBuildInfo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.HookedBuildInfo</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:HookedBuildInfo">HookedBuildInfo</a> = (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>, [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>)])</li><li class="src short"><a href="#v:emptyHookedBuildInfo">emptyHookedBuildInfo</a> :: <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:HookedBuildInfo" class="def">HookedBuildInfo</a> = (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>, [(<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>, <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>)]) <a href="#t:HookedBuildInfo" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is mechanism that hooks can use to+ override the <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code>s inside packages. One example+ use-case (which is used in core libraries today) is as+ a way of passing flags which are computed by a configure+ script into Cabal. In this case, the autoconf build type adds+ hooks to read in a textual <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> format prior+ to doing any operations.</p><p>Quite honestly, this mechanism is a massive hack since we shouldn't+ be editing the <code>PackageDescription</code> data structure (it's easy+ to assume that this data structure shouldn't change and+ run into bugs, see for example 1c20a6328579af9e37677d507e2e9836ef70ab9d).+ But it's a bit convenient, because there isn't another data+ structure that allows adding extra <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> style things.</p><p>In any case, a lot of care has to be taken to make sure the+ <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is applied to the <code>PackageDescription</code>. In+ general this process occurs in <a href="Distribution-Simple.html">Distribution.Simple</a>, which is+ responsible for orchestrating the hooks mechanism. The+ general strategy:</p><ol><li>We run the pre-hook, which produces a <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code>+ (e.g., in the Autoconf case, it reads it out from a file).</li><li>We sanity-check the hooked build info with+ <code>sanityCheckHookedBuildInfo</code>.</li><li>We update our <code>PackageDescription</code> (either freshly read+ or cached from <code>LocalBuildInfo</code>) with <code>updatePackageDescription</code>.</li></ol><p>In principle, we are also supposed to update the copy of+ the <code>PackageDescription</code> stored in <code>LocalBuildInfo</code>+ at <code>localPkgDescr</code>. Unfortunately, in practice, there+ are lots of Custom setup scripts which fail to update+ <code>localPkgDescr</code> so you really shouldn't rely on it.+ It's not DEPRECATED because there are legitimate uses+ for it, but... yeah. Sharp knife. See+ <a href="https://github.com/haskell/cabal/issues/3606">https://github.com/haskell/cabal/issues/3606</a>+ for more information on the issue.</p><p>It is not well-specified whether or not a <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied+ at configure time is persistent to the <code>LocalBuildInfo</code>. The+ fact that <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is passed to <code>confHook</code> MIGHT SUGGEST+ that the <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is applied at this time, but actually+ since 9317b67e6122ab14e53f81b573bd0ecb388eca5a it has been ONLY used+ to create a modified package description that we check for problems:+ it is never actually saved to the LBI. Since <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> is+ applied monoidally to the existing build infos (and it is not an+ idempotent monoid), it could break things to save it, since we+ are obligated to apply any new <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> and then we'd+ get the effect twice. But this does mean we have to re-apply+ it every time. Hey, it's more flexibility.</p></div></div><div class="top"><p class="src"><a id="v:emptyHookedBuildInfo" class="def">emptyHookedBuildInfo</a> :: <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a> <a href="#v:emptyHookedBuildInfo" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-IncludeRenaming.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.IncludeRenaming</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.IncludeRenaming</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:IncludeRenaming">IncludeRenaming</a> = <a href="#v:IncludeRenaming">IncludeRenaming</a> {<ul class="subs"><li><a href="#v:includeProvidesRn">includeProvidesRn</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></li><li><a href="#v:includeRequiresRn">includeRequiresRn</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></li></ul>}</li><li class="src short"><a href="#v:defaultIncludeRenaming">defaultIncludeRenaming</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></li><li class="src short"><a href="#v:isDefaultIncludeRenaming">isDefaultIncludeRenaming</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:IncludeRenaming" class="def">IncludeRenaming</a> <a href="#t:IncludeRenaming" class="selflink">#</a></p><div class="doc"><p>A renaming on an include: (provides renaming, requires renaming)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:IncludeRenaming" class="def">IncludeRenaming</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:includeProvidesRn" class="def">includeProvidesRn</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:includeRequiresRn" class="def">includeRequiresRn</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:IncludeRenaming" class="caption collapser" onclick="toggleSection('i:IncludeRenaming')">Instances</p><div id="section.i:IncludeRenaming" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IncludeRenaming:Eq:1" class="instance expander" onclick="toggleSection('i:id:IncludeRenaming:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:IncludeRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:IncludeRenaming:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IncludeRenaming:Data:2" class="instance expander" onclick="toggleSection('i:id:IncludeRenaming:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:IncludeRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:IncludeRenaming:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> c <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> m <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> m <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> m <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IncludeRenaming:Ord:3" class="instance expander" onclick="toggleSection('i:id:IncludeRenaming:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:IncludeRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:IncludeRenaming:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IncludeRenaming:Read:4" class="instance expander" onclick="toggleSection('i:id:IncludeRenaming:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:IncludeRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:IncludeRenaming:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IncludeRenaming:Show:5" class="instance expander" onclick="toggleSection('i:id:IncludeRenaming:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:IncludeRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:IncludeRenaming:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IncludeRenaming:Generic:6" class="instance expander" onclick="toggleSection('i:id:IncludeRenaming:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:IncludeRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:IncludeRenaming:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> x -> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IncludeRenaming:Binary:7" class="instance expander" onclick="toggleSection('i:id:IncludeRenaming:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:IncludeRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:IncludeRenaming:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IncludeRenaming:Text:8" class="instance expander" onclick="toggleSection('i:id:IncludeRenaming:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:IncludeRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:IncludeRenaming:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IncludeRenaming:Rep:9" class="instance expander" onclick="toggleSection('i:id:IncludeRenaming:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></span> <a href="#t:IncludeRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:IncludeRenaming:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "IncludeRenaming" "Distribution.Types.IncludeRenaming" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "IncludeRenaming" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "includeProvidesRn") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "includeRequiresRn") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultIncludeRenaming" class="def">defaultIncludeRenaming</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> <a href="#v:defaultIncludeRenaming" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-Types-IncludeRenaming.html#v:defaultIncludeRenaming">defaultIncludeRenaming</a></code> applied when you only <code>build-depends</code>+ on a package.</p></div></div><div class="top"><p class="src"><a id="v:isDefaultIncludeRenaming" class="def">isDefaultIncludeRenaming</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isDefaultIncludeRenaming" class="selflink">#</a></p><div class="doc"><p>Is an <code><a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></code> the default one?</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-LegacyExeDependency.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.LegacyExeDependency</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.LegacyExeDependency</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:LegacyExeDependency">LegacyExeDependency</a> = <a href="#v:LegacyExeDependency">LegacyExeDependency</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LegacyExeDependency" class="def">LegacyExeDependency</a> <a href="#t:LegacyExeDependency" class="selflink">#</a></p><div class="doc"><p>Describes a legacy `build-tools`-style dependency on an executable</p><p>It is "legacy" because we do not know what the build-tool referred to. It+ could refer to a pkg-config executable (PkgconfigName), or an internal+ executable (UnqualComponentName). Thus the name is stringly typed.</p><p><em>Since: 2.0</em></p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:LegacyExeDependency" class="def">LegacyExeDependency</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:LegacyExeDependency" class="caption collapser" onclick="toggleSection('i:LegacyExeDependency')">Instances</p><div id="section.i:LegacyExeDependency" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LegacyExeDependency:Eq:1" class="instance expander" onclick="toggleSection('i:id:LegacyExeDependency:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:LegacyExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LegacyExeDependency:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LegacyExeDependency:Data:2" class="instance expander" onclick="toggleSection('i:id:LegacyExeDependency:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:LegacyExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LegacyExeDependency:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> c <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> m <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> m <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> m <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LegacyExeDependency:Read:3" class="instance expander" onclick="toggleSection('i:id:LegacyExeDependency:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:LegacyExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LegacyExeDependency:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LegacyExeDependency:Show:4" class="instance expander" onclick="toggleSection('i:id:LegacyExeDependency:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:LegacyExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LegacyExeDependency:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LegacyExeDependency:Generic:5" class="instance expander" onclick="toggleSection('i:id:LegacyExeDependency:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:LegacyExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LegacyExeDependency:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> x -> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LegacyExeDependency:Binary:6" class="instance expander" onclick="toggleSection('i:id:LegacyExeDependency:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:LegacyExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LegacyExeDependency:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LegacyExeDependency:NFData:7" class="instance expander" onclick="toggleSection('i:id:LegacyExeDependency:NFData:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:LegacyExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LegacyExeDependency:NFData:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LegacyExeDependency:Text:8" class="instance expander" onclick="toggleSection('i:id:LegacyExeDependency:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:LegacyExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LegacyExeDependency:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LegacyExeDependency:Rep:9" class="instance expander" onclick="toggleSection('i:id:LegacyExeDependency:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a></span> <a href="#t:LegacyExeDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LegacyExeDependency:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">LegacyExeDependency</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "LegacyExeDependency" "Distribution.Types.LegacyExeDependency" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LegacyExeDependency" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-Library.html view
@@ -0,0 +1,14 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.Library</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.Library</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Library">Library</a> = <a href="#v:Library">Library</a> {<ul class="subs"><li><a href="#v:libName">libName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:exposedModules">exposedModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:reexportedModules">reexportedModules</a> :: [<a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a>]</li><li><a href="#v:signatures">signatures</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li><a href="#v:libExposed">libExposed</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:libBuildInfo">libBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><a href="#v:emptyLibrary">emptyLibrary</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a></li><li class="src short"><a href="#v:explicitLibModules">explicitLibModules</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:libModulesAutogen">libModulesAutogen</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:libModules">libModules</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Library" class="def">Library</a> <a href="#t:Library" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Library" class="def">Library</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:libName" class="def">libName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:exposedModules" class="def">exposedModules</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:reexportedModules" class="def">reexportedModules</a> :: [<a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:signatures" class="def">signatures</a> :: [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</dfn><div class="doc"><p>What sigs need implementations?</p></div></li><li><dfn class="src"><a id="v:libExposed" class="def">libExposed</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Is the lib to be exposed by default?</p></div></li><li><dfn class="src"><a id="v:libBuildInfo" class="def">libBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Library" class="caption collapser" onclick="toggleSection('i:Library')">Instances</p><div id="section.i:Library" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Eq:1" class="instance expander" onclick="toggleSection('i:id:Library:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Data:2" class="instance expander" onclick="toggleSection('i:id:Library:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> c <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Library.html#t:Library">Library</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Library.html#t:Library">Library</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> m <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> m <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> m <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Read:3" class="instance expander" onclick="toggleSection('i:id:Library:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-Library.html#t:Library">Library</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-Library.html#t:Library">Library</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Show:4" class="instance expander" onclick="toggleSection('i:id:Library:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-Library.html#t:Library">Library</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Generic:5" class="instance expander" onclick="toggleSection('i:id:Library:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Library.html#t:Library">Library</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Library.html#t:Library">Library</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Library.html#t:Library">Library</a> x -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:Library:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Monoid:7" class="instance expander" onclick="toggleSection('i:id:Library:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-Library.html#t:Library">Library</a>] -> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Binary:8" class="instance expander" onclick="toggleSection('i:id:Library:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-Library.html#t:Library">Library</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Library:Rep:9" class="instance expander" onclick="toggleSection('i:id:Library:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></span> <a href="#t:Library" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Library:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Library.html#t:Library">Library</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Library" "Distribution.Types.Library" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Library" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exposedModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "reexportedModules") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "signatures") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libExposed") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libBuildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyLibrary" class="def">emptyLibrary</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> <a href="#v:emptyLibrary" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:explicitLibModules" class="def">explicitLibModules</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:explicitLibModules" class="selflink">#</a></p><div class="doc"><p>Get all the module names from the library (exposed and internal modules)+ which are explicitly listed in the package description which would+ need to be compiled. (This does not include reexports, which+ do not need to be compiled.) This may not include all modules for which+ GHC generated interface files (i.e., implicit modules.)</p></div></div><div class="top"><p class="src"><a id="v:libModulesAutogen" class="def">libModulesAutogen</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:libModulesAutogen" class="selflink">#</a></p><div class="doc"><p>Get all the auto generated module names from the library, exposed or not.+ This are a subset of <code><a href="Distribution-Types-Library.html#v:libModules">libModules</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:libModules" class="def">libModules</a> :: <a href="Distribution-Types-Library.html#t:Library">Library</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:libModules" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: If you want all modules that are built with a library, use <code>allLibModules</code>. Otherwise, use <code><a href="Distribution-Types-Library.html#v:explicitLibModules">explicitLibModules</a></code> for ONLY the modules explicitly mentioned in the package description.</p></div><p>Backwards-compatibility shim for <code><a href="Distribution-Types-Library.html#v:explicitLibModules">explicitLibModules</a></code>. In most cases,+ you actually want <code>allLibModules</code>, which returns all modules that will+ actually be compiled, as opposed to those which are explicitly listed+ in the package description (<code><a href="Distribution-Types-Library.html#v:explicitLibModules">explicitLibModules</a></code>); unfortunately, the+ type signature for <code>allLibModules</code> is incompatible since we need a+ <code>ComponentLocalBuildInfo</code>.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-LocalBuildInfo.html view
@@ -0,0 +1,56 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.LocalBuildInfo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.LocalBuildInfo</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The type</a></li><li><a href="#g:2">Convenience accessors</a></li><li><a href="#g:3">Build targets of the <code>LocalBuildInfo</code>.</a></li><li><a href="#g:4">Functions you SHOULD NOT USE (yet), but are defined here to</a></li><li><a href="#g:5">Backwards compatibility.</a></li></ul></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:LocalBuildInfo">LocalBuildInfo</a> = <a href="#v:LocalBuildInfo">LocalBuildInfo</a> {<ul class="subs"><li><a href="#v:configFlags">configFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></li><li><a href="#v:flagAssignment">flagAssignment</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></li><li><a href="#v:componentEnabledSpec">componentEnabledSpec</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></li><li><a href="#v:extraConfigArgs">extraConfigArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:installDirTemplates">installDirTemplates</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a></li><li><a href="#v:compiler">compiler</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></li><li><a href="#v:hostPlatform">hostPlatform</a> :: <a href="Distribution-System.html#t:Platform">Platform</a></li><li><a href="#v:buildDir">buildDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:componentGraph">componentGraph</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></li><li><a href="#v:componentNameMap">componentNameMap</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> [<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>]</li><li><a href="#v:installedPkgs">installedPkgs</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></li><li><a href="#v:pkgDescrFile">pkgDescrFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:localPkgDescr">localPkgDescr</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li><a href="#v:withPrograms">withPrograms</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></li><li><a href="#v:withPackageDB">withPackageDB</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></li><li><a href="#v:withVanillaLib">withVanillaLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withProfLib">withProfLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withSharedLib">withSharedLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withDynExe">withDynExe</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withProfExe">withProfExe</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withProfLibDetail">withProfLibDetail</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></li><li><a href="#v:withProfExeDetail">withProfExeDetail</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></li><li><a href="#v:withOptimization">withOptimization</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></li><li><a href="#v:withDebugInfo">withDebugInfo</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></li><li><a href="#v:withGHCiLib">withGHCiLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:splitObjs">splitObjs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:stripExes">stripExes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:stripLibs">stripLibs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:exeCoverage">exeCoverage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:libCoverage">libCoverage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:progPrefix">progPrefix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:progSuffix">progSuffix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:relocatable">relocatable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:localComponentId">localComponentId</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></li><li class="src short"><a href="#v:localUnitId">localUnitId</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><a href="#v:localCompatPackageKey">localCompatPackageKey</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:localPackage">localPackage</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></li><li class="src short"><a href="#v:componentNameCLBIs">componentNameCLBIs</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> [<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>]</li><li class="src short"><a href="#v:componentNameTargets-39-">componentNameTargets'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>]</li><li class="src short"><a href="#v:unitIdTarget-39-">unitIdTarget'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></li><li class="src short"><a href="#v:allTargetsInBuildOrder-39-">allTargetsInBuildOrder'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>]</li><li class="src short"><a href="#v:withAllTargetsInBuildOrder-39-">withAllTargetsInBuildOrder'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:neededTargetsInBuildOrder-39-">neededTargetsInBuildOrder'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>]</li><li class="src short"><a href="#v:withNeededTargetsInBuildOrder-39-">withNeededTargetsInBuildOrder'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> (<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:testCoverage">testCoverage</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:componentNameTargets">componentNameTargets</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>]</li><li class="src short"><a href="#v:unitIdTarget">unitIdTarget</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></li><li class="src short"><a href="#v:allTargetsInBuildOrder">allTargetsInBuildOrder</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>]</li><li class="src short"><a href="#v:withAllTargetsInBuildOrder">withAllTargetsInBuildOrder</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:neededTargetsInBuildOrder">neededTargetsInBuildOrder</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>]</li><li class="src short"><a href="#v:withNeededTargetsInBuildOrder">withNeededTargetsInBuildOrder</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> (<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:componentsConfigs">componentsConfigs</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>, <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>, [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>])]</li><li class="src short"><a href="#v:externalPackageDeps">externalPackageDeps</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)]</li></ul></div><div id="interface"><h1 id="g:1">The type</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LocalBuildInfo" class="def">LocalBuildInfo</a> <a href="#t:LocalBuildInfo" class="selflink">#</a></p><div class="doc"><p>Data cached after configuration step. See also+ <code><a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:LocalBuildInfo" class="def">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:configFlags" class="def">configFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></dfn><div class="doc"><p>Options passed to the configuration step.+ Needed to re-run configuration when .cabal is out of date</p></div></li><li><dfn class="src"><a id="v:flagAssignment" class="def">flagAssignment</a> :: <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a></dfn><div class="doc"><p>The final set of flags which were picked for this package</p></div></li><li><dfn class="src"><a id="v:componentEnabledSpec" class="def">componentEnabledSpec</a> :: <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a></dfn><div class="doc"><p>What components were enabled during configuration, and why.</p></div></li><li><dfn class="src"><a id="v:extraConfigArgs" class="def">extraConfigArgs</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</dfn><div class="doc"><p>Extra args on the command line for the configuration step.+ Needed to re-run configuration when .cabal is out of date</p></div></li><li><dfn class="src"><a id="v:installDirTemplates" class="def">installDirTemplates</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a></dfn><div class="doc"><p>The installation directories for the various different+ kinds of files+TODO: inplaceDirTemplates :: InstallDirs FilePath</p></div></li><li><dfn class="src"><a id="v:compiler" class="def">compiler</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></dfn><div class="doc"><p>The compiler we're building with</p></div></li><li><dfn class="src"><a id="v:hostPlatform" class="def">hostPlatform</a> :: <a href="Distribution-System.html#t:Platform">Platform</a></dfn><div class="doc"><p>The platform we're building for</p></div></li><li><dfn class="src"><a id="v:buildDir" class="def">buildDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Where to build the package.</p></div></li><li><dfn class="src"><a id="v:componentGraph" class="def">componentGraph</a> :: <a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></dfn><div class="doc"><p>All the components to build, ordered by topological+ sort, and with their INTERNAL dependencies over the+ intrapackage dependency graph.+ TODO: this is assumed to be short; otherwise we want+ some sort of ordered map.</p></div></li><li><dfn class="src"><a id="v:componentNameMap" class="def">componentNameMap</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> [<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>]</dfn><div class="doc"><p>A map from component name to all matching+ components. These coincide with <code><a href="Distribution-Types-LocalBuildInfo.html#v:componentGraph">componentGraph</a></code></p></div></li><li><dfn class="src"><a id="v:installedPkgs" class="def">installedPkgs</a> :: <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a></dfn><div class="doc"><p>All the info about the installed packages that the+ current package depends on (directly or indirectly).+ The copy saved on disk does NOT include internal+ dependencies (because we just don't have enough+ information at this point to have an+ <code>InstalledPackageInfo</code> for an internal dep), but we+ will often update it with the internal dependencies;+ see for example <code><a href="Distribution-Simple-Build.html#v:build">build</a></code>.+ (This admonition doesn't apply for per-component builds.)</p></div></li><li><dfn class="src"><a id="v:pkgDescrFile" class="def">pkgDescrFile</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>the filename containing the .cabal file, if available</p></div></li><li><dfn class="src"><a id="v:localPkgDescr" class="def">localPkgDescr</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></dfn><div class="doc"><p>WARNING WARNING WARNING Be VERY careful about using+ this function; we haven't deprecated it but using it+ could introduce subtle bugs related to+ <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code>.</p><p>In principle, this is supposed to contain the+ resolved package description, that does not contain+ any conditionals. However, it MAY NOT contain+ the description wtih a <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied+ to it; see <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> for the whole sordid saga.+ As much as possible, Cabal library should avoid using+ this parameter.</p></div></li><li><dfn class="src"><a id="v:withPrograms" class="def">withPrograms</a> :: <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a></dfn><div class="doc"><p>Location and args for all programs</p></div></li><li><dfn class="src"><a id="v:withPackageDB" class="def">withPackageDB</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></dfn><div class="doc"><p>What package database to use, global/user</p></div></li><li><dfn class="src"><a id="v:withVanillaLib" class="def">withVanillaLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build normal libs.</p></div></li><li><dfn class="src"><a id="v:withProfLib" class="def">withProfLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build profiling versions of libs.</p></div></li><li><dfn class="src"><a id="v:withSharedLib" class="def">withSharedLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build shared versions of libs.</p></div></li><li><dfn class="src"><a id="v:withDynExe" class="def">withDynExe</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to link executables dynamically</p></div></li><li><dfn class="src"><a id="v:withProfExe" class="def">withProfExe</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build executables for profiling.</p></div></li><li><dfn class="src"><a id="v:withProfLibDetail" class="def">withProfLibDetail</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></dfn><div class="doc"><p>Level of automatic profile detail.</p></div></li><li><dfn class="src"><a id="v:withProfExeDetail" class="def">withProfExeDetail</a> :: <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a></dfn><div class="doc"><p>Level of automatic profile detail.</p></div></li><li><dfn class="src"><a id="v:withOptimization" class="def">withOptimization</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></dfn><div class="doc"><p>Whether to build with optimization (if available).</p></div></li><li><dfn class="src"><a id="v:withDebugInfo" class="def">withDebugInfo</a> :: <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a></dfn><div class="doc"><p>Whether to emit debug info (if available).</p></div></li><li><dfn class="src"><a id="v:withGHCiLib" class="def">withGHCiLib</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to build libs suitable for use with GHCi.</p></div></li><li><dfn class="src"><a id="v:splitObjs" class="def">splitObjs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Use -split-objs with GHC, if available</p></div></li><li><dfn class="src"><a id="v:stripExes" class="def">stripExes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to strip executables during install</p></div></li><li><dfn class="src"><a id="v:stripLibs" class="def">stripLibs</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to strip libraries during install</p></div></li><li><dfn class="src"><a id="v:exeCoverage" class="def">exeCoverage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to enable executable program coverage</p></div></li><li><dfn class="src"><a id="v:libCoverage" class="def">libCoverage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Whether to enable library program coverage</p></div></li><li><dfn class="src"><a id="v:progPrefix" class="def">progPrefix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dfn><div class="doc"><p>Prefix to be prepended to installed executables</p></div></li><li><dfn class="src"><a id="v:progSuffix" class="def">progSuffix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dfn><div class="doc"><p>Suffix to be appended to installed executables</p></div></li><li><dfn class="src"><a id="v:relocatable" class="def">relocatable</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:LocalBuildInfo" class="caption collapser" onclick="toggleSection('i:LocalBuildInfo')">Instances</p><div id="section.i:LocalBuildInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Read:1" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Read:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Read:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Show:2" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Generic:3" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Generic:3')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Generic:3" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> x -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Binary:4" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Binary:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Binary:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LocalBuildInfo:Rep:5" class="instance expander" onclick="toggleSection('i:id:LocalBuildInfo:Rep:5')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></span> <a href="#t:LocalBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LocalBuildInfo:Rep:5" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "LocalBuildInfo" "Distribution.Types.LocalBuildInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LocalBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "configFlags") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "flagAssignment") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">FlagAssignment</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentEnabledSpec") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraConfigArgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installDirTemplates") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "compiler") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "hostPlatform") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-System.html#t:Platform">Platform</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentGraph") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Graph.html#t:Graph">Graph</a> <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "componentNameMap") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="Distribution-Compat-Prelude-Internal.html#t:Map">Map</a> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> [<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "installedPkgs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">InstalledPackageIndex</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgDescrFile") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "localPkgDescr") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withPrograms") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Program-Db.html#t:ProgramDb">ProgramDb</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withPackageDB") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withVanillaLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withProfLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withSharedLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withDynExe") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withProfExe") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withProfLibDetail") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withProfExeDetail") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">ProfDetailLevel</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withOptimization") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withDebugInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">DebugInfoLevel</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "withGHCiLib") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "splitObjs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "stripExes") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "stripLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "exeCoverage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "libCoverage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "progPrefix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "progSuffix") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "relocatable") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>)))))))))</div></div></td></tr></table></div></div></div><h1 id="g:2">Convenience accessors</h1><div class="top"><p class="src"><a id="v:localComponentId" class="def">localComponentId</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> <a href="#v:localComponentId" class="selflink">#</a></p><div class="doc"><p>Extract the <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code> from the public library component of a+ <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> if it exists, or make a fake component ID based+ on the package ID.</p></div></div><div class="top"><p class="src"><a id="v:localUnitId" class="def">localUnitId</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:localUnitId" class="selflink">#</a></p><div class="doc"><p>Extract the <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> from the library component of a+ <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> if it exists, or make a fake unit ID based on+ the package ID.</p></div></div><div class="top"><p class="src"><a id="v:localCompatPackageKey" class="def">localCompatPackageKey</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:localCompatPackageKey" class="selflink">#</a></p><div class="doc"><p>Extract the compatibility package key from the public library component of a+ <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> if it exists, or make a fake package key based+ on the package ID.</p></div></div><div class="top"><p class="src"><a id="v:localPackage" class="def">localPackage</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> <a href="#v:localPackage" class="selflink">#</a></p><div class="doc"><p>Extract the <code><a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></code> of a <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>.+ This is a "safe" use of <code><a href="Distribution-Types-LocalBuildInfo.html#v:localPkgDescr">localPkgDescr</a></code></p></div></div><h1 id="g:3">Build targets of the <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>.</h1><div class="top"><p class="src"><a id="v:componentNameCLBIs" class="def">componentNameCLBIs</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> [<a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>] <a href="#v:componentNameCLBIs" class="selflink">#</a></p><div class="doc"><p>Return all <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code>s associated with <code><a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></code>.+ In the presence of Backpack there may be more than one!</p></div></div><div class="top"><p class="src"><a id="v:componentNameTargets-39-" class="def">componentNameTargets'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>] <a href="#v:componentNameTargets-39-" class="selflink">#</a></p><div class="doc"><p>Return all <code><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></code>s associated with <code><a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></code>.+ In the presence of Backpack there may be more than one!+ Has a prime because it takes a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code> argument+ which may disagree with <code><a href="Distribution-Types-LocalBuildInfo.html#v:localPkgDescr">localPkgDescr</a></code> in <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:unitIdTarget-39-" class="def">unitIdTarget'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> <a href="#v:unitIdTarget-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:allTargetsInBuildOrder-39-" class="def">allTargetsInBuildOrder'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>] <a href="#v:allTargetsInBuildOrder-39-" class="selflink">#</a></p><div class="doc"><p>Return the list of default <code><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></code>s associated with a+ configured package, in the order they need to be built.+ Has a prime because it takes a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code> argument+ which may disagree with <code><a href="Distribution-Types-LocalBuildInfo.html#v:localPkgDescr">localPkgDescr</a></code> in <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:withAllTargetsInBuildOrder-39-" class="def">withAllTargetsInBuildOrder'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withAllTargetsInBuildOrder-39-" class="selflink">#</a></p><div class="doc"><p>Execute <code>f</code> for every <code><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></code> in the package, respecting the+ build dependency order. (TODO: We should use Shake!)+ Has a prime because it takes a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code> argument+ which may disagree with <code><a href="Distribution-Types-LocalBuildInfo.html#v:localPkgDescr">localPkgDescr</a></code> in <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:neededTargetsInBuildOrder-39-" class="def">neededTargetsInBuildOrder'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>] <a href="#v:neededTargetsInBuildOrder-39-" class="selflink">#</a></p><div class="doc"><p>Return the list of all targets needed to build the <code>uids</code>, in+ the order they need to be built.+ Has a prime because it takes a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code> argument+ which may disagree with <code><a href="Distribution-Types-LocalBuildInfo.html#v:localPkgDescr">localPkgDescr</a></code> in <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:withNeededTargetsInBuildOrder-39-" class="def">withNeededTargetsInBuildOrder'</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> (<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withNeededTargetsInBuildOrder-39-" class="selflink">#</a></p><div class="doc"><p>Execute <code>f</code> for every <code><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></code> needed to build <code>uid</code>s, respecting+ the build dependency order.+ Has a prime because it takes a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code> argument+ which may disagree with <code><a href="Distribution-Types-LocalBuildInfo.html#v:localPkgDescr">localPkgDescr</a></code> in <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:testCoverage" class="def">testCoverage</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:testCoverage" class="selflink">#</a></p><div class="doc"><p>Is coverage enabled for test suites? In practice, this requires library+ and executable profiling to be enabled.</p></div></div><h1 id="g:4">Functions you SHOULD NOT USE (yet), but are defined here to</h1><div class="top"><p class="src"><a id="v:componentNameTargets" class="def">componentNameTargets</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>] <a href="#v:componentNameTargets" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Warning: By using this function, you may be introducing a bug where you retrieve a <code>Component</code> which does not have <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied to it. See the documentation for <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> for an explanation of the issue. If you have a <code>PakcageDescription</code> handy (NOT from the <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>), try using the primed version of the function, which takes it as an extra argument.</p></div></div></div><div class="top"><p class="src"><a id="v:unitIdTarget" class="def">unitIdTarget</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> <a href="#v:unitIdTarget" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Warning: By using this function, you may be introducing a bug where you retrieve a <code>Component</code> which does not have <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied to it. See the documentation for <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> for an explanation of the issue. If you have a <code>PakcageDescription</code> handy (NOT from the <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>), try using the primed version of the function, which takes it as an extra argument.</p></div></div></div><div class="top"><p class="src"><a id="v:allTargetsInBuildOrder" class="def">allTargetsInBuildOrder</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>] <a href="#v:allTargetsInBuildOrder" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Warning: By using this function, you may be introducing a bug where you retrieve a <code>Component</code> which does not have <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied to it. See the documentation for <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> for an explanation of the issue. If you have a <code>PakcageDescription</code> handy (NOT from the <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>), try using the primed version of the function, which takes it as an extra argument.</p></div></div></div><div class="top"><p class="src"><a id="v:withAllTargetsInBuildOrder" class="def">withAllTargetsInBuildOrder</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withAllTargetsInBuildOrder" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Warning: By using this function, you may be introducing a bug where you retrieve a <code>Component</code> which does not have <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied to it. See the documentation for <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> for an explanation of the issue. If you have a <code>PakcageDescription</code> handy (NOT from the <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>), try using the primed version of the function, which takes it as an extra argument.</p></div></div></div><div class="top"><p class="src"><a id="v:neededTargetsInBuildOrder" class="def">neededTargetsInBuildOrder</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> [<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>] <a href="#v:neededTargetsInBuildOrder" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Warning: By using this function, you may be introducing a bug where you retrieve a <code>Component</code> which does not have <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied to it. See the documentation for <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> for an explanation of the issue. If you have a <code>PakcageDescription</code> handy (NOT from the <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>), try using the primed version of the function, which takes it as an extra argument.</p></div></div></div><div class="top"><p class="src"><a id="v:withNeededTargetsInBuildOrder" class="def">withNeededTargetsInBuildOrder</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> (<a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withNeededTargetsInBuildOrder" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Warning: By using this function, you may be introducing a bug where you retrieve a <code>Component</code> which does not have <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> applied to it. See the documentation for <code><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a></code> for an explanation of the issue. If you have a <code>PakcageDescription</code> handy (NOT from the <code><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code>), try using the primed version of the function, which takes it as an extra argument.</p></div></div></div><h1 id="g:5">Backwards compatibility.</h1><div class="top"><p class="src"><a id="v:componentsConfigs" class="def">componentsConfigs</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>, <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>, [<a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a>])] <a href="#v:componentsConfigs" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Distribution-Types-LocalBuildInfo.html#v:componentGraph">componentGraph</a></code> instead; you can get a list of <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> with <code><a href="Distribution-Compat-Graph.html#v:toList">toList</a></code>. There's not a good way to get the list of <code><a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></code>s the <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> depends on because this query doesn't make sense; the graph is indexed by <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> not <code><a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></code>. Given a <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> you can lookup the <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> (<code>getCLBI</code>) and then get the <code><a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a></code> ('componentLocalName]). To be removed in Cabal 2.2</p></div></div></div><div class="top"><p class="src"><a id="v:externalPackageDeps" class="def">externalPackageDeps</a> :: <a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>, <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>)] <a href="#v:externalPackageDeps" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: You almost certainly don't want this function, which agglomerates the dependencies of ALL enabled components. If you're using this to write out information on your dependencies, read off the dependencies directly from the actual component in question. To be removed in Cabal 2.2</p></div><p>External package dependencies for the package as a whole. This is the+ union of the individual <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, less any internal deps.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-Mixin.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.Mixin</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.Mixin</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Mixin" class="def">Mixin</a> <a href="#t:Mixin" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Mixin" class="def">Mixin</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:mixinPackageName" class="def">mixinPackageName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:mixinIncludeRenaming" class="def">mixinIncludeRenaming</a> :: <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Mixin" class="caption collapser" onclick="toggleSection('i:Mixin')">Instances</p><div id="section.i:Mixin" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Mixin:Eq:1" class="instance expander" onclick="toggleSection('i:id:Mixin:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Mixin" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Mixin:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Mixin:Data:2" class="instance expander" onclick="toggleSection('i:id:Mixin:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Mixin" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Mixin:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> c <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> m <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> m <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> m <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Mixin:Ord:3" class="instance expander" onclick="toggleSection('i:id:Mixin:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Mixin" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Mixin:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Mixin:Read:4" class="instance expander" onclick="toggleSection('i:id:Mixin:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Mixin" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Mixin:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Mixin:Show:5" class="instance expander" onclick="toggleSection('i:id:Mixin:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Mixin" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Mixin:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Mixin:Generic:6" class="instance expander" onclick="toggleSection('i:id:Mixin:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Mixin" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Mixin:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> x -> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Mixin:Binary:7" class="instance expander" onclick="toggleSection('i:id:Mixin:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Mixin" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Mixin:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Mixin:Text:8" class="instance expander" onclick="toggleSection('i:id:Mixin:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Mixin" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Mixin:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Mixin:Rep:9" class="instance expander" onclick="toggleSection('i:id:Mixin:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a></span> <a href="#t:Mixin" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Mixin:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Mixin.html#t:Mixin">Mixin</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Mixin" "Distribution.Types.Mixin" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Mixin" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "mixinPackageName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "mixinIncludeRenaming") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">IncludeRenaming</a>))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-Module.html view
@@ -0,0 +1,11 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.Module</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.Module</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Module">Module</a> = <a href="#v:Module">Module</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Module" class="def">Module</a> <a href="#t:Module" class="selflink">#</a></p><div class="doc"><p>A module identity uniquely identifies a Haskell module by+ qualifying a <code><a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></code> with the <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> which defined+ it. This type distinguishes between two packages+ which provide a module with the same name, or a module+ from the same package compiled with different dependencies.+ There are a few cases where Cabal needs to know about+ module identities, e.g., when writing out reexported modules in+ the <code>InstalledPackageInfo</code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Module" class="def">Module</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Module" class="caption collapser" onclick="toggleSection('i:Module')">Instances</p><div id="section.i:Module" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:Eq:1" class="instance expander" onclick="toggleSection('i:id:Module:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:Data:2" class="instance expander" onclick="toggleSection('i:id:Module:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> c <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Module.html#t:Module">Module</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-Module.html#t:Module">Module</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> m <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> m <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> m <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:Ord:3" class="instance expander" onclick="toggleSection('i:id:Module:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:Read:4" class="instance expander" onclick="toggleSection('i:id:Module:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-Module.html#t:Module">Module</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-Module.html#t:Module">Module</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:Show:5" class="instance expander" onclick="toggleSection('i:id:Module:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-Module.html#t:Module">Module</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:Generic:6" class="instance expander" onclick="toggleSection('i:id:Module:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> x -> <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:Binary:7" class="instance expander" onclick="toggleSection('i:id:Module:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-Module.html#t:Module">Module</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:NFData:8" class="instance expander" onclick="toggleSection('i:id:Module:NFData:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:NFData:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:Text:9" class="instance expander" onclick="toggleSection('i:id:Module:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-Module.html#t:Module">Module</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-Module.html#t:Module">Module</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Module:Rep:10" class="instance expander" onclick="toggleSection('i:id:Module:Rep:10')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Module.html#t:Module">Module</a></span> <a href="#t:Module" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Module:Rep:10" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-Module.html#t:Module">Module</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Module" "Distribution.Types.Module" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Module" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ModuleReexport.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ModuleReexport</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ModuleReexport</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModuleReexport" class="def">ModuleReexport</a> <a href="#t:ModuleReexport" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModuleReexport" class="def">ModuleReexport</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:moduleReexportOriginalPackage" class="def">moduleReexportOriginalPackage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:moduleReexportOriginalName" class="def">moduleReexportOriginalName</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:moduleReexportName" class="def">moduleReexportName</a> :: <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:ModuleReexport" class="caption collapser" onclick="toggleSection('i:ModuleReexport')">Instances</p><div id="section.i:ModuleReexport" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Eq:1" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Data:2" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> c <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> m <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> m <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> m <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Read:3" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Show:4" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Generic:5" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> x -> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Binary:6" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Text:7" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleReexport:Rep:8" class="instance expander" onclick="toggleSection('i:id:ModuleReexport:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a></span> <a href="#t:ModuleReexport" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleReexport:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">ModuleReexport</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ModuleReexport" "Distribution.Types.ModuleReexport" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ModuleReexport" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "moduleReexportOriginalPackage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "moduleReexportOriginalName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "moduleReexportName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-ModuleRenaming.html view
@@ -0,0 +1,14 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.ModuleRenaming</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.ModuleRenaming</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ModuleRenaming">ModuleRenaming</a><ul class="subs"><li>= <a href="#v:ModuleRenaming">ModuleRenaming</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)]</li><li>| <a href="#v:DefaultRenaming">DefaultRenaming</a></li><li>| <a href="#v:HidingRenaming">HidingRenaming</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li></ul></li><li class="src short"><a href="#v:defaultRenaming">defaultRenaming</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></li><li class="src short"><a href="#v:isDefaultRenaming">isDefaultRenaming</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModuleRenaming" class="def">ModuleRenaming</a> <a href="#t:ModuleRenaming" class="selflink">#</a></p><div class="doc"><p>Renaming applied to the modules provided by a package.+ The boolean indicates whether or not to also include all of the+ original names of modules. Thus, <code>ModuleRenaming False []</code> is+ "don't expose any modules, and <code>ModuleRenaming True [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html">Data.Bool</a>, <a href="Bool.html">Bool</a>)]</code>+ is, "expose all modules, but also expose <code>Data.Bool</code> as <code>Bool</code>".+ If a renaming is omitted you get the <code><a href="Distribution-Types-ModuleRenaming.html#v:DefaultRenaming">DefaultRenaming</a></code>.</p><p>(NB: This is a list not a map so that we can preserve order.)</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModuleRenaming" class="def">ModuleRenaming</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)]</td><td class="doc"><p>A module renaming/thinning; e.g., <code>(A as B, C as C)</code>+ brings <code>B</code> and <code>C</code> into scope.</p></td></tr><tr><td class="src"><a id="v:DefaultRenaming" class="def">DefaultRenaming</a></td><td class="doc"><p>The default renaming, bringing all exported modules+ into scope.</p></td></tr><tr><td class="src"><a id="v:HidingRenaming" class="def">HidingRenaming</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</td><td class="doc"><p>Hiding renaming, e.g., <code>hiding (A, B)</code>, bringing all+ exported modules into scope except the hidden ones.</p></td></tr></table></div><div class="subs instances"><p id="control.i:ModuleRenaming" class="caption collapser" onclick="toggleSection('i:ModuleRenaming')">Instances</p><div id="section.i:ModuleRenaming" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Eq:1" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Data:2" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> c <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> m <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> m <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> m <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Ord:3" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Read:4" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Show:5" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Generic:6" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> x -> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Binary:7" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Text:8" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ModuleRenaming:Rep:9" class="instance expander" onclick="toggleSection('i:id:ModuleRenaming:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a></span> <a href="#t:ModuleRenaming" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ModuleRenaming:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ModuleRenaming" "Distribution.Types.ModuleRenaming" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ModuleRenaming" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>, <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DefaultRenaming" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HidingRenaming" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>])))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:defaultRenaming" class="def">defaultRenaming</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> <a href="#v:defaultRenaming" class="selflink">#</a></p><div class="doc"><p>The default renaming, if something is specified in <code>build-depends</code>+ only.</p></div></div><div class="top"><p class="src"><a id="v:isDefaultRenaming" class="def">isDefaultRenaming</a> :: <a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">ModuleRenaming</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isDefaultRenaming" class="selflink">#</a></p><div class="doc"><p>Tests if its the default renaming; we can use a more compact syntax+ in <code><a href="Distribution-Types-IncludeRenaming.html#v:IncludeRenaming">IncludeRenaming</a></code> in this case.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-MungedPackageId.html view
@@ -0,0 +1,8 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.MungedPackageId</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.MungedPackageId</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:MungedPackageId">MungedPackageId</a> = <a href="#v:MungedPackageId">MungedPackageId</a> {<ul class="subs"><li><a href="#v:mungedName">mungedName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></li><li><a href="#v:mungedVersion">mungedVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a></li></ul>}</li><li class="src short"><a href="#v:computeCompatPackageId">computeCompatPackageId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:MungedPackageId" class="def">MungedPackageId</a> <a href="#t:MungedPackageId" class="selflink">#</a></p><div class="doc"><p>A simple pair of a <code><a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></code> and <code><a href="Distribution-Version.html#t:Version">Version</a></code>. <code><a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></code> is to+ <code><a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></code> as <code>PackageName</code> is to <code><a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a></code>. See <code><a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></code> for more+ info.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:MungedPackageId" class="def">MungedPackageId</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:mungedName" class="def">mungedName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></dfn><div class="doc"><p>The combined package and component name. see documentation for+ <code><a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></code>.</p></div></li><li><dfn class="src"><a id="v:mungedVersion" class="def">mungedVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a></dfn><div class="doc"><p>The version of this package / component, eg 1.2</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:MungedPackageId" class="caption collapser" onclick="toggleSection('i:MungedPackageId')">Instances</p><div id="section.i:MungedPackageId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:Eq:1" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:Data:2" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> c <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> m <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> m <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> m <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:Ord:3" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:Read:4" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:Show:5" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:Generic:6" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> x -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:Binary:7" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:NFData:8" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:NFData:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:NFData:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:Text:9" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:HasMungedPackageId:10" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:HasMungedPackageId:10')"></span> <a href="Distribution-Package.html#t:HasMungedPackageId">HasMungedPackageId</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:HasMungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:HasMungedPackageId:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mungedId">mungedId</a> :: <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:mungedId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageId:Rep:11" class="instance expander" onclick="toggleSection('i:id:MungedPackageId:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a></span> <a href="#t:MungedPackageId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageId:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "MungedPackageId" "Distribution.Types.MungedPackageId" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MungedPackageId" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "mungedName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "mungedVersion") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:computeCompatPackageId" class="def">computeCompatPackageId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">MungedPackageId</a> <a href="#v:computeCompatPackageId" class="selflink">#</a></p><div class="doc"><p>See docs for <code><a href="Distribution-Types-MungedPackageName.html#v:computeCompatPackageId">computeCompatPackageId</a></code>. this+ is a thin wrapper around that.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-MungedPackageName.html view
@@ -0,0 +1,26 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.MungedPackageName</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.MungedPackageName</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:MungedPackageName">MungedPackageName</a></li><li class="src short"><a href="#v:unMungedPackageName">unMungedPackageName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkMungedPackageName">mkMungedPackageName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></li><li class="src short"><a href="#v:computeCompatPackageName">computeCompatPackageName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></li><li class="src short"><a href="#v:decodeCompatPackageName">decodeCompatPackageName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> (<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:MungedPackageName" class="def">MungedPackageName</a> <a href="#t:MungedPackageName" class="selflink">#</a></p><div class="doc"><p>A combination of a package and component name used in various legacy+ interfaces, chiefly bundled with a version as <code>MungedPackageId</code>. It's generally+ better to use a <code>UnitId</code> to opaquely refer to some compilation/packing unit,+ but that doesn't always work, e.g. where a "name" is needed, in which case+ this can be used as a fallback.</p><p>Use <code><a href="Distribution-Types-MungedPackageName.html#v:mkMungedPackageName">mkMungedPackageName</a></code> and <code><a href="Distribution-Types-MungedPackageName.html#v:unMungedPackageName">unMungedPackageName</a></code> to convert from/to a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code>.</p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:MungedPackageName" class="caption collapser" onclick="toggleSection('i:MungedPackageName')">Instances</p><div id="section.i:MungedPackageName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:Eq:1" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:Data:2" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> c <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> m <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> m <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> m <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:Ord:3" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:Read:4" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:Show:5" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:IsString:6" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc"><p><code><a href="Distribution-Types-MungedPackageName.html#v:mkMungedPackageName">mkMungedPackageName</a></code></p><p><em>Since: 2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:Generic:7" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> x -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:Binary:8" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:NFData:9" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:NFData:9')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:NFData:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:Text:10" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:Text:10')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:Text:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:MungedPackageName:Rep:11" class="instance expander" onclick="toggleSection('i:id:MungedPackageName:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></span> <a href="#t:MungedPackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:MungedPackageName:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "MungedPackageName" "Distribution.Types.MungedPackageName" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MungedPackageName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unMungedPackageName" class="def">unMungedPackageName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unMungedPackageName" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></code> to <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p></div></div><div class="top"><p class="src"><a id="v:mkMungedPackageName" class="def">mkMungedPackageName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:mkMungedPackageName" class="selflink">#</a></p><div class="doc"><p>Construct a <code><a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></code> from a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><code><a href="Distribution-Types-MungedPackageName.html#v:mkMungedPackageName">mkMungedPackageName</a></code> is the inverse to <code><a href="Distribution-Types-MungedPackageName.html#v:unMungedPackageName">unMungedPackageName</a></code></p><p>Note: No validations are performed to ensure that the resulting+ <code><a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a></code> is valid</p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:computeCompatPackageName" class="def">computeCompatPackageName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> <a href="#v:computeCompatPackageName" class="selflink">#</a></p><div class="doc"><p>Computes the package name for a library. If this is the public+ library, it will just be the original package name; otherwise,+ it will be a munged package name recording the original package+ name as well as the name of the internal library.</p><p>A lot of tooling in the Haskell ecosystem assumes that if something+ is installed to the package database with the package name <code>foo</code>,+ then it actually is an entry for the (only public) library in package+ <code>foo</code>. With internal packages, this is not necessarily true:+ a public library as well as arbitrarily many internal libraries may+ come from the same package. To prevent tools from getting confused+ in this case, the package name of these internal libraries is munged+ so that they do not conflict the public library proper. A particular+ case where this matters is ghc-pkg: if we don't munge the package+ name, the inplace registration will OVERRIDE a different internal+ library.</p><p>We munge into a reserved namespace, "z-", and encode both the+ component name and the package name of an internal library using the+ following format:</p><p>compat-pkg-name ::= "z-" package-name "-z-" library-name</p><p>where package-name and library-name have "-" ( "z" + ) "-"+ segments encoded by adding an extra "z".</p><p>When we have the public library, the compat-pkg-name is just the+ package-name, no surprises there!</p></div></div><div class="top"><p class="src"><a id="v:decodeCompatPackageName" class="def">decodeCompatPackageName</a> :: <a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">MungedPackageName</a> -> (<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>) <a href="#v:decodeCompatPackageName" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-PackageDescription.html view
@@ -0,0 +1,62 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.PackageDescription</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2005</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.PackageDescription</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This defines the data structure for the <code>.cabal</code> file format. There are+ several parts to this structure. It has top level info and then <code><a href="Distribution-Types-Library.html#t:Library">Library</a></code>,+ <code><a href="Distribution-Types-Executable.html#t:Executable">Executable</a></code>, <code><a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></code>, and <code><a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></code> sections each of which have+ associated <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> data that's used to build the library, exe, test, or+ benchmark. To further complicate things there is both a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code>+ and a <code>GenericPackageDescription</code>. This distinction relates to cabal+ configurations. When we initially read a <code>.cabal</code> file we get a+ <code>GenericPackageDescription</code> which has all the conditional sections.+ Before actually building a package we have to decide+ on each conditional. Once we've done that we get a <code><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></code>.+ It was done this way initially to avoid breaking too much stuff when the+ feature was introduced. It could probably do with being rationalised at some+ point to make it simpler.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:PackageDescription">PackageDescription</a> = <a href="#v:PackageDescription">PackageDescription</a> {<ul class="subs"><li><a href="#v:package">package</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></li><li><a href="#v:license">license</a> :: <a href="Distribution-License.html#t:License">License</a></li><li><a href="#v:licenseFiles">licenseFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:copyright">copyright</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:maintainer">maintainer</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:author">author</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:stability">stability</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:testedWith">testedWith</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)]</li><li><a href="#v:homepage">homepage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:pkgUrl">pkgUrl</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:bugReports">bugReports</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:sourceRepos">sourceRepos</a> :: [<a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>]</li><li><a href="#v:synopsis">synopsis</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:description">description</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:category">category</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:customFieldsPD">customFieldsPD</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:buildDepends">buildDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</li><li><a href="#v:specVersionRaw">specVersionRaw</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li><a href="#v:buildType">buildType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></li><li><a href="#v:setupBuildInfo">setupBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></li><li><a href="#v:library">library</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></li><li><a href="#v:subLibraries">subLibraries</a> :: [<a href="Distribution-Types-Library.html#t:Library">Library</a>]</li><li><a href="#v:executables">executables</a> :: [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>]</li><li><a href="#v:foreignLibs">foreignLibs</a> :: [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>]</li><li><a href="#v:testSuites">testSuites</a> :: [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>]</li><li><a href="#v:benchmarks">benchmarks</a> :: [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>]</li><li><a href="#v:dataFiles">dataFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:dataDir">dataDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:extraSrcFiles">extraSrcFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:extraTmpFiles">extraTmpFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:extraDocFiles">extraDocFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</li></ul>}</li><li class="src short"><a href="#v:specVersion">specVersion</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:descCabalVersion">descCabalVersion</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:emptyPackageDescription">emptyPackageDescription</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li class="src short"><a href="#v:hasPublicLib">hasPublicLib</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:hasLibs">hasLibs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:allLibraries">allLibraries</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Types-Library.html#t:Library">Library</a>]</li><li class="src short"><a href="#v:withLib">withLib</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hasExes">hasExes</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:withExe">withExe</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hasTests">hasTests</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:withTest">withTest</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hasBenchmarks">hasBenchmarks</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:withBenchmark">withBenchmark</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:hasForeignLibs">hasForeignLibs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:withForeignLib">withForeignLib</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:allBuildInfo">allBuildInfo</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>]</li><li class="src short"><a href="#v:enabledBuildInfos">enabledBuildInfos</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>]</li><li class="src short"><a href="#v:updatePackageDescription">updatePackageDescription</a> :: <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li class="src short"><a href="#v:pkgComponents">pkgComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Types-Component.html#t:Component">Component</a>]</li><li class="src short"><a href="#v:pkgBuildableComponents">pkgBuildableComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Types-Component.html#t:Component">Component</a>]</li><li class="src short"><a href="#v:enabledComponents">enabledComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> [<a href="Distribution-Types-Component.html#t:Component">Component</a>]</li><li class="src short"><a href="#v:lookupComponent">lookupComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-Component.html#t:Component">Component</a></li><li class="src short"><a href="#v:getComponent">getComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PackageDescription" class="def">PackageDescription</a> <a href="#t:PackageDescription" class="selflink">#</a></p><div class="doc"><p>This data type is the internal representation of the file <code>pkg.cabal</code>.+ It contains two kinds of information about the package: information+ which is needed for all packages, such as the package name and version, and+ information which is needed for the simple build system only, such as+ the compiler options and library name.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:PackageDescription" class="def">PackageDescription</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:package" class="def">package</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:license" class="def">license</a> :: <a href="Distribution-License.html#t:License">License</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:licenseFiles" class="def">licenseFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:copyright" class="def">copyright</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:maintainer" class="def">maintainer</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:author" class="def">author</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:stability" class="def">stability</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testedWith" class="def">testedWith</a> :: [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:homepage" class="def">homepage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:pkgUrl" class="def">pkgUrl</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:bugReports" class="def">bugReports</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:sourceRepos" class="def">sourceRepos</a> :: [<a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:synopsis" class="def">synopsis</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A one-line summary of this package</p></div></li><li><dfn class="src"><a id="v:description" class="def">description</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>A more verbose description of this package</p></div></li><li><dfn class="src"><a id="v:category" class="def">category</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:customFieldsPD" class="def">customFieldsPD</a> :: [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)]</dfn><div class="doc"><p>Custom fields starting+ with x-, stored in a+ simple assoc-list.</p></div></li><li><dfn class="src"><a id="v:buildDepends" class="def">buildDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</dfn><div class="doc"><p>YOU PROBABLY DON'T WANT TO USE THIS FIELD. This field is+ special! Depending on how far along processing the+ PackageDescription we are, the contents of this field are+ either nonsense, or the collected dependencies of *all* the+ components in this package. buildDepends is initialized by+ <code>finalizePD</code> and <code>flattenPackageDescription</code>;+ prior to that, dependency info is stored in the <code>CondTree</code>+ built around a <code>GenericPackageDescription</code>. When this+ resolution is done, dependency info is written to the inner+ <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> and this field. This is all horrible, and #2066+ tracks progress to get rid of this field.</p></div></li><li><dfn class="src"><a id="v:specVersionRaw" class="def">specVersionRaw</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></dfn><div class="doc"><p>The version of the Cabal spec that this package description uses.+ For historical reasons this is specified with a version range but+ only ranges of the form <code>>= v</code> make sense. We are in the process of+ transitioning to specifying just a single version, not a range.</p></div></li><li><dfn class="src"><a id="v:buildType" class="def">buildType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:setupBuildInfo" class="def">setupBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:library" class="def">library</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-Library.html#t:Library">Library</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:subLibraries" class="def">subLibraries</a> :: [<a href="Distribution-Types-Library.html#t:Library">Library</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:executables" class="def">executables</a> :: [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:foreignLibs" class="def">foreignLibs</a> :: [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testSuites" class="def">testSuites</a> :: [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:benchmarks" class="def">benchmarks</a> :: [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:dataFiles" class="def">dataFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:dataDir" class="def">dataDir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:extraSrcFiles" class="def">extraSrcFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:extraTmpFiles" class="def">extraTmpFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:extraDocFiles" class="def">extraDocFiles</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]</dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:PackageDescription" class="caption collapser" onclick="toggleSection('i:PackageDescription')">Instances</p><div id="section.i:PackageDescription" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Eq:1" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Data:2" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> c <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> m <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> m <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> m <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Read:3" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Show:4" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Generic:5" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> x -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Binary:6" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Package:7" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Package:7')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Package:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageDescription:Rep:8" class="instance expander" onclick="toggleSection('i:id:PackageDescription:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a></span> <a href="#t:PackageDescription" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageDescription:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "PackageDescription" "Distribution.Types.PackageDescription" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PackageDescription" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "package") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "license") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-License.html#t:License">License</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "licenseFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "copyright") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "maintainer") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "author") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "stability") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testedWith") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "homepage") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgUrl") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "bugReports") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "sourceRepos") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "synopsis") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "description") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "category") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "customFieldsPD") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [(<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "specVersionRaw") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "buildType") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-BuildType.html#t:BuildType">BuildType</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "setupBuildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "library") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-Library.html#t:Library">Library</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "subLibraries") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Library.html#t:Library">Library</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "executables") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Executable.html#t:Executable">Executable</a>]))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "foreignLibs") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testSuites") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "benchmarks") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "dataFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "dataDir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraSrcFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraTmpFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "extraDocFiles") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>]))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:specVersion" class="def">specVersion</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:specVersion" class="selflink">#</a></p><div class="doc"><p>The version of the Cabal spec that this package should be interpreted+ against.</p><p>Historically we used a version range but we are switching to using a single+ version. Currently we accept either. This function converts into a single+ version by ignoring upper bounds in the version range.</p></div></div><div class="top"><p class="src"><a id="v:descCabalVersion" class="def">descCabalVersion</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:descCabalVersion" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use specVersion instead</p></div><p>The range of versions of the Cabal tools that this package is intended to+ work with.</p><p>This function is deprecated and should not be used for new purposes, only to+ support old packages that rely on the old interpretation.</p></div></div><div class="top"><p class="src"><a id="v:emptyPackageDescription" class="def">emptyPackageDescription</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:emptyPackageDescription" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hasPublicLib" class="def">hasPublicLib</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasPublicLib" class="selflink">#</a></p><div class="doc"><p>Does this package have a buildable PUBLIC library?</p></div></div><div class="top"><p class="src"><a id="v:hasLibs" class="def">hasLibs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasLibs" class="selflink">#</a></p><div class="doc"><p>Does this package have any libraries?</p></div></div><div class="top"><p class="src"><a id="v:allLibraries" class="def">allLibraries</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Types-Library.html#t:Library">Library</a>] <a href="#v:allLibraries" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:withLib" class="def">withLib</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-Library.html#t:Library">Library</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withLib" class="selflink">#</a></p><div class="doc"><p>If the package description has a buildable library section,+ call the given function with the library build info as argument.+ You probably want <code>withLibLBI</code> if you have a <code>LocalBuildInfo</code>,+ see the note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>+ for more information.</p></div></div><div class="top"><p class="src"><a id="v:hasExes" class="def">hasExes</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasExes" class="selflink">#</a></p><div class="doc"><p>does this package have any executables?</p></div></div><div class="top"><p class="src"><a id="v:withExe" class="def">withExe</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-Executable.html#t:Executable">Executable</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withExe" class="selflink">#</a></p><div class="doc"><p>Perform the action on each buildable <code><a href="Distribution-Types-Executable.html#t:Executable">Executable</a></code> in the package+ description. You probably want <code>withExeLBI</code> if you have a+ <code>LocalBuildInfo</code>, see the note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>+ for more information.</p></div></div><div class="top"><p class="src"><a id="v:hasTests" class="def">hasTests</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasTests" class="selflink">#</a></p><div class="doc"><p>Does this package have any test suites?</p></div></div><div class="top"><p class="src"><a id="v:withTest" class="def">withTest</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withTest" class="selflink">#</a></p><div class="doc"><p>Perform an action on each buildable <code><a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></code> in a package.+ You probably want <code>withTestLBI</code> if you have a <code>LocalBuildInfo</code>, see the note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>+ for more information.</p></div></div><div class="top"><p class="src"><a id="v:hasBenchmarks" class="def">hasBenchmarks</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasBenchmarks" class="selflink">#</a></p><div class="doc"><p>Does this package have any benchmarks?</p></div></div><div class="top"><p class="src"><a id="v:withBenchmark" class="def">withBenchmark</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withBenchmark" class="selflink">#</a></p><div class="doc"><p>Perform an action on each buildable <code><a href="Distribution-Types-Benchmark.html#t:Benchmark">Benchmark</a></code> in a package.+ You probably want <code>withBenchLBI</code> if you have a <code>LocalBuildInfo</code>, see the note in+ <a href="Distribution-Types-ComponentRequestedSpec.html#buildable_vs_enabled_components">Distribution.Types.ComponentRequestedSpec</a>+ for more information.</p></div></div><div class="top"><p class="src"><a id="v:hasForeignLibs" class="def">hasForeignLibs</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasForeignLibs" class="selflink">#</a></p><div class="doc"><p>Does this package have any foreign libraries?</p></div></div><div class="top"><p class="src"><a id="v:withForeignLib" class="def">withForeignLib</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> ()) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> () <a href="#v:withForeignLib" class="selflink">#</a></p><div class="doc"><p>Perform the action on each buildable <code><a href="Distribution-Types-ForeignLib.html#t:ForeignLib">ForeignLib</a></code> in the package+ description.</p></div></div><div class="top"><p class="src"><a id="v:allBuildInfo" class="def">allBuildInfo</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>] <a href="#v:allBuildInfo" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code> for the library (if there is one and it's buildable), and+ all buildable executables, test suites and benchmarks. Useful for gathering+ dependencies.</p></div></div><div class="top"><p class="src"><a id="v:enabledBuildInfos" class="def">enabledBuildInfos</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> [<a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>] <a href="#v:enabledBuildInfos" class="selflink">#</a></p><div class="doc"><p>Return all of the <code><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></code>s of enabled components, i.e., all of+ the ones that would be built if you run <code>./Setup build</code>.</p></div></div><div class="top"><p class="src"><a id="v:updatePackageDescription" class="def">updatePackageDescription</a> :: <a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">HookedBuildInfo</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> <a href="#v:updatePackageDescription" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pkgComponents" class="def">pkgComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Types-Component.html#t:Component">Component</a>] <a href="#v:pkgComponents" class="selflink">#</a></p><div class="doc"><p>All the components in the package.</p></div></div><div class="top"><p class="src"><a id="v:pkgBuildableComponents" class="def">pkgBuildableComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> [<a href="Distribution-Types-Component.html#t:Component">Component</a>] <a href="#v:pkgBuildableComponents" class="selflink">#</a></p><div class="doc"><p>A list of all components in the package that are buildable,+ i.e., were not marked with <code>buildable: False</code>. This does NOT+ indicate if we are actually going to build the component,+ see <code><a href="Distribution-Types-PackageDescription.html#v:enabledComponents">enabledComponents</a></code> instead.</p><p><em>Since: 2.0.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:enabledComponents" class="def">enabledComponents</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">ComponentRequestedSpec</a> -> [<a href="Distribution-Types-Component.html#t:Component">Component</a>] <a href="#v:enabledComponents" class="selflink">#</a></p><div class="doc"><p>A list of all components in the package that are enabled.</p><p><em>Since: 2.0.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:lookupComponent" class="def">lookupComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:lookupComponent" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getComponent" class="def">getComponent</a> :: <a href="Distribution-Types-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Types-ComponentName.html#t:ComponentName">ComponentName</a> -> <a href="Distribution-Types-Component.html#t:Component">Component</a> <a href="#v:getComponent" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-PackageId.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.PackageId</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.PackageId</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:PackageIdentifier">PackageIdentifier</a> = <a href="#v:PackageIdentifier">PackageIdentifier</a> {<ul class="subs"><li><a href="#v:pkgName">pkgName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></li><li><a href="#v:pkgVersion">pkgVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:PackageId">PackageId</a> = <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PackageIdentifier" class="def">PackageIdentifier</a> <a href="#t:PackageIdentifier" class="selflink">#</a></p><div class="doc"><p>The name and version of a package.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:PackageIdentifier" class="def">PackageIdentifier</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:pkgName" class="def">pkgName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></dfn><div class="doc"><p>The name of this package, eg. foo</p></div></li><li><dfn class="src"><a id="v:pkgVersion" class="def">pkgVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a></dfn><div class="doc"><p>the version of this package, eg 1.2</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:PackageIdentifier" class="caption collapser" onclick="toggleSection('i:PackageIdentifier')">Instances</p><div id="section.i:PackageIdentifier" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Eq:1" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Data:2" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> c <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> m <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> m <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> m <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Ord:3" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Read:4" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Show:5" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Generic:6" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> x -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Binary:7" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:NFData:8" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:NFData:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:NFData:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Text:9" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Package:10" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Package:10')"></span> <a href="Distribution-Package.html#t:Package">Package</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:Package" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Package:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:packageId">packageId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> -> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#v:packageId" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageIdentifier:Rep:11" class="instance expander" onclick="toggleSection('i:id:PackageIdentifier:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a></span> <a href="#t:PackageIdentifier" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageIdentifier:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "PackageIdentifier" "Distribution.Types.PackageId" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PackageIdentifier" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "pkgVersion") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:PackageId" class="def">PackageId</a> = <a href="Distribution-Types-PackageId.html#t:PackageIdentifier">PackageIdentifier</a> <a href="#t:PackageId" class="selflink">#</a></p><div class="doc"><p>Type alias so we can use the shorter name PackageId.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-PackageName.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.PackageName</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.PackageName</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:PackageName">PackageName</a></li><li class="src short"><a href="#v:unPackageName">unPackageName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkPackageName">mkPackageName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PackageName" class="def">PackageName</a> <a href="#t:PackageName" class="selflink">#</a></p><div class="doc"><p>A package name.</p><p>Use <code><a href="Distribution-Types-PackageName.html#v:mkPackageName">mkPackageName</a></code> and <code><a href="Distribution-Types-PackageName.html#v:unPackageName">unPackageName</a></code> to convert from/to a+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code>.</p><p>This type is opaque since <code>Cabal-2.0</code></p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:PackageName" class="caption collapser" onclick="toggleSection('i:PackageName')">Instances</p><div id="section.i:PackageName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:Eq:1" class="instance expander" onclick="toggleSection('i:id:PackageName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:Data:2" class="instance expander" onclick="toggleSection('i:id:PackageName:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> c <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> m <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> m <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> m <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:Ord:3" class="instance expander" onclick="toggleSection('i:id:PackageName:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:Read:4" class="instance expander" onclick="toggleSection('i:id:PackageName:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:Show:5" class="instance expander" onclick="toggleSection('i:id:PackageName:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:IsString:6" class="instance expander" onclick="toggleSection('i:id:PackageName:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc"><p><code><a href="Distribution-Types-PackageName.html#v:mkPackageName">mkPackageName</a></code></p><p><em>Since: 2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:Generic:7" class="instance expander" onclick="toggleSection('i:id:PackageName:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> x -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:Binary:8" class="instance expander" onclick="toggleSection('i:id:PackageName:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:NFData:9" class="instance expander" onclick="toggleSection('i:id:PackageName:NFData:9')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:NFData:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:Text:10" class="instance expander" onclick="toggleSection('i:id:PackageName:Text:10')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:Text:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PackageName:Rep:11" class="instance expander" onclick="toggleSection('i:id:PackageName:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></span> <a href="#t:PackageName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PackageName:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "PackageName" "Distribution.Types.PackageName" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PackageName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unPackageName" class="def">unPackageName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unPackageName" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></code> to <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p></div></div><div class="top"><p class="src"><a id="v:mkPackageName" class="def">mkPackageName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:mkPackageName" class="selflink">#</a></p><div class="doc"><p>Construct a <code><a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></code> from a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><code><a href="Distribution-Types-PackageName.html#v:mkPackageName">mkPackageName</a></code> is the inverse to <code><a href="Distribution-Types-PackageName.html#v:unPackageName">unPackageName</a></code></p><p>Note: No validations are performed to ensure that the resulting+ <code><a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></code> is valid</p><p><em>Since: 2.0</em></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-PkgconfigDependency.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.PkgconfigDependency</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.PkgconfigDependency</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:PkgconfigDependency">PkgconfigDependency</a> = <a href="#v:PkgconfigDependency">PkgconfigDependency</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PkgconfigDependency" class="def">PkgconfigDependency</a> <a href="#t:PkgconfigDependency" class="selflink">#</a></p><div class="doc"><p>Describes a dependency on a pkg-config library</p><p><em>Since: 2.0</em></p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:PkgconfigDependency" class="def">PkgconfigDependency</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:PkgconfigDependency" class="caption collapser" onclick="toggleSection('i:PkgconfigDependency')">Instances</p><div id="section.i:PkgconfigDependency" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigDependency:Eq:1" class="instance expander" onclick="toggleSection('i:id:PkgconfigDependency:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:PkgconfigDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigDependency:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigDependency:Data:2" class="instance expander" onclick="toggleSection('i:id:PkgconfigDependency:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:PkgconfigDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigDependency:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> c <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> m <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> m <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> m <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigDependency:Read:3" class="instance expander" onclick="toggleSection('i:id:PkgconfigDependency:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:PkgconfigDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigDependency:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigDependency:Show:4" class="instance expander" onclick="toggleSection('i:id:PkgconfigDependency:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:PkgconfigDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigDependency:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigDependency:Generic:5" class="instance expander" onclick="toggleSection('i:id:PkgconfigDependency:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:PkgconfigDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigDependency:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> x -> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigDependency:Binary:6" class="instance expander" onclick="toggleSection('i:id:PkgconfigDependency:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:PkgconfigDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigDependency:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigDependency:NFData:7" class="instance expander" onclick="toggleSection('i:id:PkgconfigDependency:NFData:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:PkgconfigDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigDependency:NFData:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigDependency:Text:8" class="instance expander" onclick="toggleSection('i:id:PkgconfigDependency:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:PkgconfigDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigDependency:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigDependency:Rep:9" class="instance expander" onclick="toggleSection('i:id:PkgconfigDependency:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a></span> <a href="#t:PkgconfigDependency" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigDependency:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">PkgconfigDependency</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "PkgconfigDependency" "Distribution.Types.PkgconfigDependency" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PkgconfigDependency" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-PkgconfigName.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.PkgconfigName</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.PkgconfigName</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:PkgconfigName">PkgconfigName</a></li><li class="src short"><a href="#v:unPkgconfigName">unPkgconfigName</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkPkgconfigName">mkPkgconfigName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PkgconfigName" class="def">PkgconfigName</a> <a href="#t:PkgconfigName" class="selflink">#</a></p><div class="doc"><p>A pkg-config library name</p><p>This is parsed as any valid argument to the pkg-config utility.</p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:PkgconfigName" class="caption collapser" onclick="toggleSection('i:PkgconfigName')">Instances</p><div id="section.i:PkgconfigName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:Eq:1" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:Data:2" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> c <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> m <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> m <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> m <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:Ord:3" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:Read:4" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:Show:5" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:IsString:6" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc"><p><code><a href="Distribution-Types-PkgconfigName.html#v:mkPkgconfigName">mkPkgconfigName</a></code></p><p><em>Since: 2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:Generic:7" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> x -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:Binary:8" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:NFData:9" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:NFData:9')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:NFData:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:Text:10" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:Text:10')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:Text:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:PkgconfigName:Rep:11" class="instance expander" onclick="toggleSection('i:id:PkgconfigName:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></span> <a href="#t:PkgconfigName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:PkgconfigName:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "PkgconfigName" "Distribution.Types.PkgconfigName" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PkgconfigName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unPkgconfigName" class="def">unPkgconfigName</a> :: <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unPkgconfigName" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></code> to <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:mkPkgconfigName" class="def">mkPkgconfigName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a> <a href="#v:mkPkgconfigName" class="selflink">#</a></p><div class="doc"><p>Construct a <code><a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></code> from a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><code><a href="Distribution-Types-PkgconfigName.html#v:mkPkgconfigName">mkPkgconfigName</a></code> is the inverse to <code><a href="Distribution-Types-PkgconfigName.html#v:unPkgconfigName">unPkgconfigName</a></code></p><p>Note: No validations are performed to ensure that the resulting+ <code><a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">PkgconfigName</a></code> is valid</p><p><em>Since: 2.0</em></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-SetupBuildInfo.html view
@@ -0,0 +1,7 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.SetupBuildInfo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.SetupBuildInfo</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SetupBuildInfo" class="def">SetupBuildInfo</a> <a href="#t:SetupBuildInfo" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:SetupBuildInfo" class="def">SetupBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:setupDepends" class="def">setupDepends</a> :: [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>]</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:defaultSetupDepends" class="def">defaultSetupDepends</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></dfn><div class="doc"><p>Is this a default 'custom-setup' section added by the cabal-install+ code (as opposed to user-provided)? This field is only used+ internally, and doesn't correspond to anything in the .cabal+ file. See #3199.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:SetupBuildInfo" class="caption collapser" onclick="toggleSection('i:SetupBuildInfo')">Instances</p><div id="section.i:SetupBuildInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Eq:1" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Data:2" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> c <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> m <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> m <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> m <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Read:3" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Show:4" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Generic:5" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> x -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Monoid:7" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>] -> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Binary:8" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SetupBuildInfo:Rep:9" class="instance expander" onclick="toggleSection('i:id:SetupBuildInfo:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a></span> <a href="#t:SetupBuildInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SetupBuildInfo:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">SetupBuildInfo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "SetupBuildInfo" "Distribution.Types.SetupBuildInfo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SetupBuildInfo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "setupDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="Distribution-Types-Dependency.html#t:Dependency">Dependency</a>])) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "defaultSetupDepends") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-SourceRepo.html view
@@ -0,0 +1,34 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.SourceRepo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.SourceRepo</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:SourceRepo">SourceRepo</a> = <a href="#v:SourceRepo">SourceRepo</a> {<ul class="subs"><li><a href="#v:repoKind">repoKind</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></li><li><a href="#v:repoType">repoType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></li><li><a href="#v:repoLocation">repoLocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoModule">repoModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoBranch">repoBranch</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoTag">repoTag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:repoSubdir">repoSubdir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:RepoKind">RepoKind</a><ul class="subs"><li>= <a href="#v:RepoHead">RepoHead</a></li><li>| <a href="#v:RepoThis">RepoThis</a></li><li>| <a href="#v:RepoKindUnknown">RepoKindUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:RepoType">RepoType</a><ul class="subs"><li>= <a href="#v:Darcs">Darcs</a></li><li>| <a href="#v:Git">Git</a></li><li>| <a href="#v:SVN">SVN</a></li><li>| <a href="#v:CVS">CVS</a></li><li>| <a href="#v:Mercurial">Mercurial</a></li><li>| <a href="#v:GnuArch">GnuArch</a></li><li>| <a href="#v:Bazaar">Bazaar</a></li><li>| <a href="#v:Monotone">Monotone</a></li><li>| <a href="#v:OtherRepoType">OtherRepoType</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:knownRepoTypes">knownRepoTypes</a> :: [<a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a>]</li><li class="src short"><a href="#v:emptySourceRepo">emptySourceRepo</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a></li><li class="src short"><a href="#v:classifyRepoType">classifyRepoType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></li><li class="src short"><a href="#v:classifyRepoKind">classifyRepoKind</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SourceRepo" class="def">SourceRepo</a> <a href="#t:SourceRepo" class="selflink">#</a></p><div class="doc"><p>Information about the source revision control system for a package.</p><p>When specifying a repo it is useful to know the meaning or intention of the+ information as doing so enables automation. There are two obvious common+ purposes: one is to find the repo for the latest development version, the+ other is to find the repo for this specific release. The <code>ReopKind</code>+ specifies which one we mean (or another custom one).</p><p>A package can specify one or the other kind or both. Most will specify just+ a head repo but some may want to specify a repo to reconstruct the sources+ for this package release.</p><p>The required information is the <code><a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></code> which tells us if it's using+ <code><a href="Distribution-Types-SourceRepo.html#v:Darcs">Darcs</a></code>, <code><a href="Distribution-Types-SourceRepo.html#v:Git">Git</a></code> for example. The <code><a href="Distribution-Types-SourceRepo.html#v:repoLocation">repoLocation</a></code> and other details are+ interpreted according to the repo type.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:SourceRepo" class="def">SourceRepo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:repoKind" class="def">repoKind</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></dfn><div class="doc"><p>The kind of repo. This field is required.</p></div></li><li><dfn class="src"><a id="v:repoType" class="def">repoType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></dfn><div class="doc"><p>The type of the source repository system for this repo, eg <code><a href="Distribution-Types-SourceRepo.html#v:Darcs">Darcs</a></code> or+ <code><a href="Distribution-Types-SourceRepo.html#v:Git">Git</a></code>. This field is required.</p></div></li><li><dfn class="src"><a id="v:repoLocation" class="def">repoLocation</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The location of the repository. For most <code><a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></code>s this is a URL.+ This field is required.</p></div></li><li><dfn class="src"><a id="v:repoModule" class="def">repoModule</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p><code><a href="Distribution-Types-SourceRepo.html#v:CVS">CVS</a></code> can put multiple "modules" on one server and requires a+ module name in addition to the location to identify a particular repo.+ Logically this is part of the location but unfortunately has to be+ specified separately. This field is required for the <code><a href="Distribution-Types-SourceRepo.html#v:CVS">CVS</a></code> <code><a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></code> and+ should not be given otherwise.</p></div></li><li><dfn class="src"><a id="v:repoBranch" class="def">repoBranch</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The name or identifier of the branch, if any. Many source control+ systems have the notion of multiple branches in a repo that exist in the+ same location. For example <code><a href="Distribution-Types-SourceRepo.html#v:Git">Git</a></code> and <code><a href="Distribution-Types-SourceRepo.html#v:CVS">CVS</a></code> use this while systems like+ <code><a href="Distribution-Types-SourceRepo.html#v:Darcs">Darcs</a></code> use different locations for different branches. This field is+ optional but should be used if necessary to identify the sources,+ especially for the <code><a href="Distribution-Types-SourceRepo.html#v:RepoThis">RepoThis</a></code> repo kind.</p></div></li><li><dfn class="src"><a id="v:repoTag" class="def">repoTag</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The tag identify a particular state of the repository. This should be+ given for the <code><a href="Distribution-Types-SourceRepo.html#v:RepoThis">RepoThis</a></code> repo kind and not for <code><a href="Distribution-Types-SourceRepo.html#v:RepoHead">RepoHead</a></code> kind.</p></div></li><li><dfn class="src"><a id="v:repoSubdir" class="def">repoSubdir</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></dfn><div class="doc"><p>Some repositories contain multiple projects in different subdirectories+ This field specifies the subdirectory where this packages sources can be+ found, eg the subdirectory containing the <code>.cabal</code> file. It is interpreted+ relative to the root of the repository. This field is optional. If not+ given the default is "." ie no subdirectory.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:SourceRepo" class="caption collapser" onclick="toggleSection('i:SourceRepo')">Instances</p><div id="section.i:SourceRepo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Eq:1" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Data:2" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> c <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> m <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> m <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> m <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Read:3" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Show:4" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Generic:5" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> x -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Binary:6" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SourceRepo:Rep:7" class="instance expander" onclick="toggleSection('i:id:SourceRepo:Rep:7')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a></span> <a href="#t:SourceRepo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SourceRepo:Rep:7" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "SourceRepo" "Distribution.Types.SourceRepo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SourceRepo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoKind") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoType") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoLocation") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoModule") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoBranch") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoTag") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "repoSubdir") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RepoKind" class="def">RepoKind</a> <a href="#t:RepoKind" class="selflink">#</a></p><div class="doc"><p>What this repo info is for, what it represents.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RepoHead" class="def">RepoHead</a></td><td class="doc"><p>The repository for the "head" or development version of the project.+ This repo is where we should track the latest development activity or+ the usual repo people should get to contribute patches.</p></td></tr><tr><td class="src"><a id="v:RepoThis" class="def">RepoThis</a></td><td class="doc"><p>The repository containing the sources for this exact package version+ or release. For this kind of repo a tag should be given to give enough+ information to re-create the exact sources.</p></td></tr><tr><td class="src"><a id="v:RepoKindUnknown" class="def">RepoKindUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:RepoKind" class="caption collapser" onclick="toggleSection('i:RepoKind')">Instances</p><div id="section.i:RepoKind" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Eq:1" class="instance expander" onclick="toggleSection('i:id:RepoKind:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Data:2" class="instance expander" onclick="toggleSection('i:id:RepoKind:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> c <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> m <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> m <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> m <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Ord:3" class="instance expander" onclick="toggleSection('i:id:RepoKind:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Read:4" class="instance expander" onclick="toggleSection('i:id:RepoKind:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Show:5" class="instance expander" onclick="toggleSection('i:id:RepoKind:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Generic:6" class="instance expander" onclick="toggleSection('i:id:RepoKind:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> x -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Binary:7" class="instance expander" onclick="toggleSection('i:id:RepoKind:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Text:8" class="instance expander" onclick="toggleSection('i:id:RepoKind:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoKind:Rep:9" class="instance expander" onclick="toggleSection('i:id:RepoKind:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a></span> <a href="#t:RepoKind" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoKind:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "RepoKind" "Distribution.Types.SourceRepo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RepoHead" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RepoThis" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RepoKindUnknown" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RepoType" class="def">RepoType</a> <a href="#t:RepoType" class="selflink">#</a></p><div class="doc"><p>An enumeration of common source control systems. The fields used in the+ <code><a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a></code> depend on the type of repo. The tools and methods used to+ obtain and track the repo depend on the repo type.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Darcs" class="def">Darcs</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Git" class="def">Git</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:SVN" class="def">SVN</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:CVS" class="def">CVS</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Mercurial" class="def">Mercurial</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:GnuArch" class="def">GnuArch</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Bazaar" class="def">Bazaar</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:Monotone" class="def">Monotone</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:OtherRepoType" class="def">OtherRepoType</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:RepoType" class="caption collapser" onclick="toggleSection('i:RepoType')">Instances</p><div id="section.i:RepoType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Eq:1" class="instance expander" onclick="toggleSection('i:id:RepoType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Data:2" class="instance expander" onclick="toggleSection('i:id:RepoType:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> c <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> m <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> m <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> m <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Ord:3" class="instance expander" onclick="toggleSection('i:id:RepoType:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Read:4" class="instance expander" onclick="toggleSection('i:id:RepoType:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Show:5" class="instance expander" onclick="toggleSection('i:id:RepoType:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Generic:6" class="instance expander" onclick="toggleSection('i:id:RepoType:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> x -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Binary:7" class="instance expander" onclick="toggleSection('i:id:RepoType:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Text:8" class="instance expander" onclick="toggleSection('i:id:RepoType:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:RepoType:Rep:9" class="instance expander" onclick="toggleSection('i:id:RepoType:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a></span> <a href="#t:RepoType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:RepoType:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "RepoType" "Distribution.Types.SourceRepo" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Darcs" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Git" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SVN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CVS" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Mercurial" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GnuArch" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Bazaar" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Monotone" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OtherRepoType" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownRepoTypes" class="def">knownRepoTypes</a> :: [<a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a>] <a href="#v:knownRepoTypes" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emptySourceRepo" class="def">emptySourceRepo</a> :: <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> -> <a href="Distribution-Types-SourceRepo.html#t:SourceRepo">SourceRepo</a> <a href="#v:emptySourceRepo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:classifyRepoType" class="def">classifyRepoType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoType">RepoType</a> <a href="#v:classifyRepoType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:classifyRepoKind" class="def">classifyRepoKind</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-SourceRepo.html#t:RepoKind">RepoKind</a> <a href="#v:classifyRepoKind" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-TargetInfo.html view
@@ -0,0 +1,8 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.TargetInfo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.TargetInfo</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:TargetInfo">TargetInfo</a> = <a href="#v:TargetInfo">TargetInfo</a> {<ul class="subs"><li><a href="#v:targetCLBI">targetCLBI</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></li><li><a href="#v:targetComponent">targetComponent</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a></li></ul>}</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TargetInfo" class="def">TargetInfo</a> <a href="#t:TargetInfo" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></code> contains all the information necessary to build a+ specific target (e.g., component<em>module</em>file) in a package. In+ principle, one can get the <code><a href="Distribution-Types-Component.html#t:Component">Component</a></code> from a+ <code><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></code> and <code>LocalBuildInfo</code>, but it is much more+ convenient to have the component in hand.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TargetInfo" class="def">TargetInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:targetCLBI" class="def">targetCLBI</a> :: <a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:targetComponent" class="def">targetComponent</a> :: <a href="Distribution-Types-Component.html#t:Component">Component</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:TargetInfo" class="caption collapser" onclick="toggleSection('i:TargetInfo')">Instances</p><div id="section.i:TargetInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TargetInfo:IsNode:1" class="instance expander" onclick="toggleSection('i:id:TargetInfo:IsNode:1')"></span> <a href="Distribution-Compat-Graph.html#t:IsNode">IsNode</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></span> <a href="#t:TargetInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TargetInfo:IsNode:1" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Key" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:nodeKey">nodeKey</a> :: <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> <a href="#v:nodeKey" class="selflink">#</a></p><p class="src"><a href="#v:nodeNeighbors">nodeNeighbors</a> :: <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> -> [<a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a>] <a href="#v:nodeNeighbors" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TargetInfo:Key:2" class="instance expander" onclick="toggleSection('i:id:TargetInfo:Key:2')"></span> <span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a></span> <a href="#t:TargetInfo" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TargetInfo:Key:2" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="Distribution-Compat-Graph.html#t:Key">Key</a> <a href="Distribution-Types-TargetInfo.html#t:TargetInfo">TargetInfo</a> = <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-TestSuite.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.TestSuite</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.TestSuite</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:TestSuite">TestSuite</a> = <a href="#v:TestSuite">TestSuite</a> {<ul class="subs"><li><a href="#v:testName">testName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li><a href="#v:testInterface">testInterface</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></li><li><a href="#v:testBuildInfo">testBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></li></ul>}</li><li class="src short"><a href="#v:emptyTestSuite">emptyTestSuite</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></li><li class="src short"><a href="#v:testType">testType</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></li><li class="src short"><a href="#v:testModules">testModules</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li><li class="src short"><a href="#v:testModulesAutogen">testModulesAutogen</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestSuite" class="def">TestSuite</a> <a href="#t:TestSuite" class="selflink">#</a></p><div class="doc"><p>A "test-suite" stanza in a cabal file.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestSuite" class="def">TestSuite</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:testName" class="def">testName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testInterface" class="def">testInterface</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:testBuildInfo" class="def">testBuildInfo</a> :: <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:TestSuite" class="caption collapser" onclick="toggleSection('i:TestSuite')">Instances</p><div id="section.i:TestSuite" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Eq:1" class="instance expander" onclick="toggleSection('i:id:TestSuite:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Data:2" class="instance expander" onclick="toggleSection('i:id:TestSuite:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> c <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> m <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> m <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> m <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Read:3" class="instance expander" onclick="toggleSection('i:id:TestSuite:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Show:4" class="instance expander" onclick="toggleSection('i:id:TestSuite:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Generic:5" class="instance expander" onclick="toggleSection('i:id:TestSuite:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> x -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:TestSuite:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Monoid:7" class="instance expander" onclick="toggleSection('i:id:TestSuite:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>] -> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Binary:8" class="instance expander" onclick="toggleSection('i:id:TestSuite:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuite:Rep:9" class="instance expander" onclick="toggleSection('i:id:TestSuite:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a></span> <a href="#t:TestSuite" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuite:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "TestSuite" "Distribution.Types.TestSuite" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuite" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testName") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testInterface") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "testBuildInfo") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-BuildInfo.html#t:BuildInfo">BuildInfo</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:emptyTestSuite" class="def">emptyTestSuite</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> <a href="#v:emptyTestSuite" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:testType" class="def">testType</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:testType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:testModules" class="def">testModules</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:testModules" class="selflink">#</a></p><div class="doc"><p>Get all the module names from a test suite.</p></div></div><div class="top"><p class="src"><a id="v:testModulesAutogen" class="def">testModulesAutogen</a> :: <a href="Distribution-Types-TestSuite.html#t:TestSuite">TestSuite</a> -> [<a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>] <a href="#v:testModulesAutogen" class="selflink">#</a></p><div class="doc"><p>Get all the auto generated module names from a test suite.+ This are a subset of <code><a href="Distribution-Types-TestSuite.html#v:testModules">testModules</a></code>.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-TestSuiteInterface.html view
@@ -0,0 +1,11 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.TestSuiteInterface</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.TestSuiteInterface</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:TestSuiteInterface">TestSuiteInterface</a><ul class="subs"><li>= <a href="#v:TestSuiteExeV10">TestSuiteExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></li><li>| <a href="#v:TestSuiteLibV09">TestSuiteLibV09</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li>| <a href="#v:TestSuiteUnsupported">TestSuiteUnsupported</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></li></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestSuiteInterface" class="def">TestSuiteInterface</a> <a href="#t:TestSuiteInterface" class="selflink">#</a></p><div class="doc"><p>The test suite interfaces that are currently defined. Each test suite must+ specify which interface it supports.</p><p>More interfaces may be defined in future, either new revisions or totally+ new interfaces.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestSuiteExeV10" class="def">TestSuiteExeV10</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Test interface "exitcode-stdio-1.0". The test-suite takes the form+ of an executable. It returns a zero exit code for success, non-zero for+ failure. The stdout and stderr channels may be logged. It takes no+ command line parameters and nothing on stdin.</p></td></tr><tr><td class="src"><a id="v:TestSuiteLibV09" class="def">TestSuiteLibV09</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></td><td class="doc"><p>Test interface "detailed-0.9". The test-suite takes the form of a+ library containing a designated module that exports "tests :: [Test]".</p></td></tr><tr><td class="src"><a id="v:TestSuiteUnsupported" class="def">TestSuiteUnsupported</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></td><td class="doc"><p>A test suite that does not conform to one of the above interfaces for+ the given reason (e.g. unknown test type).</p></td></tr></table></div><div class="subs instances"><p id="control.i:TestSuiteInterface" class="caption collapser" onclick="toggleSection('i:TestSuiteInterface')">Instances</p><div id="section.i:TestSuiteInterface" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Eq:1" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Data:2" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> c <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> m <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> m <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> m <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Read:3" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Show:4" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Generic:5" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> x -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Semigroup:6" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Semigroup:6')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Semigroup:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Monoid:7" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Monoid:7')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Monoid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a>] -> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Binary:8" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestSuiteInterface:Rep:9" class="instance expander" onclick="toggleSection('i:id:TestSuiteInterface:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a></span> <a href="#t:TestSuiteInterface" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestSuiteInterface:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">TestSuiteInterface</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "TestSuiteInterface" "Distribution.Types.TestSuiteInterface" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuiteExeV10" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuiteLibV09" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestSuiteUnsupported" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a>)))))</div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-TestType.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.TestType</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.TestType</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:TestType">TestType</a><ul class="subs"><li>= <a href="#v:TestTypeExe">TestTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:TestTypeLib">TestTypeLib</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:TestTypeUnknown">TestTypeUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></li></ul></li><li class="src short"><a href="#v:knownTestTypes">knownTestTypes</a> :: [<a href="Distribution-Types-TestType.html#t:TestType">TestType</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TestType" class="def">TestType</a> <a href="#t:TestType" class="selflink">#</a></p><div class="doc"><p>The "test-type" field in the test suite stanza.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TestTypeExe" class="def">TestTypeExe</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>"type: exitcode-stdio-x.y"</p></td></tr><tr><td class="src"><a id="v:TestTypeLib" class="def">TestTypeLib</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>"type: detailed-x.y"</p></td></tr><tr><td class="src"><a id="v:TestTypeUnknown" class="def">TestTypeUnknown</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><p>Some unknown test type e.g. "type: foo"</p></td></tr></table></div><div class="subs instances"><p id="control.i:TestType" class="caption collapser" onclick="toggleSection('i:TestType')">Instances</p><div id="section.i:TestType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Eq:1" class="instance expander" onclick="toggleSection('i:id:TestType:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Data:2" class="instance expander" onclick="toggleSection('i:id:TestType:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> c <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-TestType.html#t:TestType">TestType</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-TestType.html#t:TestType">TestType</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> m <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> m <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> m <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Read:3" class="instance expander" onclick="toggleSection('i:id:TestType:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-TestType.html#t:TestType">TestType</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-TestType.html#t:TestType">TestType</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Show:4" class="instance expander" onclick="toggleSection('i:id:TestType:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-TestType.html#t:TestType">TestType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Generic:5" class="instance expander" onclick="toggleSection('i:id:TestType:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> x -> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Binary:6" class="instance expander" onclick="toggleSection('i:id:TestType:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-TestType.html#t:TestType">TestType</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Text:7" class="instance expander" onclick="toggleSection('i:id:TestType:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TestType:Rep:8" class="instance expander" onclick="toggleSection('i:id:TestType:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a></span> <a href="#t:TestType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:TestType:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-TestType.html#t:TestType">TestType</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "TestType" "Distribution.Types.TestType" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestTypeExe" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestTypeLib" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TestTypeUnknown" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownTestTypes" class="def">knownTestTypes</a> :: [<a href="Distribution-Types-TestType.html#t:TestType">TestType</a>] <a href="#v:knownTestTypes" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-UnitId.html view
@@ -0,0 +1,34 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.UnitId</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.UnitId</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:UnitId">UnitId</a></li><li class="src short"><a href="#v:unUnitId">unUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkUnitId">mkUnitId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:DefUnitId">DefUnitId</a></li><li class="src short"><a href="#v:unsafeMkDefUnitId">unsafeMkDefUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></li><li class="src short"><a href="#v:unDefUnitId">unDefUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><a href="#v:newSimpleUnitId">newSimpleUnitId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><a href="#v:mkLegacyUnitId">mkLegacyUnitId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li><li class="src short"><a href="#v:getHSLibraryName">getHSLibraryName</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:InstalledPackageId">InstalledPackageId</a> = <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:UnitId" class="def">UnitId</a> <a href="#t:UnitId" class="selflink">#</a></p><div class="doc"><p>A unit identifier identifies a (possibly instantiated)+ package/component that can be installed the installed package+ database. There are several types of components that can be+ installed:</p><ul><li>A traditional library with no holes, so that <code>unitIdHash</code>+ is <code>Nothing</code>. In the absence of Backpack, <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>+ is the same as a <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code>.</li><li>An indefinite, Backpack library with holes. In this case,+ <code>unitIdHash</code> is still <code>Nothing</code>, but in the install,+ there are only interfaces, no compiled objects.</li><li>An instantiated Backpack library with all the holes+ filled in. <code>unitIdHash</code> is a <code>Just</code> a hash of the+ instantiating mapping.</li></ul><p>A unit is a component plus the additional information on how the+ holes are filled in. Thus there is a one to many relationship: for a+ particular component there are many different ways of filling in the+ holes, and each different combination is a unit (and has a separate+ <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>).</p><p><code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> is distinct from <code>OpenUnitId</code>, in that it is always+ installed, whereas <code>OpenUnitId</code> are intermediate unit identities+ that arise during mixin linking, and don't necessarily correspond+ to any actually installed unit. Since the mapping is not actually+ recorded in a <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>, you can't actually substitute over them+ (but you can substitute over <code>OpenUnitId</code>). See also+ <a href="Distribution-Backpack-FullUnitId.html">Distribution.Backpack.FullUnitId</a> for a mechanism for expanding an+ instantiated <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> to retrieve its mapping.</p><p>Backwards compatibility note: if you need to get the string+ representation of a UnitId to pass, e.g., as a <code>-package-id</code>+ flag, use the <code><a href="Distribution-Text.html#v:display">display</a></code> function, which will work on all+ versions of Cabal.</p></div><div class="subs instances"><p id="control.i:UnitId" class="caption collapser" onclick="toggleSection('i:UnitId')">Instances</p><div id="section.i:UnitId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:Eq:1" class="instance expander" onclick="toggleSection('i:id:UnitId:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:Data:2" class="instance expander" onclick="toggleSection('i:id:UnitId:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> c <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> m <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> m <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> m <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:Ord:3" class="instance expander" onclick="toggleSection('i:id:UnitId:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:Read:4" class="instance expander" onclick="toggleSection('i:id:UnitId:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:Show:5" class="instance expander" onclick="toggleSection('i:id:UnitId:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:IsString:6" class="instance expander" onclick="toggleSection('i:id:UnitId:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc"><p><code><a href="Distribution-Types-UnitId.html#v:mkUnitId">mkUnitId</a></code></p><p><em>Since: 2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:Generic:7" class="instance expander" onclick="toggleSection('i:id:UnitId:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> x -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:Binary:8" class="instance expander" onclick="toggleSection('i:id:UnitId:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:NFData:9" class="instance expander" onclick="toggleSection('i:id:UnitId:NFData:9')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:NFData:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:Text:10" class="instance expander" onclick="toggleSection('i:id:UnitId:Text:10')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc"><p>The textual format for <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> coincides with the format+ GHC accepts for <code>-package-id</code>.</p></td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:Text:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnitId:Rep:11" class="instance expander" onclick="toggleSection('i:id:UnitId:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></span> <a href="#t:UnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnitId:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "UnitId" "Distribution.Types.UnitId" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnitId" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unUnitId" class="def">unUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unUnitId" class="selflink">#</a></p><div class="doc"><p>If you need backwards compatibility, consider using <code><a href="Distribution-Text.html#v:display">display</a></code>+ instead, which is supported by all versions of Cabal.</p></div></div><div class="top"><p class="src"><a id="v:mkUnitId" class="def">mkUnitId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:mkUnitId" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DefUnitId" class="def">DefUnitId</a> <a href="#t:DefUnitId" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> for a definite package. The <code><a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></code> invariant says+ that a <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code> identified this way is definite; i.e., it has no+ unfilled holes.</p></div><div class="subs instances"><p id="control.i:DefUnitId" class="caption collapser" onclick="toggleSection('i:DefUnitId')">Instances</p><div id="section.i:DefUnitId" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Eq:1" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Data:2" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> c <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> m <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> m <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> m <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Ord:3" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Read:4" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Show:5" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Generic:6" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> x -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Binary:7" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:NFData:8" class="instance expander" onclick="toggleSection('i:id:DefUnitId:NFData:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:NFData:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Text:9" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:DefUnitId:Rep:10" class="instance expander" onclick="toggleSection('i:id:DefUnitId:Rep:10')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></span> <a href="#t:DefUnitId" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:DefUnitId:Rep:10" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "DefUnitId" "Distribution.Types.UnitId" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DefUnitId" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "unDefUnitId") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unsafeMkDefUnitId" class="def">unsafeMkDefUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> <a href="#v:unsafeMkDefUnitId" class="selflink">#</a></p><div class="doc"><p>Unsafely create a <code><a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></code> from a <code><a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a></code>. Your responsibility+ is to ensure that the <code><a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a></code> invariant holds.</p></div></div><div class="top"><p class="src"><a id="v:unDefUnitId" class="def">unDefUnitId</a> :: <a href="Distribution-Types-UnitId.html#t:DefUnitId">DefUnitId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:unDefUnitId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newSimpleUnitId" class="def">newSimpleUnitId</a> :: <a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:newSimpleUnitId" class="selflink">#</a></p><div class="doc"><p>Create a unit identity with no associated hash directly+ from a <code><a href="Distribution-Types-ComponentId.html#t:ComponentId">ComponentId</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:mkLegacyUnitId" class="def">mkLegacyUnitId</a> :: <a href="Distribution-Types-PackageId.html#t:PackageId">PackageId</a> -> <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#v:mkLegacyUnitId" class="selflink">#</a></p><div class="doc"><p>Make an old-style UnitId from a package identifier.+ Assumed to be for the public library</p></div></div><div class="top"><p class="src"><a id="v:getHSLibraryName" class="def">getHSLibraryName</a> :: <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:getHSLibraryName" class="selflink">#</a></p><div class="doc"><p>Returns library name prefixed with HS, suitable for filenames</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:InstalledPackageId" class="def">InstalledPackageId</a> = <a href="Distribution-Types-UnitId.html#t:UnitId">UnitId</a> <a href="#t:InstalledPackageId" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Use UnitId instead</p></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Types-UnqualComponentName.html view
@@ -0,0 +1,10 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Types.UnqualComponentName</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Types.UnqualComponentName</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:UnqualComponentName">UnqualComponentName</a></li><li class="src short"><a href="#v:unUnqualComponentName">unUnqualComponentName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:mkUnqualComponentName">mkUnqualComponentName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li class="src short"><a href="#v:packageNameToUnqualComponentName">packageNameToUnqualComponentName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></li><li class="src short"><a href="#v:unqualComponentNameToPackageName">unqualComponentNameToPackageName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:UnqualComponentName" class="def">UnqualComponentName</a> <a href="#t:UnqualComponentName" class="selflink">#</a></p><div class="doc"><p>An unqualified component name, for any kind of component.</p><p>This is distinguished from a <code>ComponentName</code> and <code>ComponentId</code>. The former+ also states which of a library, executable, etc the name refers too. The+ later uniquely identifiers a component and its closure.</p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:UnqualComponentName" class="caption collapser" onclick="toggleSection('i:UnqualComponentName')">Instances</p><div id="section.i:UnqualComponentName" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Eq:1" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Data:2" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> c <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> m <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> m <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> m <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Ord:3" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Read:4" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Show:5" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:IsString:6" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc"><p><code><a href="Distribution-Types-UnqualComponentName.html#v:mkUnqualComponentName">mkUnqualComponentName</a></code></p><p><em>Since: 2.0</em></p></td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Generic:7" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> x -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Semigroup:8" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Semigroup:8')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Semigroup:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Monoid:9" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Monoid:9')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Monoid:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>] -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Binary:10" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Binary:10')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Binary:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:NFData:11" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:NFData:11')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:NFData:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Text:12" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Text:12')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Text:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UnqualComponentName:Rep:13" class="instance expander" onclick="toggleSection('i:id:UnqualComponentName:Rep:13')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></span> <a href="#t:UnqualComponentName" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UnqualComponentName:Rep:13" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "UnqualComponentName" "Distribution.Types.UnqualComponentName" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnqualComponentName" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unUnqualComponentName" class="def">unUnqualComponentName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:unUnqualComponentName" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></code> to <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:mkUnqualComponentName" class="def">mkUnqualComponentName</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:mkUnqualComponentName" class="selflink">#</a></p><div class="doc"><p>Construct a <code><a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></code> from a <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p><p><code><a href="Distribution-Types-UnqualComponentName.html#v:mkUnqualComponentName">mkUnqualComponentName</a></code> is the inverse to <code><a href="Distribution-Types-UnqualComponentName.html#v:unUnqualComponentName">unUnqualComponentName</a></code></p><p>Note: No validations are performed to ensure that the resulting+ <code><a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a></code> is valid</p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:packageNameToUnqualComponentName" class="def">packageNameToUnqualComponentName</a> :: <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> -> <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> <a href="#v:packageNameToUnqualComponentName" class="selflink">#</a></p><div class="doc"><p>Converts a package name to an unqualified component name</p><p>Useful in legacy situations where a package name may refer to an internal+ component, if one is defined with that name.</p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:unqualComponentNameToPackageName" class="def">unqualComponentNameToPackageName</a> :: <a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">UnqualComponentName</a> -> <a href="Distribution-Types-PackageName.html#t:PackageName">PackageName</a> <a href="#v:unqualComponentNameToPackageName" class="selflink">#</a></p><div class="doc"><p>Converts an unqualified component name to a package name</p><p><code><a href="Distribution-Types-UnqualComponentName.html#v:packageNameToUnqualComponentName">packageNameToUnqualComponentName</a></code> is the inverse of+ <code><a href="Distribution-Types-UnqualComponentName.html#v:unqualComponentNameToPackageName">unqualComponentNameToPackageName</a></code>.</p><p>Useful in legacy situations where a package name may refer to an internal+ component, if one is defined with that name.</p><p><em>Since: 2.0</em></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Utils-Generic.html view
@@ -0,0 +1,59 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Utils.Generic</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones Simon Marlow 2003-2004</td></tr><tr><th>License</th><td>BSD3+ portions Copyright (c) 2007, Galois Inc.</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Utils.Generic</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">reading and writing files safely</a></li><li><a href="#g:2">Unicode</a></li><li><a href="#g:3">BOM</a></li><li><a href="#g:4">generic utils</a></li><li><a href="#g:5">FilePath stuff</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A large and somewhat miscellaneous collection of utility functions used+ throughout the rest of the Cabal lib and in other tools that use the Cabal+ lib like <code>cabal-install</code>. It has a very simple set of logging actions. It+ has low level functions for running programs, a bunch of wrappers for+ various directory and file functions that do extra logging.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:withFileContents">withFileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a</li><li class="src short"><a href="#v:writeFileAtomic">writeFileAtomic</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:fromUTF8">fromUTF8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:fromUTF8BS">fromUTF8BS</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:fromUTF8LBS">fromUTF8LBS</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:toUTF8">toUTF8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:readUTF8File">readUTF8File</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:withUTF8FileContents">withUTF8FileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:writeUTF8File">writeUTF8File</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> ()</li><li class="src short"><a href="#v:normaliseLineEndings">normaliseLineEndings</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:startsWithBOM">startsWithBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:fileHasBOM">fileHasBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:ignoreBOM">ignoreBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:dropWhileEndLE">dropWhileEndLE</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> [a]</li><li class="src short"><a href="#v:takeWhileEndLE">takeWhileEndLE</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> [a]</li><li class="src short"><a href="#v:equating">equating</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => (b -> a) -> b -> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:comparing">comparing</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => (b -> a) -> b -> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a></li><li class="src short"><a href="#v:isInfixOf">isInfixOf</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => [a] -> [a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:intercalate">intercalate</a> :: [a] -> [[a]] -> [a]</li><li class="src short"><a href="#v:lowercase">lowercase</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:listUnion">listUnion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] -> [a]</li><li class="src short"><a href="#v:listUnionRight">listUnionRight</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] -> [a]</li><li class="src short"><a href="#v:ordNub">ordNub</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a]</li><li class="src short"><a href="#v:ordNubBy">ordNubBy</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> b => (a -> b) -> [a] -> [a]</li><li class="src short"><a href="#v:ordNubRight">ordNubRight</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a]</li><li class="src short"><a href="#v:safeTail">safeTail</a> :: [a] -> [a]</li><li class="src short"><a href="#v:unintersperse">unintersperse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:wrapText">wrapText</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:wrapLine">wrapLine</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [[<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]]</li><li class="src short"><a href="#v:isAbsoluteOnAnyPlatform">isAbsoluteOnAnyPlatform</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isRelativeOnAnyPlatform">isRelativeOnAnyPlatform</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1 id="g:1">reading and writing files safely</h1><div class="top"><p class="src"><a id="v:withFileContents" class="def">withFileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a <a href="#v:withFileContents" class="selflink">#</a></p><div class="doc"><p>Gets the contents of a file, but guarantee that it gets closed.</p><p>The file is read lazily but if it is not fully consumed by the action then+ the remaining input is truncated and the file is closed.</p></div></div><div class="top"><p class="src"><a id="v:writeFileAtomic" class="def">writeFileAtomic</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:writeFileAtomic" class="selflink">#</a></p><div class="doc"><p>Writes a file atomically.</p><p>The file is either written successfully or an IO exception is raised and+ the original file is left unchanged.</p><p>On windows it is not possible to delete a file that is open by a process.+ This case will give an IO exception but the atomic property is not affected.</p></div></div><h1 id="g:2">Unicode</h1><div class="top"><p class="src"><a id="v:fromUTF8" class="def">fromUTF8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:fromUTF8" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:fromUTF8BS" class="def">fromUTF8BS</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:fromUTF8BS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:fromUTF8LBS" class="def">fromUTF8LBS</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:fromUTF8LBS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:toUTF8" class="def">toUTF8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:toUTF8" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:readUTF8File" class="def">readUTF8File</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:readUTF8File" class="selflink">#</a></p><div class="doc"><p>Reads a UTF8 encoded text file as a Unicode String</p><p>Reads lazily using ordinary <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#v:readFile">readFile</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:withUTF8FileContents" class="def">withUTF8FileContents</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a) -> <a href="Distribution-Compat-Prelude-Internal.html#t:IO">IO</a> a <a href="#v:withUTF8FileContents" class="selflink">#</a></p><div class="doc"><p>Reads a UTF8 encoded text file as a Unicode String</p><p>Same behaviour as <code><a href="Distribution-Utils-Generic.html#v:withFileContents">withFileContents</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:writeUTF8File" class="def">writeUTF8File</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> () <a href="#v:writeUTF8File" class="selflink">#</a></p><div class="doc"><p>Writes a Unicode String as a UTF8 encoded text file.</p><p>Uses <code><a href="Distribution-Utils-Generic.html#v:writeFileAtomic">writeFileAtomic</a></code>, so provides the same guarantees.</p></div></div><div class="top"><p class="src"><a id="v:normaliseLineEndings" class="def">normaliseLineEndings</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:normaliseLineEndings" class="selflink">#</a></p><div class="doc"><p>Fix different systems silly line ending conventions</p></div></div><h1 id="g:3">BOM</h1><div class="top"><p class="src"><a id="v:startsWithBOM" class="def">startsWithBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:startsWithBOM" class="selflink">#</a></p><div class="doc"><p>Whether BOM is at the beginning of the input</p></div></div><div class="top"><p class="src"><a id="v:fileHasBOM" class="def">fileHasBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:fileHasBOM" class="selflink">#</a></p><div class="doc"><p>Check whether a file has Unicode byte order mark (BOM).</p></div></div><div class="top"><p class="src"><a id="v:ignoreBOM" class="def">ignoreBOM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:ignoreBOM" class="selflink">#</a></p><div class="doc"><p>Ignore a Unicode byte order mark (BOM) at the beginning of the input</p></div></div><h1 id="g:4">generic utils</h1><div class="top"><p class="src"><a id="v:dropWhileEndLE" class="def">dropWhileEndLE</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> [a] <a href="#v:dropWhileEndLE" class="selflink">#</a></p><div class="doc"><p><code>dropWhileEndLE p</code> is equivalent to <code>reverse . dropWhile p . reverse</code>, but+ quite a bit faster. The difference between "Data.List.dropWhileEnd" and this+ version is that the one in <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List.html">Data.List</a> is strict in elements, but spine-lazy,+ while this one is spine-strict but lazy in elements. That's what <code>LE</code> stands+ for - "lazy in elements".</p><p>Example:</p><pre>> tail $ Data.List.dropWhileEnd (<3) [undefined, 5, 4, 3, 2, 1]+*** Exception: Prelude.undefined+> tail $ dropWhileEndLE (<3) [undefined, 5, 4, 3, 2, 1]+[5,4,3]+> take 3 $ Data.List.dropWhileEnd (<3) [5, 4, 3, 2, 1, undefined]+[5,4,3]+> take 3 $ dropWhileEndLE (<3) [5, 4, 3, 2, 1, undefined]+*** Exception: Prelude.undefined+</pre></div></div><div class="top"><p class="src"><a id="v:takeWhileEndLE" class="def">takeWhileEndLE</a> :: (a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> [a] <a href="#v:takeWhileEndLE" class="selflink">#</a></p><div class="doc"><p><code>takeWhileEndLE p</code> is equivalent to <code>reverse . takeWhile p . reverse</code>, but+ is usually faster (as well as being easier to read).</p></div></div><div class="top"><p class="src"><a id="v:equating" class="def">equating</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => (b -> a) -> b -> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:equating" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:comparing" class="def">comparing</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => (b -> a) -> b -> b -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:comparing" class="selflink">#</a></p><div class="doc"><pre>comparing p x y = compare (p x) (p y)</pre><p>Useful combinator for use in conjunction with the <code>xxxBy</code> family+ of functions from <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List.html">Data.List</a>, for example:</p><pre> ... sortBy (comparing fst) ...</pre></div></div><div class="top"><p class="src"><a id="v:isInfixOf" class="def">isInfixOf</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => [a] -> [a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isInfixOf" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-Utils-Generic.html#v:isInfixOf">isInfixOf</a></code> function takes two lists and returns <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a></code>+ iff the first list is contained, wholly and intact,+ anywhere within the second.</p><p>Example:</p><pre>isInfixOf "Haskell" "I really like Haskell." == True+isInfixOf "Ial" "I really like Haskell." == False</pre></div></div><div class="top"><p class="src"><a id="v:intercalate" class="def">intercalate</a> :: [a] -> [[a]] -> [a] <a href="#v:intercalate" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-Utils-Generic.html#v:intercalate">intercalate</a></code> <code>xs xss</code> is equivalent to <code>(<code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-OldList.html#v:concat">concat</a></code> (<code><a href="Distribution-Compat-Prelude-Internal.html#v:intersperse">intersperse</a></code> xs xss))</code>.+ It inserts the list <code>xs</code> in between the lists in <code>xss</code> and concatenates the+ result.</p></div></div><div class="top"><p class="src"><a id="v:lowercase" class="def">lowercase</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:lowercase" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:listUnion" class="def">listUnion</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] -> [a] <a href="#v:listUnion" class="selflink">#</a></p><div class="doc"><p>Like "Data.List.union", but has <code>O(n log n)</code> complexity instead of+ <code>O(n^2)</code>.</p></div></div><div class="top"><p class="src"><a id="v:listUnionRight" class="def">listUnionRight</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] -> [a] <a href="#v:listUnionRight" class="selflink">#</a></p><div class="doc"><p>A right-biased version of <code><a href="Distribution-Utils-Generic.html#v:listUnion">listUnion</a></code>.</p><p>Example:</p><pre>> listUnion [1,2,3,4,3] [2,1,1]+[1,2,3,4,3]+> listUnionRight [1,2,3,4,3] [2,1,1]+[4,3,2,1,1]+</pre></div></div><div class="top"><p class="src"><a id="v:ordNub" class="def">ordNub</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] <a href="#v:ordNub" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List.html#v:nub">nub</a></code>, but has <code>O(n log n)</code> complexity instead of+ <code>O(n^2)</code>. Code for <code><a href="Distribution-Utils-Generic.html#v:ordNub">ordNub</a></code> and <code><a href="Distribution-Utils-Generic.html#v:listUnion">listUnion</a></code> taken from Niklas Hambüchen's+ <a href="http://github.com/nh2/haskell-ordnub">ordnub</a> package.</p></div></div><div class="top"><p class="src"><a id="v:ordNubBy" class="def">ordNubBy</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> b => (a -> b) -> [a] -> [a] <a href="#v:ordNubBy" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Distribution-Utils-Generic.html#v:ordNub">ordNub</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List.html#v:nubBy">nubBy</a></code>. Selects a key for each element and+ takes the nub based on that key.</p></div></div><div class="top"><p class="src"><a id="v:ordNubRight" class="def">ordNubRight</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> [a] <a href="#v:ordNubRight" class="selflink">#</a></p><div class="doc"><p>A right-biased version of <code><a href="Distribution-Utils-Generic.html#v:ordNub">ordNub</a></code>.</p><p>Example:</p><pre>> ordNub [1,2,1]+[1,2]+> ordNubRight [1,2,1]+[2,1]+</pre></div></div><div class="top"><p class="src"><a id="v:safeTail" class="def">safeTail</a> :: [a] -> [a] <a href="#v:safeTail" class="selflink">#</a></p><div class="doc"><p>A total variant of <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-OldList.html#v:tail">tail</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:unintersperse" class="def">unintersperse</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Char.html#t:Char">Char</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] <a href="#v:unintersperse" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:wrapText" class="def">wrapText</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:wrapText" class="selflink">#</a></p><div class="doc"><p>Wraps text to the default line width. Existing newlines are preserved.</p></div></div><div class="top"><p class="src"><a id="v:wrapLine" class="def">wrapLine</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>] -> [[<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>]] <a href="#v:wrapLine" class="selflink">#</a></p><div class="doc"><p>Wraps a list of words to a list of lines of words of a particular width.</p></div></div><h1 id="g:5">FilePath stuff</h1><div class="top"><p class="src"><a id="v:isAbsoluteOnAnyPlatform" class="def">isAbsoluteOnAnyPlatform</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isAbsoluteOnAnyPlatform" class="selflink">#</a></p><div class="doc"><p><code><a href="Distribution-Utils-Generic.html#v:isAbsoluteOnAnyPlatform">isAbsoluteOnAnyPlatform</a></code> and <code><a href="Distribution-Utils-Generic.html#v:isRelativeOnAnyPlatform">isRelativeOnAnyPlatform</a></code> are like+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/filepath-1.4.1.2/System-FilePath.html#v:isAbsolute">isAbsolute</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/filepath-1.4.1.2/System-FilePath.html#v:isRelative">isRelative</a></code> but have+ platform independent heuristics.+ The System.FilePath exists in two versions, Windows and Posix. The two+ versions don't agree on what is a relative path and we don't know if we're+ given Windows or Posix paths.+ This results in false positives when running on Posix and inspecting+ Windows paths, like the hackage server does.+ System.FilePath.Posix.isAbsolute "C:\hello" == False+ System.FilePath.Windows.isAbsolute "/hello" == False+ This means that we would treat paths that start with "/" to be absolute.+ On Posix they are indeed absolute, while on Windows they are not.</p><p>The portable versions should be used when we might deal with paths that+ are from another OS than the host OS. For example, the Hackage Server+ deals with both Windows and Posix paths while performing the+ PackageDescription checks. In contrast, when we run 'cabal configure' we+ do expect the paths to be correct for our OS and we should not have to use+ the platform independent heuristics.</p></div></div><div class="top"><p class="src"><a id="v:isRelativeOnAnyPlatform" class="def">isRelativeOnAnyPlatform</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isRelativeOnAnyPlatform" class="selflink">#</a></p><div class="doc"><pre>isRelativeOnAnyPlatform = not . <code><a href="Distribution-Utils-Generic.html#v:isAbsoluteOnAnyPlatform">isAbsoluteOnAnyPlatform</a></code></pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Utils-LogProgress.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Utils.LogProgress</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Utils.LogProgress</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:LogProgress">LogProgress</a> a</li><li class="src short"><a href="#v:runLogProgress">runLogProgress</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a</li><li class="src short"><a href="#v:warnProgress">warnProgress</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> ()</li><li class="src short"><a href="#v:infoProgress">infoProgress</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> ()</li><li class="src short"><a href="#v:dieProgress">dieProgress</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a</li><li class="src short"><a href="#v:addProgressCtx">addProgressCtx</a> :: CtxMsg -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LogProgress" class="def">LogProgress</a> a <a href="#t:LogProgress" class="selflink">#</a></p><div class="doc"><p>The <code><a href="Distribution-Utils-Progress.html#t:Progress">Progress</a></code> monad with specialized logging and+ error messages.</p></div><div class="subs instances"><p id="control.i:LogProgress" class="caption collapser" onclick="toggleSection('i:LogProgress')">Instances</p><div id="section.i:LogProgress" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LogProgress:Monad:1" class="instance expander" onclick="toggleSection('i:id:LogProgress:Monad:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a></span> <a href="#t:LogProgress" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LogProgress:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(>>=)</a> :: <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> (a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b) -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(>>)</a> :: <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LogProgress:Functor:2" class="instance expander" onclick="toggleSection('i:id:LogProgress:Functor:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a></span> <a href="#t:LogProgress" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LogProgress:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LogProgress:Applicative:3" class="instance expander" onclick="toggleSection('i:id:LogProgress:Applicative:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a></span> <a href="#t:LogProgress" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LogProgress:Applicative:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(<*>)</a> :: <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> (a -> b) -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -> b -> c) -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> c <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*>)</a> :: <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(<*)</a> :: <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> b -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:runLogProgress" class="def">runLogProgress</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">NoCallStackIO</a> a <a href="#v:runLogProgress" class="selflink">#</a></p><div class="doc"><p>Run <code><a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a></code>, outputting traces according to <code><a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></code>,+ <code><a href="Distribution-Simple-Utils.html#v:die">die</a></code> if there is an error.</p></div></div><div class="top"><p class="src"><a id="v:warnProgress" class="def">warnProgress</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> () <a href="#v:warnProgress" class="selflink">#</a></p><div class="doc"><p>Output a warning trace message in <code><a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:infoProgress" class="def">infoProgress</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> () <a href="#v:infoProgress" class="selflink">#</a></p><div class="doc"><p>Output an informational trace message in <code><a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:dieProgress" class="def">dieProgress</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a <a href="#v:dieProgress" class="selflink">#</a></p><div class="doc"><p>Fail the computation with an error message.</p></div></div><div class="top"><p class="src"><a id="v:addProgressCtx" class="def">addProgressCtx</a> :: CtxMsg -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a -> <a href="Distribution-Utils-LogProgress.html#t:LogProgress">LogProgress</a> a <a href="#v:addProgressCtx" class="selflink">#</a></p><div class="doc"><p>Add a message to the error/warning context.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Utils-MapAccum.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Utils.MapAccum</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Utils.MapAccum</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:mapAccumM">mapAccumM</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Traversable</a> t) => (a -> b -> m (a, c)) -> a -> t b -> m (a, t c)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:mapAccumM" class="def">mapAccumM</a> :: (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Traversable</a> t) => (a -> b -> m (a, c)) -> a -> t b -> m (a, t c) <a href="#v:mapAccumM" class="selflink">#</a></p><div class="doc"><p>Monadic variant of <code>mapAccumL</code>.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Utils-NubList.html view
@@ -0,0 +1,15 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Utils.NubList</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Utils.NubList</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:NubList">NubList</a> a</li><li class="src short"><a href="#v:toNubList">toNubList</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a</li><li class="src short"><a href="#v:fromNubList">fromNubList</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> [a]</li><li class="src short"><a href="#v:overNubList">overNubList</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => ([a] -> [a]) -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:NubListR">NubListR</a> a</li><li class="src short"><a href="#v:toNubListR">toNubListR</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a</li><li class="src short"><a href="#v:fromNubListR">fromNubListR</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> [a]</li><li class="src short"><a href="#v:overNubListR">overNubListR</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => ([a] -> [a]) -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:NubList" class="def">NubList</a> a <a href="#t:NubList" class="selflink">#</a></p><div class="doc"><p>NubList : A de-duplicated list that maintains the original order.</p></div><div class="subs instances"><p id="control.i:NubList" class="caption collapser" onclick="toggleSection('i:NubList')">Instances</p><div id="section.i:NubList" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubList:Eq:1" class="instance expander" onclick="toggleSection('i:id:NubList:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a)</span> <a href="#t:NubList" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:NubList:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubList:Read:2" class="instance expander" onclick="toggleSection('i:id:NubList:Read:2')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> a) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a)</span> <a href="#t:NubList" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:NubList:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a) <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a) <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubList:Show:3" class="instance expander" onclick="toggleSection('i:id:NubList:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a)</span> <a href="#t:NubList" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:NubList:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubList:Semigroup:4" class="instance expander" onclick="toggleSection('i:id:NubList:Semigroup:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a)</span> <a href="#t:NubList" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:NubList:Semigroup:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a) -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubList:Monoid:5" class="instance expander" onclick="toggleSection('i:id:NubList:Monoid:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a)</span> <a href="#t:NubList" class="selflink">#</a></td><td class="doc"><p>Monoid operations on NubLists.+ For a valid Monoid instance we need to satistfy the required monoid laws;+ identity, associativity and closure.</p><p>Identity : by inspection:+ mempty <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> NubList xs == NubList xs <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> mempty</p><p>Associativity : by inspection:+ (NubList xs <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> NubList ys) <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> NubList zs+ == NubList xs <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> (NubList ys <code><a href="Distribution-Compat-Semigroup.html#v:mappend">mappend</a></code> NubList zs)</p><p>Closure : appending two lists of type a and removing duplicates obviously+ does not change the type.</p></td></tr><tr><td colspan="2"><div id="section.i:id:NubList:Monoid:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a] -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubList:Binary:6" class="instance expander" onclick="toggleSection('i:id:NubList:Binary:6')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> a) => <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a)</span> <a href="#t:NubList" class="selflink">#</a></td><td class="doc"><p>Binary instance for 'NubList a' is the same as for '[a]'. For <code><a href="Distribution-Compat-Prelude-Internal.html#v:put">put</a></code>, we+ just pull off constructor and put the list. For <code><a href="Distribution-Compat-Prelude-Internal.html#v:get">get</a></code>, we get the list and+ make a <code><a href="Distribution-Utils-NubList.html#t:NubList">NubList</a></code> out of it using <code><a href="Distribution-Utils-NubList.html#v:toNubList">toNubList</a></code>.</p></td></tr><tr><td colspan="2"><div id="section.i:id:NubList:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> (<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a) <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:toNubList" class="def">toNubList</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:toNubList" class="selflink">#</a></p><div class="doc"><p>Smart constructor for the NubList type.</p></div></div><div class="top"><p class="src"><a id="v:fromNubList" class="def">fromNubList</a> :: <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> [a] <a href="#v:fromNubList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:overNubList" class="def">overNubList</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => ([a] -> [a]) -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a -> <a href="Distribution-Utils-NubList.html#t:NubList">NubList</a> a <a href="#v:overNubList" class="selflink">#</a></p><div class="doc"><p>Lift a function over lists to a function over NubLists.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:NubListR" class="def">NubListR</a> a <a href="#t:NubListR" class="selflink">#</a></p><div class="doc"><p>NubListR : A right-biased version of <code><a href="Distribution-Utils-NubList.html#t:NubList">NubList</a></code>. That is <code>toNubListR+ ["-XNoFoo", "-XFoo", "-XNoFoo"]</code> will result in <code>["-XFoo", "-XNoFoo"]</code>,+ unlike the normal <code><a href="Distribution-Utils-NubList.html#t:NubList">NubList</a></code>, which is left-biased. Built on top of+ <code><a href="Distribution-Utils-Generic.html#v:ordNubRight">ordNubRight</a></code> and <code><a href="Distribution-Utils-Generic.html#v:listUnionRight">listUnionRight</a></code>.</p></div><div class="subs instances"><p id="control.i:NubListR" class="caption collapser" onclick="toggleSection('i:NubListR')">Instances</p><div id="section.i:NubListR" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubListR:Eq:1" class="instance expander" onclick="toggleSection('i:id:NubListR:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a)</span> <a href="#t:NubListR" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:NubListR:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubListR:Read:2" class="instance expander" onclick="toggleSection('i:id:NubListR:Read:2')"></span> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> a) => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a)</span> <a href="#t:NubListR" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:NubListR:Read:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a) <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a) <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubListR:Show:3" class="instance expander" onclick="toggleSection('i:id:NubListR:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> a => <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a)</span> <a href="#t:NubListR" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:NubListR:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubListR:Semigroup:4" class="instance expander" onclick="toggleSection('i:id:NubListR:Semigroup:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a)</span> <a href="#t:NubListR" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:NubListR:Semigroup:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a) -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:NubListR:Monoid:5" class="instance expander" onclick="toggleSection('i:id:NubListR:Monoid:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> (<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a)</span> <a href="#t:NubListR" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:NubListR:Monoid:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a] -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:toNubListR" class="def">toNubListR</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => [a] -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:toNubListR" class="selflink">#</a></p><div class="doc"><p>Smart constructor for the NubListR type.</p></div></div><div class="top"><p class="src"><a id="v:fromNubListR" class="def">fromNubListR</a> :: <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> [a] <a href="#v:fromNubListR" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:overNubListR" class="def">overNubListR</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> a => ([a] -> [a]) -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a -> <a href="Distribution-Utils-NubList.html#t:NubListR">NubListR</a> a <a href="#v:overNubListR" class="selflink">#</a></p><div class="doc"><p>Lift a function over lists to a function over NubListRs.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Utils-Progress.html view
@@ -0,0 +1,11 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Utils.Progress</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Utils.Progress</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A progress monad, which we use to report failure and logging from+ otherwise pure code.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Progress">Progress</a> step fail done</li><li class="src short"><a href="#v:stepProgress">stepProgress</a> :: step -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail ()</li><li class="src short"><a href="#v:failProgress">failProgress</a> :: fail -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail done</li><li class="src short"><a href="#v:foldProgress">foldProgress</a> :: (step -> a -> a) -> (fail -> a) -> (done -> a) -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail done -> a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Progress" class="def">Progress</a> step fail done <a href="#t:Progress" class="selflink">#</a></p><div class="doc"><p>A type to represent the unfolding of an expensive long running+ calculation that may fail (or maybe not expensive, but complicated!)+ We may get intermediate steps before the final+ result which may be used to indicate progress and/or logging messages.</p><p>TODO: Apply Codensity to avoid left-associativity problem.+ See <a href="http://comonad.com/reader/2011/free-monads-for-less/">http://comonad.com/reader/2011/free-monads-for-less/</a> and+ <a href="http://blog.ezyang.com/2012/01/problem-set-the-codensity-transformation/">http://blog.ezyang.com/2012/01/problem-set-the-codensity-transformation/</a></p></div><div class="subs instances"><p id="control.i:Progress" class="caption collapser" onclick="toggleSection('i:Progress')">Instances</p><div id="section.i:Progress" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Progress:Monad:1" class="instance expander" onclick="toggleSection('i:id:Progress:Monad:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> (<a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail)</span> <a href="#t:Progress" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Progress:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(>>=)</a> :: <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> (a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b) -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(>>)</a> :: <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Progress:Functor:2" class="instance expander" onclick="toggleSection('i:id:Progress:Functor:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail)</span> <a href="#t:Progress" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Progress:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Progress:Applicative:3" class="instance expander" onclick="toggleSection('i:id:Progress:Applicative:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail)</span> <a href="#t:Progress" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Progress:Applicative:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(<*>)</a> :: <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail (a -> b) -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -> b -> c) -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail c <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*>)</a> :: <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(<*)</a> :: <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail b -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Progress:Alternative:4" class="instance expander" onclick="toggleSection('i:id:Progress:Alternative:4')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> fail => <a href="Distribution-Compat-Prelude-Internal.html#t:Alternative">Alternative</a> (<a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail)</span> <a href="#t:Progress" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Progress:Alternative:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(<|>)</a> :: <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail a -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:stepProgress" class="def">stepProgress</a> :: step -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail () <a href="#v:stepProgress" class="selflink">#</a></p><div class="doc"><p>Emit a step and then continue.</p></div></div><div class="top"><p class="src"><a id="v:failProgress" class="def">failProgress</a> :: fail -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail done <a href="#v:failProgress" class="selflink">#</a></p><div class="doc"><p>Fail the computation.</p></div></div><div class="top"><p class="src"><a id="v:foldProgress" class="def">foldProgress</a> :: (step -> a -> a) -> (fail -> a) -> (done -> a) -> <a href="Distribution-Utils-Progress.html#t:Progress">Progress</a> step fail done -> a <a href="#v:foldProgress" class="selflink">#</a></p><div class="doc"><p>Consume a <code><a href="Distribution-Utils-Progress.html#t:Progress">Progress</a></code> calculation. Much like <code><a href="Distribution-Compat-Prelude-Internal.html#v:foldr">foldr</a></code> for lists but with two+ base cases, one for a final result and one for failure.</p><p>Eg to convert into a simple <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Either.html#t:Either">Either</a></code> result use:</p><pre>foldProgress (flip const) Left Right</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Utils-ShortText.html view
@@ -0,0 +1,8 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Utils.ShortText</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Utils.ShortText</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1"><code>ShortText</code> type</a></li><li><a href="#g:2">internal utilities</a></li></ul></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:ShortText">ShortText</a></li><li class="src short"><a href="#v:toShortText">toShortText</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></li><li class="src short"><a href="#v:fromShortText">fromShortText</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:decodeStringUtf8">decodeStringUtf8</a> :: [<a href="Distribution-Compat-Prelude-Internal.html#t:Word8">Word8</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:encodeStringUtf8">encodeStringUtf8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="Distribution-Compat-Prelude-Internal.html#t:Word8">Word8</a>]</li></ul></div><div id="interface"><h1 id="g:1"><code><a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></code> type</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ShortText" class="def">ShortText</a> <a href="#t:ShortText" class="selflink">#</a></p><div class="doc"><p>Compact representation of short <code>Strings</code></p><p>The data is stored internally as UTF8 in an+ <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a></code> when compiled against <code>bytestring >=+ 0.10.4</code>, and otherwise the fallback is to use plain old non-compat+ '[Char]'.</p><p>Note: This type is for internal uses (such as e.g. <code>PackageName</code>)+ and shall not be exposed in Cabal's API</p><p><em>Since: 2.0.0</em></p></div><div class="subs instances"><p id="control.i:ShortText" class="caption collapser" onclick="toggleSection('i:ShortText')">Instances</p><div id="section.i:ShortText" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Eq:1" class="instance expander" onclick="toggleSection('i:id:ShortText:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Data:2" class="instance expander" onclick="toggleSection('i:id:ShortText:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> c <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> m <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> m <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> m <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Ord:3" class="instance expander" onclick="toggleSection('i:id:ShortText:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Read:4" class="instance expander" onclick="toggleSection('i:id:ShortText:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Show:5" class="instance expander" onclick="toggleSection('i:id:ShortText:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:IsString:6" class="instance expander" onclick="toggleSection('i:id:ShortText:IsString:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:IsString">IsString</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:IsString:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fromString">fromString</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:fromString" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Generic:7" class="instance expander" onclick="toggleSection('i:id:ShortText:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> x -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Semigroup:8" class="instance expander" onclick="toggleSection('i:id:ShortText:Semigroup:8')"></span> <a href="Distribution-Compat-Semigroup.html#t:Semigroup">Semigroup</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Semigroup:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(<>)</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integral">Integral</a> b => b -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Monoid:9" class="instance expander" onclick="toggleSection('i:id:ShortText:Monoid:9')"></span> <a href="Distribution-Compat-Semigroup.html#t:Monoid">Monoid</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Monoid:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>] -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Binary:10" class="instance expander" onclick="toggleSection('i:id:ShortText:Binary:10')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Binary:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:NFData:11" class="instance expander" onclick="toggleSection('i:id:ShortText:NFData:11')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:NFData:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ShortText:Rep:12" class="instance expander" onclick="toggleSection('i:id:ShortText:Rep:12')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></span> <a href="#t:ShortText" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ShortText:Rep:12" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "ShortText" "Distribution.Utils.ShortText" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ST" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:True">True</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Just">Just</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a> "unST") <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/bytestring-0.10.8.2/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a>)))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:toShortText" class="def">toShortText</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> <a href="#v:toShortText" class="selflink">#</a></p><div class="doc"><p>Construct <code><a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></code> from <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p></div></div><div class="top"><p class="src"><a id="v:fromShortText" class="def">fromShortText</a> :: <a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:fromShortText" class="selflink">#</a></p><div class="doc"><p>Convert <code><a href="Distribution-Utils-ShortText.html#t:ShortText">ShortText</a></code> to <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code></p></div></div><h1 id="g:2">internal utilities</h1><div class="top"><p class="src"><a id="v:decodeStringUtf8" class="def">decodeStringUtf8</a> :: [<a href="Distribution-Compat-Prelude-Internal.html#t:Word8">Word8</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:decodeStringUtf8" class="selflink">#</a></p><div class="doc"><p>Decode <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code> from UTF8-encoded octets.</p><p>Invalid data will be decoded as the replacement character (<code>U+FFFD</code>)</p><p>See also <code><a href="Distribution-Utils-ShortText.html#v:encodeStringUtf8">encodeStringUtf8</a></code></p></div></div><div class="top"><p class="src"><a id="v:encodeStringUtf8" class="def">encodeStringUtf8</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> [<a href="Distribution-Compat-Prelude-Internal.html#t:Word8">Word8</a>] <a href="#v:encodeStringUtf8" class="selflink">#</a></p><div class="doc"><p>Encode <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></code> to a list of UTF8-encoded octets</p><p>See also <code>decodeUtf8</code></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Verbosity.html view
@@ -0,0 +1,11 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Verbosity</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Ian Lynagh 2007</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Verbosity</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Verbosity</a></li><li><a href="#g:2">Call stacks</a></li><li><a href="#g:3">Output markets</a></li><li><a href="#g:4">line-wrapping</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A <code><a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></code> type with associated utilities.</p><p>There are 4 standard verbosity levels from <code><a href="Distribution-Verbosity.html#v:silent">silent</a></code>, <code><a href="Distribution-Verbosity.html#v:normal">normal</a></code>,+ <code><a href="Distribution-Verbosity.html#v:verbose">verbose</a></code> up to <code><a href="Distribution-Verbosity.html#v:deafening">deafening</a></code>. This is used for deciding what logging+ messages to print.</p><p>Verbosity also is equipped with some internal settings which can be+ used to control at a fine granularity the verbosity of specific+ settings (e.g., so that you can trace only particular things you+ are interested in.) It's important to note that the instances+ for <code><a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></code> assume that this does not exist.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:silent">silent</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:normal">normal</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:verbose">verbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:deafening">deafening</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:moreVerbose">moreVerbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:lessVerbose">lessVerbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:isVerboseQuiet">isVerboseQuiet</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:intToVerbosity">intToVerbosity</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:flagToVerbosity">flagToVerbosity</a> :: <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:showForCabal">showForCabal</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:showForGHC">showForGHC</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:verboseNoFlags">verboseNoFlags</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:verboseHasFlags">verboseHasFlags</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:verboseCallSite">verboseCallSite</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:verboseCallStack">verboseCallStack</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:isVerboseCallSite">isVerboseCallSite</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isVerboseCallStack">isVerboseCallStack</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:verboseMarkOutput">verboseMarkOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:isVerboseMarkOutput">isVerboseMarkOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:verboseUnmarkOutput">verboseUnmarkOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:verboseNoWrap">verboseNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></li><li class="src short"><a href="#v:isVerboseNoWrap">isVerboseNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1 id="g:1">Verbosity</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Verbosity" class="def">Verbosity</a> <a href="#t:Verbosity" class="selflink">#</a></p><div class="subs instances"><p id="control.i:Verbosity" class="caption collapser" onclick="toggleSection('i:Verbosity')">Instances</p><div id="section.i:Verbosity" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Verbosity:Bounded:1" class="instance expander" onclick="toggleSection('i:id:Verbosity:Bounded:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></span> <a href="#t:Verbosity" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Verbosity:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Verbosity:Enum:2" class="instance expander" onclick="toggleSection('i:id:Verbosity:Enum:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></span> <a href="#t:Verbosity" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Verbosity:Enum:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> [<a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Verbosity:Eq:3" class="instance expander" onclick="toggleSection('i:id:Verbosity:Eq:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></span> <a href="#t:Verbosity" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Verbosity:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Verbosity:Ord:4" class="instance expander" onclick="toggleSection('i:id:Verbosity:Ord:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></span> <a href="#t:Verbosity" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Verbosity:Ord:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Verbosity:Read:5" class="instance expander" onclick="toggleSection('i:id:Verbosity:Read:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></span> <a href="#t:Verbosity" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Verbosity:Read:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Verbosity:Show:6" class="instance expander" onclick="toggleSection('i:id:Verbosity:Show:6')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></span> <a href="#t:Verbosity" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Verbosity:Show:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Verbosity:Generic:7" class="instance expander" onclick="toggleSection('i:id:Verbosity:Generic:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></span> <a href="#t:Verbosity" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Verbosity:Generic:7" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> x -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Verbosity:Binary:8" class="instance expander" onclick="toggleSection('i:id:Verbosity:Binary:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></span> <a href="#t:Verbosity" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Verbosity:Binary:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Verbosity:Rep:9" class="instance expander" onclick="toggleSection('i:id:Verbosity:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></span> <a href="#t:Verbosity" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Verbosity:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:silent" class="def">silent</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:silent" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:normal" class="def">normal</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:normal" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:verbose" class="def">verbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:verbose" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:deafening" class="def">deafening</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:deafening" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:moreVerbose" class="def">moreVerbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:moreVerbose" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lessVerbose" class="def">lessVerbose</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:lessVerbose" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isVerboseQuiet" class="def">isVerboseQuiet</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isVerboseQuiet" class="selflink">#</a></p><div class="doc"><p>Test if we had called <code><a href="Distribution-Verbosity.html#v:lessVerbose">lessVerbose</a></code> on the verbosity</p></div></div><div class="top"><p class="src"><a id="v:intToVerbosity" class="def">intToVerbosity</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:intToVerbosity" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:flagToVerbosity" class="def">flagToVerbosity</a> :: <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:flagToVerbosity" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showForCabal" class="def">showForCabal</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showForCabal" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:showForGHC" class="def">showForGHC</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showForGHC" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:verboseNoFlags" class="def">verboseNoFlags</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:verboseNoFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:verboseHasFlags" class="def">verboseHasFlags</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:verboseHasFlags" class="selflink">#</a></p></div><h1 id="g:2">Call stacks</h1><div class="top"><p class="src"><a id="v:verboseCallSite" class="def">verboseCallSite</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:verboseCallSite" class="selflink">#</a></p><div class="doc"><p>Turn on verbose call-site printing when we log.</p></div></div><div class="top"><p class="src"><a id="v:verboseCallStack" class="def">verboseCallStack</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:verboseCallStack" class="selflink">#</a></p><div class="doc"><p>Turn on verbose call-stack printing when we log.</p></div></div><div class="top"><p class="src"><a id="v:isVerboseCallSite" class="def">isVerboseCallSite</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isVerboseCallSite" class="selflink">#</a></p><div class="doc"><p>Test if we should output call sites when we log.</p></div></div><div class="top"><p class="src"><a id="v:isVerboseCallStack" class="def">isVerboseCallStack</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isVerboseCallStack" class="selflink">#</a></p><div class="doc"><p>Test if we should output call stacks when we log.</p></div></div><h1 id="g:3">Output markets</h1><div class="top"><p class="src"><a id="v:verboseMarkOutput" class="def">verboseMarkOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:verboseMarkOutput" class="selflink">#</a></p><div class="doc"><p>Turn on <code>-----BEGIN CABAL OUTPUT-----</code> markers for output+ from Cabal (as opposed to GHC, or system dependent).</p></div></div><div class="top"><p class="src"><a id="v:isVerboseMarkOutput" class="def">isVerboseMarkOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isVerboseMarkOutput" class="selflink">#</a></p><div class="doc"><p>Test if we should output markets.</p></div></div><div class="top"><p class="src"><a id="v:verboseUnmarkOutput" class="def">verboseUnmarkOutput</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:verboseUnmarkOutput" class="selflink">#</a></p><div class="doc"><p>Turn off marking; useful for suppressing nondeterministic output.</p></div></div><h1 id="g:4">line-wrapping</h1><div class="top"><p class="src"><a id="v:verboseNoWrap" class="def">verboseNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> <a href="#v:verboseNoWrap" class="selflink">#</a></p><div class="doc"><p>Disable line-wrapping for log messages.</p></div></div><div class="top"><p class="src"><a id="v:isVerboseNoWrap" class="def">isVerboseNoWrap</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isVerboseNoWrap" class="selflink">#</a></p><div class="doc"><p>Test if line-wrapping is disabled for log messages.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Distribution-Version.html view
@@ -0,0 +1,78 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Version</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones Simon Marlow 2003-2004<br />Duncan Coutts 2008</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Distribution.Version</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Package versions</a><ul><li><a href="#g:2">Backwards compatibility</a></li></ul></li><li><a href="#g:3">Version ranges</a><ul><li><a href="#g:4">Constructing</a></li><li><a href="#g:5">Inspection</a></li><li><a href="#g:6">Modification</a></li></ul></li><li><a href="#g:7">Version intervals view</a><ul><li><a href="#g:8"><code>VersionIntervals</code> abstract type</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Exports the <code><a href="Distribution-Version.html#t:Version">Version</a></code> type along with a parser and pretty printer. A version+ is something like <code>"1.3.3"</code>. It also defines the <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> data+ types. Version ranges are like <code>">= 1.2 && < 2"</code>.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Version">Version</a></li><li class="src short"><a href="#v:mkVersion">mkVersion</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>] -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:mkVersion-39-">mkVersion'</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:versionNumbers">versionNumbers</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>]</li><li class="src short"><a href="#v:nullVersion">nullVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:alterVersion">alterVersion</a> :: ([<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>]) -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:showVersion">showVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:VersionRange">VersionRange</a><ul class="subs"><li>= <a href="#v:AnyVersion">AnyVersion</a></li><li>| <a href="#v:ThisVersion">ThisVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:LaterVersion">LaterVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:EarlierVersion">EarlierVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:WildcardVersion">WildcardVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:MajorBoundVersion">MajorBoundVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li>| <a href="#v:UnionVersionRanges">UnionVersionRanges</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li>| <a href="#v:IntersectVersionRanges">IntersectVersionRanges</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li>| <a href="#v:VersionRangeParens">VersionRangeParens</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li></ul></li><li class="src short"><a href="#v:anyVersion">anyVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:noVersion">noVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:thisVersion">thisVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:notThisVersion">notThisVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:laterVersion">laterVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:earlierVersion">earlierVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:orLaterVersion">orLaterVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:orEarlierVersion">orEarlierVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:unionVersionRanges">unionVersionRanges</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:intersectVersionRanges">intersectVersionRanges</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:differenceVersionRanges">differenceVersionRanges</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:invertVersionRange">invertVersionRange</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:withinVersion">withinVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:majorBoundVersion">majorBoundVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:betweenVersionsInclusive">betweenVersionsInclusive</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:withinRange">withinRange</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isAnyVersion">isAnyVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isNoVersion">isNoVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isSpecificVersion">isSpecificVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:simplifyVersionRange">simplifyVersionRange</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:foldVersionRange">foldVersionRange</a> :: a -> (<a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (<a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (<a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (a -> a -> a) -> (a -> a -> a) -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> a</li><li class="src short"><a href="#v:foldVersionRange-39-">foldVersionRange'</a> :: a -> (<a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (<a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (<a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (<a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (<a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (<a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (<a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a) -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> a</li><li class="src short"><a href="#v:hasUpperBound">hasUpperBound</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:hasLowerBound">hasLowerBound</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:removeUpperBound">removeUpperBound</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:removeLowerBound">removeLowerBound</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:asVersionIntervals">asVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> [<a href="Distribution-Version.html#t:VersionInterval">VersionInterval</a>]</li><li class="src short"><span class="keyword">type</span> <a href="#t:VersionInterval">VersionInterval</a> = (<a href="Distribution-Version.html#t:LowerBound">LowerBound</a>, <a href="Distribution-Version.html#t:UpperBound">UpperBound</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:LowerBound">LowerBound</a> = <a href="#v:LowerBound">LowerBound</a> <a href="Distribution-Version.html#t:Version">Version</a> !<a href="Distribution-Version.html#t:Bound">Bound</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:UpperBound">UpperBound</a><ul class="subs"><li>= <a href="#v:NoUpperBound">NoUpperBound</a></li><li>| <a href="#v:UpperBound">UpperBound</a> <a href="Distribution-Version.html#t:Version">Version</a> !<a href="Distribution-Version.html#t:Bound">Bound</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Bound">Bound</a><ul class="subs"><li>= <a href="#v:ExclusiveBound">ExclusiveBound</a></li><li>| <a href="#v:InclusiveBound">InclusiveBound</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:VersionIntervals">VersionIntervals</a></li><li class="src short"><a href="#v:toVersionIntervals">toVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></li><li class="src short"><a href="#v:fromVersionIntervals">fromVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:withinIntervals">withinIntervals</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:versionIntervals">versionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> [<a href="Distribution-Version.html#t:VersionInterval">VersionInterval</a>]</li><li class="src short"><a href="#v:mkVersionIntervals">mkVersionIntervals</a> :: [<a href="Distribution-Version.html#t:VersionInterval">VersionInterval</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></li><li class="src short"><a href="#v:unionVersionIntervals">unionVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></li><li class="src short"><a href="#v:intersectVersionIntervals">intersectVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></li><li class="src short"><a href="#v:invertVersionIntervals">invertVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></li></ul></div><div id="interface"><h1 id="g:1">Package versions</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Version" class="def">Version</a> <a href="#t:Version" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Distribution-Version.html#t:Version">Version</a></code> represents the version of a software entity.</p><p>Instances of <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a></code> are provided, which gives exact+ equality and lexicographic ordering of the version number+ components (i.e. 2.1 > 2.0, 1.2.3 > 1.2.2, etc.).</p><p>This type is opaque and distinct from the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html#t:Version">Version</a></code> type in+ <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html">Data.Version</a> since <code>Cabal-2.0</code>. The difference extends to the+ <code><a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a></code> instance using a different (and more compact) encoding.</p><p><em>Since: 2.0</em></p></div><div class="subs instances"><p id="control.i:Version" class="caption collapser" onclick="toggleSection('i:Version')">Instances</p><div id="section.i:Version" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Eq:1" class="instance expander" onclick="toggleSection('i:id:Version:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Data:2" class="instance expander" onclick="toggleSection('i:id:Version:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Version.html#t:Version">Version</a> -> c <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Version.html#t:Version">Version</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Version.html#t:Version">Version</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Version.html#t:Version">Version</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Version.html#t:Version">Version</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Version.html#t:Version">Version</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Version.html#t:Version">Version</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Version.html#t:Version">Version</a> -> m <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Version.html#t:Version">Version</a> -> m <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Version.html#t:Version">Version</a> -> m <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Ord:3" class="instance expander" onclick="toggleSection('i:id:Version:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Read:4" class="instance expander" onclick="toggleSection('i:id:Version:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Version.html#t:Version">Version</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Version.html#t:Version">Version</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Show:5" class="instance expander" onclick="toggleSection('i:id:Version:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Version.html#t:Version">Version</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Generic:6" class="instance expander" onclick="toggleSection('i:id:Version:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:Version">Version</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:Version">Version</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:Version">Version</a> x -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Binary:7" class="instance expander" onclick="toggleSection('i:id:Version:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Version.html#t:Version">Version</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:NFData:8" class="instance expander" onclick="toggleSection('i:id:Version:NFData:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:NFData:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Text:9" class="instance expander" onclick="toggleSection('i:id:Version:Text:9')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Text:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Version:Rep:10" class="instance expander" onclick="toggleSection('i:id:Version:Rep:10')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:Version">Version</a></span> <a href="#t:Version" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Version:Rep:10" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:Version">Version</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Version" "Distribution.Version" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PV0" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:SourceUnpack">SourceUnpack</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:SourceStrict">SourceStrict</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedStrict">DecidedStrict</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Compat-Prelude-Internal.html#t:Word64">Word64</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PV1" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:SourceStrict">SourceStrict</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedStrict">DecidedStrict</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>])))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:mkVersion" class="def">mkVersion</a> :: [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>] -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:mkVersion" class="selflink">#</a></p><div class="doc"><p>Construct <code><a href="Distribution-Version.html#t:Version">Version</a></code> from list of version number components.</p><p>For instance, <code>mkVersion [3,2,1]</code> constructs a <code><a href="Distribution-Version.html#t:Version">Version</a></code>+ representing the version <code>3.2.1</code>.</p><p>All version components must be non-negative. <code>mkVersion []</code>+ currently represents the special <em>null</em> version; see also <code><a href="Distribution-Version.html#v:nullVersion">nullVersion</a></code>.</p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:mkVersion-39-" class="def">mkVersion'</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:mkVersion-39-" class="selflink">#</a></p><div class="doc"><p>Variant of <code><a href="Distribution-Version.html#t:Version">Version</a></code> which converts a <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Version.html">Data.Version</a> <code><a href="Distribution-Version.html#t:Version">Version</a></code>+ into Cabal's <code><a href="Distribution-Version.html#t:Version">Version</a></code> type.</p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:versionNumbers" class="def">versionNumbers</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>] <a href="#v:versionNumbers" class="selflink">#</a></p><div class="doc"><p>Unpack <code><a href="Distribution-Version.html#t:Version">Version</a></code> into list of version number components.</p><p>This is the inverse to <code><a href="Distribution-Version.html#v:mkVersion">mkVersion</a></code>, so the following holds:</p><pre>(versionNumbers . mkVersion) vs == vs</pre><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:nullVersion" class="def">nullVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:nullVersion" class="selflink">#</a></p><div class="doc"><p>Constant representing the special <em>null</em> <code><a href="Distribution-Version.html#t:Version">Version</a></code></p><p>The <code><a href="Distribution-Version.html#v:nullVersion">nullVersion</a></code> compares (via <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a></code>) as less than every proper+ <code><a href="Distribution-Version.html#t:Version">Version</a></code> value.</p><p><em>Since: 2.0</em></p></div></div><div class="top"><p class="src"><a id="v:alterVersion" class="def">alterVersion</a> :: ([<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>] -> [<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a>]) -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:alterVersion" class="selflink">#</a></p><div class="doc"><p>Apply function to list of version number components</p><pre>alterVersion f == mkVersion . f . versionNumbers</pre><p><em>Since: 2.0</em></p></div></div><h2 id="g:2">Backwards compatibility</h2><div class="top"><p class="src"><a id="v:showVersion" class="def">showVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:showVersion" class="selflink">#</a></p></div><h1 id="g:3">Version ranges</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:VersionRange" class="def">VersionRange</a> <a href="#t:VersionRange" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AnyVersion" class="def">AnyVersion</a></td><td class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Distribution-Version.html#v:anyVersion">anyVersion</a></code>, <code><a href="Distribution-Version.html#v:foldVersionRange">foldVersionRange</a></code> or <code><a href="Distribution-Version.html#v:asVersionIntervals">asVersionIntervals</a></code></p></div></td></tr><tr><td class="src"><a id="v:ThisVersion" class="def">ThisVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Distribution-Version.html#v:thisVersion">thisVersion</a></code>, <code><a href="Distribution-Version.html#v:foldVersionRange">foldVersionRange</a></code> or <code><a href="Distribution-Version.html#v:asVersionIntervals">asVersionIntervals</a></code></p></div></td></tr><tr><td class="src"><a id="v:LaterVersion" class="def">LaterVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Distribution-Version.html#v:laterVersion">laterVersion</a></code>, <code><a href="Distribution-Version.html#v:foldVersionRange">foldVersionRange</a></code> or <code><a href="Distribution-Version.html#v:asVersionIntervals">asVersionIntervals</a></code></p></div></td></tr><tr><td class="src"><a id="v:EarlierVersion" class="def">EarlierVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Distribution-Version.html#v:earlierVersion">earlierVersion</a></code>, <code><a href="Distribution-Version.html#v:foldVersionRange">foldVersionRange</a></code> or <code><a href="Distribution-Version.html#v:asVersionIntervals">asVersionIntervals</a></code></p></div></td></tr><tr><td class="src"><a id="v:WildcardVersion" class="def">WildcardVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Distribution-Version.html#v:anyVersion">anyVersion</a></code>, <code><a href="Distribution-Version.html#v:foldVersionRange">foldVersionRange</a></code> or <code><a href="Distribution-Version.html#v:asVersionIntervals">asVersionIntervals</a></code></p></div></td></tr><tr><td class="src"><a id="v:MajorBoundVersion" class="def">MajorBoundVersion</a> <a href="Distribution-Version.html#t:Version">Version</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:UnionVersionRanges" class="def">UnionVersionRanges</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Distribution-Version.html#v:unionVersionRanges">unionVersionRanges</a></code>, <code><a href="Distribution-Version.html#v:foldVersionRange">foldVersionRange</a></code> or <code><a href="Distribution-Version.html#v:asVersionIntervals">asVersionIntervals</a></code></p></div></td></tr><tr><td class="src"><a id="v:IntersectVersionRanges" class="def">IntersectVersionRanges</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Distribution-Version.html#v:intersectVersionRanges">intersectVersionRanges</a></code>, <code><a href="Distribution-Version.html#v:foldVersionRange">foldVersionRange</a></code> or <code><a href="Distribution-Version.html#v:asVersionIntervals">asVersionIntervals</a></code></p></div></td></tr><tr><td class="src"><a id="v:VersionRangeParens" class="def">VersionRangeParens</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:VersionRange" class="caption collapser" onclick="toggleSection('i:VersionRange')">Instances</p><div id="section.i:VersionRange" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionRange:Eq:1" class="instance expander" onclick="toggleSection('i:id:VersionRange:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:VersionRange" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionRange:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionRange:Data:2" class="instance expander" onclick="toggleSection('i:id:VersionRange:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:VersionRange" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionRange:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> c <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> m <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> m <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> m <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionRange:Read:3" class="instance expander" onclick="toggleSection('i:id:VersionRange:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:VersionRange" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionRange:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Distribution-Version.html#t:VersionRange">VersionRange</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Distribution-Version.html#t:VersionRange">VersionRange</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionRange:Show:4" class="instance expander" onclick="toggleSection('i:id:VersionRange:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:VersionRange" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionRange:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Version.html#t:VersionRange">VersionRange</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionRange:Generic:5" class="instance expander" onclick="toggleSection('i:id:VersionRange:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:VersionRange" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionRange:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> x -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionRange:Binary:6" class="instance expander" onclick="toggleSection('i:id:VersionRange:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:VersionRange" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionRange:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Distribution-Version.html#t:VersionRange">VersionRange</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionRange:NFData:7" class="instance expander" onclick="toggleSection('i:id:VersionRange:NFData:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:NFData">NFData</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:VersionRange" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionRange:NFData:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> () <a href="#v:rnf" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionRange:Text:8" class="instance expander" onclick="toggleSection('i:id:VersionRange:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:VersionRange" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionRange:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionRange:Rep:9" class="instance expander" onclick="toggleSection('i:id:VersionRange:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></span> <a href="#t:VersionRange" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionRange:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "VersionRange" "Distribution.Version" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AnyVersion" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ThisVersion" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LaterVersion" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "EarlierVersion" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "WildcardVersion" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MajorBoundVersion" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:Version">Version</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnionVersionRanges" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "IntersectVersionRanges" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-42-:">(:*:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "VersionRangeParens" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)))))))</div></div></td></tr></table></div></div></div><h2 id="g:4">Constructing</h2><div class="top"><p class="src"><a id="v:anyVersion" class="def">anyVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:anyVersion" class="selflink">#</a></p><div class="doc"><p>The version range <code>-any</code>. That is, a version range containing all+ versions.</p><pre>withinRange v anyVersion = True</pre></div></div><div class="top"><p class="src"><a id="v:noVersion" class="def">noVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:noVersion" class="selflink">#</a></p><div class="doc"><p>The empty version range, that is a version range containing no versions.</p><p>This can be constructed using any unsatisfiable version range expression,+ for example <code>> 1 && < 1</code>.</p><pre>withinRange v noVersion = False</pre></div></div><div class="top"><p class="src"><a id="v:thisVersion" class="def">thisVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:thisVersion" class="selflink">#</a></p><div class="doc"><p>The version range <code>== v</code></p><pre>withinRange v' (thisVersion v) = v' == v</pre></div></div><div class="top"><p class="src"><a id="v:notThisVersion" class="def">notThisVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:notThisVersion" class="selflink">#</a></p><div class="doc"><p>The version range <code><a href="v">||</a> v</code></p><pre>withinRange v' (notThisVersion v) = v' /= v</pre></div></div><div class="top"><p class="src"><a id="v:laterVersion" class="def">laterVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:laterVersion" class="selflink">#</a></p><div class="doc"><p>The version range <code>> v</code></p><pre>withinRange v' (laterVersion v) = v' > v</pre></div></div><div class="top"><p class="src"><a id="v:earlierVersion" class="def">earlierVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:earlierVersion" class="selflink">#</a></p><div class="doc"><p>The version range <code>< v</code></p><pre>withinRange v' (earlierVersion v) = v' < v</pre></div></div><div class="top"><p class="src"><a id="v:orLaterVersion" class="def">orLaterVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:orLaterVersion" class="selflink">#</a></p><div class="doc"><p>The version range <code>>= v</code></p><pre>withinRange v' (orLaterVersion v) = v' >= v</pre></div></div><div class="top"><p class="src"><a id="v:orEarlierVersion" class="def">orEarlierVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:orEarlierVersion" class="selflink">#</a></p><div class="doc"><p>The version range <code><= v</code></p><pre>withinRange v' (orEarlierVersion v) = v' <= v</pre></div></div><div class="top"><p class="src"><a id="v:unionVersionRanges" class="def">unionVersionRanges</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:unionVersionRanges" class="selflink">#</a></p><div class="doc"><p>The version range <code>vr1 || vr2</code></p><pre> withinRange v' (unionVersionRanges vr1 vr2)+= withinRange v' vr1 || withinRange v' vr2</pre></div></div><div class="top"><p class="src"><a id="v:intersectVersionRanges" class="def">intersectVersionRanges</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:intersectVersionRanges" class="selflink">#</a></p><div class="doc"><p>The version range <code>vr1 && vr2</code></p><pre> withinRange v' (intersectVersionRanges vr1 vr2)+= withinRange v' vr1 && withinRange v' vr2</pre></div></div><div class="top"><p class="src"><a id="v:differenceVersionRanges" class="def">differenceVersionRanges</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:differenceVersionRanges" class="selflink">#</a></p><div class="doc"><p>The difference of two version ranges</p><pre> withinRange v' (differenceVersionRanges vr1 vr2)+= withinRange v' vr1 && not (withinRange v' vr2)</pre><p><em>Since: 1.24.1.0</em></p></div></div><div class="top"><p class="src"><a id="v:invertVersionRange" class="def">invertVersionRange</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:invertVersionRange" class="selflink">#</a></p><div class="doc"><p>The inverse of a version range</p><pre> withinRange v' (invertVersionRange vr)+= not (withinRange v' vr)</pre></div></div><div class="top"><p class="src"><a id="v:withinVersion" class="def">withinVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:withinVersion" class="selflink">#</a></p><div class="doc"><p>The version range <code>== v.*</code>.</p><p>For example, for version <code>1.2</code>, the version range <code>== 1.2.*</code> is the same as+ <code>>= 1.2 && < 1.3</code></p><pre>withinRange v' (laterVersion v) = v' >= v && v' < upper v+ where+ upper (Version lower t) = Version (init lower ++ [last lower + 1]) t</pre></div></div><div class="top"><p class="src"><a id="v:majorBoundVersion" class="def">majorBoundVersion</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:majorBoundVersion" class="selflink">#</a></p><div class="doc"><p>The version range <code>^>= v</code>.</p><p>For example, for version <code>1.2.3.4</code>, the version range <code>^>= 1.2.3.4</code> is the same as+ <code>>= 1.2.3.4 && < 1.3</code>.</p><p>Note that <code>^>= 1</code> is equivalent to <code>>= 1 && < 1.1</code>.</p><pre>since 2.0</pre></div></div><div class="top"><p class="src"><a id="v:betweenVersionsInclusive" class="def">betweenVersionsInclusive</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:betweenVersionsInclusive" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: In practice this is not very useful because we normally use inclusive lower bounds and exclusive upper bounds</p></div></div></div><h2 id="g:5">Inspection</h2><div class="top"><p class="src"><a id="v:withinRange" class="def">withinRange</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:withinRange" class="selflink">#</a></p><div class="doc"><p>Does this version fall within the given range?</p><p>This is the evaluation function for the <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> type.</p></div></div><div class="top"><p class="src"><a id="v:isAnyVersion" class="def">isAnyVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isAnyVersion" class="selflink">#</a></p><div class="doc"><p>Does this <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> place any restriction on the <code><a href="Distribution-Version.html#t:Version">Version</a></code> or is it+ in fact equivalent to <code><a href="Distribution-Version.html#v:AnyVersion">AnyVersion</a></code>.</p><p>Note this is a semantic check, not simply a syntactic check. So for example+ the following is <code>True</code> (for all <code>v</code>).</p><pre>isAnyVersion (EarlierVersion v `UnionVersionRanges` orLaterVersion v)</pre></div></div><div class="top"><p class="src"><a id="v:isNoVersion" class="def">isNoVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isNoVersion" class="selflink">#</a></p><div class="doc"><p>This is the converse of <code><a href="Distribution-Version.html#v:isAnyVersion">isAnyVersion</a></code>. It check if the version range is+ empty, if there is no possible version that satisfies the version range.</p><p>For example this is <code>True</code> (for all <code>v</code>):</p><pre>isNoVersion (EarlierVersion v `IntersectVersionRanges` LaterVersion v)</pre></div></div><div class="top"><p class="src"><a id="v:isSpecificVersion" class="def">isSpecificVersion</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a> <a href="#v:isSpecificVersion" class="selflink">#</a></p><div class="doc"><p>Is this version range in fact just a specific version?</p><p>For example the version range <code>">= 3 && <= 3"</code> contains only the version+ <code>3</code>.</p></div></div><div class="top"><p class="src"><a id="v:simplifyVersionRange" class="def">simplifyVersionRange</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:simplifyVersionRange" class="selflink">#</a></p><div class="doc"><p>Simplify a <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> expression. For non-empty version ranges+ this produces a canonical form. Empty or inconsistent version ranges+ are left as-is because that provides more information.</p><p>If you need a canonical form use+ <code>fromVersionIntervals . toVersionIntervals</code></p><p>It satisfies the following properties:</p><pre>withinRange v (simplifyVersionRange r) = withinRange v r</pre><pre> withinRange v r = withinRange v r'+==> simplifyVersionRange r = simplifyVersionRange r'+ || isNoVersion r+ || isNoVersion r'</pre></div></div><div class="top"><p class="src"><a id="v:foldVersionRange" class="def">foldVersionRange</a> <a href="#v:foldVersionRange" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: a</td><td class="doc"><p><code>"-any"</code> version</p></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><pre>"== v"</pre></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><pre>"> v"</pre></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><pre>"< v"</pre></td></tr><tr><td class="src">-> (a -> a -> a)</td><td class="doc"><p><code>"_ || _"</code> union</p></td></tr><tr><td class="src">-> (a -> a -> a)</td><td class="doc"><p><code>"_ && _"</code> intersection</p></td></tr><tr><td class="src">-> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Fold over the basic syntactic structure of a <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code>.</p><p>This provides a syntactic view of the expression defining the version range.+ The syntactic sugar <code>">= v"</code>, <code>"<= v"</code> and <code>"== v.*"</code> is presented+ in terms of the other basic syntax.</p><p>For a semantic view use <code><a href="Distribution-Version.html#v:asVersionIntervals">asVersionIntervals</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:foldVersionRange-39-" class="def">foldVersionRange'</a> <a href="#v:foldVersionRange-39-" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: a</td><td class="doc"><p><code>"-any"</code> version</p></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><pre>"== v"</pre></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><pre>"> v"</pre></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><pre>"< v"</pre></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><pre>">= v"</pre></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><pre>"<= v"</pre></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><p><code>"== v.*"</code> wildcard. The+ function is passed the+ inclusive lower bound and the+ exclusive upper bounds of the+ range defined by the wildcard.</p></td></tr><tr><td class="src">-> (<a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:Version">Version</a> -> a)</td><td class="doc"><p><code>"^>= v"</code> major upper bound+ The function is passed the+ inclusive lower bound and the+ exclusive major upper bounds+ of the range defined by this+ operator.</p></td></tr><tr><td class="src">-> (a -> a -> a)</td><td class="doc"><p><code>"_ || _"</code> union</p></td></tr><tr><td class="src">-> (a -> a -> a)</td><td class="doc"><p><code>"_ && _"</code> intersection</p></td></tr><tr><td class="src">-> (a -> a)</td><td class="doc"><p><code>"(_)"</code> parentheses</p></td></tr><tr><td class="src">-> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> a</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>An extended variant of <code><a href="Distribution-Version.html#v:foldVersionRange">foldVersionRange</a></code> that also provides a view of the+ expression in which the syntactic sugar <code>">= v"</code>, <code>"<= v"</code> and <code>"==+ v.*"</code> is presented explicitly rather than in terms of the other basic+ syntax.</p></div></div><div class="top"><p class="src"><a id="v:hasUpperBound" class="def">hasUpperBound</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasUpperBound" class="selflink">#</a></p><div class="doc"><p>Does the version range have an upper bound?</p><p><em>Since: 1.24.0.0</em></p></div></div><div class="top"><p class="src"><a id="v:hasLowerBound" class="def">hasLowerBound</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:hasLowerBound" class="selflink">#</a></p><div class="doc"><p>Does the version range have an explicit lower bound?</p><p>Note: this function only considers the user-specified lower bounds, but not+ the implicit >=0 lower bound.</p><p><em>Since: 1.24.0.0</em></p></div></div><h2 id="g:6">Modification</h2><div class="top"><p class="src"><a id="v:removeUpperBound" class="def">removeUpperBound</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:removeUpperBound" class="selflink">#</a></p><div class="doc"><p>Given a version range, remove the highest upper bound. Example: <code>(>= 1 && <+ 3) || (>= 4 && < 5)</code> is converted to <code>(>= 1 && <a href="3)">|| (</a>= 4)</code>.</p></div></div><div class="top"><p class="src"><a id="v:removeLowerBound" class="def">removeLowerBound</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:removeLowerBound" class="selflink">#</a></p><div class="doc"><p>Given a version range, remove the lowest lower bound.+ Example: <code>(>= 1 && <a href="3)">|| (</a>= 4 && < 5)</code> is converted to+ <code>(>= 0 && <a href="3)">|| (</a>= 4 && < 5)</code>.</p></div></div><h1 id="g:7">Version intervals view</h1><div class="top"><p class="src"><a id="v:asVersionIntervals" class="def">asVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> [<a href="Distribution-Version.html#t:VersionInterval">VersionInterval</a>] <a href="#v:asVersionIntervals" class="selflink">#</a></p><div class="doc"><p>View a <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> as a union of intervals.</p><p>This provides a canonical view of the semantics of a <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> as+ opposed to the syntax of the expression used to define it. For the syntactic+ view use <code><a href="Distribution-Version.html#v:foldVersionRange">foldVersionRange</a></code>.</p><p>Each interval is non-empty. The sequence is in increasing order and no+ intervals overlap or touch. Therefore only the first and last can be+ unbounded. The sequence can be empty if the range is empty+ (e.g. a range expression like <code><a href="1">&&</a> 2</code>).</p><p>Other checks are trivial to implement using this view. For example:</p><pre>isNoVersion vr | [] <- asVersionIntervals vr = True+ | otherwise = False</pre><pre>isSpecificVersion vr+ | [(LowerBound v InclusiveBound+ ,UpperBound v' InclusiveBound)] <- asVersionIntervals vr+ , v == v' = Just v+ | otherwise = Nothing</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:VersionInterval" class="def">VersionInterval</a> = (<a href="Distribution-Version.html#t:LowerBound">LowerBound</a>, <a href="Distribution-Version.html#t:UpperBound">UpperBound</a>) <a href="#t:VersionInterval" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LowerBound" class="def">LowerBound</a> <a href="#t:LowerBound" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:LowerBound" class="def">LowerBound</a> <a href="Distribution-Version.html#t:Version">Version</a> !<a href="Distribution-Version.html#t:Bound">Bound</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:LowerBound" class="caption collapser" onclick="toggleSection('i:LowerBound')">Instances</p><div id="section.i:LowerBound" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LowerBound:Eq:1" class="instance expander" onclick="toggleSection('i:id:LowerBound:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a></span> <a href="#t:LowerBound" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LowerBound:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LowerBound:Ord:2" class="instance expander" onclick="toggleSection('i:id:LowerBound:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a></span> <a href="#t:LowerBound" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LowerBound:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:LowerBound:Show:3" class="instance expander" onclick="toggleSection('i:id:LowerBound:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a></span> <a href="#t:LowerBound" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:LowerBound:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Version.html#t:LowerBound">LowerBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Version.html#t:LowerBound">LowerBound</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:UpperBound" class="def">UpperBound</a> <a href="#t:UpperBound" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoUpperBound" class="def">NoUpperBound</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:UpperBound" class="def">UpperBound</a> <a href="Distribution-Version.html#t:Version">Version</a> !<a href="Distribution-Version.html#t:Bound">Bound</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:UpperBound" class="caption collapser" onclick="toggleSection('i:UpperBound')">Instances</p><div id="section.i:UpperBound" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UpperBound:Eq:1" class="instance expander" onclick="toggleSection('i:id:UpperBound:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a></span> <a href="#t:UpperBound" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UpperBound:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UpperBound:Ord:2" class="instance expander" onclick="toggleSection('i:id:UpperBound:Ord:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a></span> <a href="#t:UpperBound" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UpperBound:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:UpperBound:Show:3" class="instance expander" onclick="toggleSection('i:id:UpperBound:Show:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a></span> <a href="#t:UpperBound" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:UpperBound:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Version.html#t:UpperBound">UpperBound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Version.html#t:UpperBound">UpperBound</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Bound" class="def">Bound</a> <a href="#t:Bound" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ExclusiveBound" class="def">ExclusiveBound</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:InclusiveBound" class="def">InclusiveBound</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Bound" class="caption collapser" onclick="toggleSection('i:Bound')">Instances</p><div id="section.i:Bound" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Bound:Eq:1" class="instance expander" onclick="toggleSection('i:id:Bound:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Version.html#t:Bound">Bound</a></span> <a href="#t:Bound" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Bound:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Version.html#t:Bound">Bound</a> -> <a href="Distribution-Version.html#t:Bound">Bound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Version.html#t:Bound">Bound</a> -> <a href="Distribution-Version.html#t:Bound">Bound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Bound:Show:2" class="instance expander" onclick="toggleSection('i:id:Bound:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Version.html#t:Bound">Bound</a></span> <a href="#t:Bound" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Bound:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Version.html#t:Bound">Bound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Version.html#t:Bound">Bound</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Version.html#t:Bound">Bound</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h2 id="g:8"><code><a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></code> abstract type</h2><div class="doc"><p>The <code><a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></code> type and the accompanying functions are exposed+ primarily for completeness and testing purposes. In practice+ <code><a href="Distribution-Version.html#v:asVersionIntervals">asVersionIntervals</a></code> is the main function to use to+ view a <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> as a bunch of <code><a href="Distribution-Version.html#t:VersionInterval">VersionInterval</a></code>s.</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:VersionIntervals" class="def">VersionIntervals</a> <a href="#t:VersionIntervals" class="selflink">#</a></p><div class="doc"><p>A complementary representation of a <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code>. Instead of a boolean+ version predicate it uses an increasing sequence of non-overlapping,+ non-empty intervals.</p><p>The key point is that this representation gives a canonical representation+ for the semantics of <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code>s. This makes it easier to check things+ like whether a version range is empty, covers all versions, or requires a+ certain minimum or maximum version. It also makes it easy to check equality+ or containment. It also makes it easier to identify 'simple' version+ predicates for translation into foreign packaging systems that do not+ support complex version range expressions.</p></div><div class="subs instances"><p id="control.i:VersionIntervals" class="caption collapser" onclick="toggleSection('i:VersionIntervals')">Instances</p><div id="section.i:VersionIntervals" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionIntervals:Eq:1" class="instance expander" onclick="toggleSection('i:id:VersionIntervals:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></span> <a href="#t:VersionIntervals" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionIntervals:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:VersionIntervals:Show:2" class="instance expander" onclick="toggleSection('i:id:VersionIntervals:Show:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></span> <a href="#t:VersionIntervals" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:VersionIntervals:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:toVersionIntervals" class="def">toVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> <a href="#v:toVersionIntervals" class="selflink">#</a></p><div class="doc"><p>Convert a <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> to a sequence of version intervals.</p></div></div><div class="top"><p class="src"><a id="v:fromVersionIntervals" class="def">fromVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionRange">VersionRange</a> <a href="#v:fromVersionIntervals" class="selflink">#</a></p><div class="doc"><p>Convert a <code><a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></code> value back into a <code><a href="Distribution-Version.html#t:VersionRange">VersionRange</a></code> expression+ representing the version intervals.</p></div></div><div class="top"><p class="src"><a id="v:withinIntervals" class="def">withinIntervals</a> :: <a href="Distribution-Version.html#t:Version">Version</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:withinIntervals" class="selflink">#</a></p><div class="doc"><p>Test if a version falls within the version intervals.</p><p>It exists mostly for completeness and testing. It satisfies the following+ properties:</p><pre>withinIntervals v (toVersionIntervals vr) = withinRange v vr+withinIntervals v ivs = withinRange v (fromVersionIntervals ivs)</pre></div></div><div class="top"><p class="src"><a id="v:versionIntervals" class="def">versionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> [<a href="Distribution-Version.html#t:VersionInterval">VersionInterval</a>] <a href="#v:versionIntervals" class="selflink">#</a></p><div class="doc"><p>Inspect the list of version intervals.</p></div></div><div class="top"><p class="src"><a id="v:mkVersionIntervals" class="def">mkVersionIntervals</a> :: [<a href="Distribution-Version.html#t:VersionInterval">VersionInterval</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> <a href="#v:mkVersionIntervals" class="selflink">#</a></p><div class="doc"><p>Directly construct a <code><a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a></code> from a list of intervals.</p><p>Each interval must be non-empty. The sequence must be in increasing order+ and no intervals may overlap or touch. If any of these conditions are not+ satisfied the function returns <code>Nothing</code>.</p></div></div><div class="top"><p class="src"><a id="v:unionVersionIntervals" class="def">unionVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> <a href="#v:unionVersionIntervals" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:intersectVersionIntervals" class="def">intersectVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> <a href="#v:intersectVersionIntervals" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:invertVersionIntervals" class="def">invertVersionIntervals</a> :: <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> -> <a href="Distribution-Version.html#t:VersionIntervals">VersionIntervals</a> <a href="#v:invertVersionIntervals" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/Language-Haskell-Extension.html view
@@ -0,0 +1,113 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Language.Haskell.Extension</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>Isaac Jones 2003-2004</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Language.Haskell.Extension</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Haskell language dialects and extensions</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Language">Language</a><ul class="subs"><li>= <a href="#v:Haskell98">Haskell98</a></li><li>| <a href="#v:Haskell2010">Haskell2010</a></li><li>| <a href="#v:UnknownLanguage">UnknownLanguage</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><a href="#v:knownLanguages">knownLanguages</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>]</li><li class="src short"><a href="#v:classifyLanguage">classifyLanguage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Language-Haskell-Extension.html#t:Language">Language</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Extension">Extension</a><ul class="subs"><li>= <a href="#v:EnableExtension">EnableExtension</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></li><li>| <a href="#v:DisableExtension">DisableExtension</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></li><li>| <a href="#v:UnknownExtension">UnknownExtension</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:KnownExtension">KnownExtension</a><ul class="subs"><li>= <a href="#v:OverlappingInstances">OverlappingInstances</a></li><li>| <a href="#v:UndecidableInstances">UndecidableInstances</a></li><li>| <a href="#v:IncoherentInstances">IncoherentInstances</a></li><li>| <a href="#v:DoRec">DoRec</a></li><li>| <a href="#v:RecursiveDo">RecursiveDo</a></li><li>| <a href="#v:ParallelListComp">ParallelListComp</a></li><li>| <a href="#v:MultiParamTypeClasses">MultiParamTypeClasses</a></li><li>| <a href="#v:MonomorphismRestriction">MonomorphismRestriction</a></li><li>| <a href="#v:FunctionalDependencies">FunctionalDependencies</a></li><li>| <a href="#v:Rank2Types">Rank2Types</a></li><li>| <a href="#v:RankNTypes">RankNTypes</a></li><li>| <a href="#v:PolymorphicComponents">PolymorphicComponents</a></li><li>| <a href="#v:ExistentialQuantification">ExistentialQuantification</a></li><li>| <a href="#v:ScopedTypeVariables">ScopedTypeVariables</a></li><li>| <a href="#v:PatternSignatures">PatternSignatures</a></li><li>| <a href="#v:ImplicitParams">ImplicitParams</a></li><li>| <a href="#v:FlexibleContexts">FlexibleContexts</a></li><li>| <a href="#v:FlexibleInstances">FlexibleInstances</a></li><li>| <a href="#v:EmptyDataDecls">EmptyDataDecls</a></li><li>| <a href="#v:CPP">CPP</a></li><li>| <a href="#v:KindSignatures">KindSignatures</a></li><li>| <a href="#v:BangPatterns">BangPatterns</a></li><li>| <a href="#v:TypeSynonymInstances">TypeSynonymInstances</a></li><li>| <a href="#v:TemplateHaskell">TemplateHaskell</a></li><li>| <a href="#v:ForeignFunctionInterface">ForeignFunctionInterface</a></li><li>| <a href="#v:Arrows">Arrows</a></li><li>| <a href="#v:Generics">Generics</a></li><li>| <a href="#v:ImplicitPrelude">ImplicitPrelude</a></li><li>| <a href="#v:NamedFieldPuns">NamedFieldPuns</a></li><li>| <a href="#v:PatternGuards">PatternGuards</a></li><li>| <a href="#v:GeneralizedNewtypeDeriving">GeneralizedNewtypeDeriving</a></li><li>| <a href="#v:ExtensibleRecords">ExtensibleRecords</a></li><li>| <a href="#v:RestrictedTypeSynonyms">RestrictedTypeSynonyms</a></li><li>| <a href="#v:HereDocuments">HereDocuments</a></li><li>| <a href="#v:MagicHash">MagicHash</a></li><li>| <a href="#v:TypeFamilies">TypeFamilies</a></li><li>| <a href="#v:StandaloneDeriving">StandaloneDeriving</a></li><li>| <a href="#v:UnicodeSyntax">UnicodeSyntax</a></li><li>| <a href="#v:UnliftedFFITypes">UnliftedFFITypes</a></li><li>| <a href="#v:InterruptibleFFI">InterruptibleFFI</a></li><li>| <a href="#v:CApiFFI">CApiFFI</a></li><li>| <a href="#v:LiberalTypeSynonyms">LiberalTypeSynonyms</a></li><li>| <a href="#v:TypeOperators">TypeOperators</a></li><li>| <a href="#v:RecordWildCards">RecordWildCards</a></li><li>| <a href="#v:RecordPuns">RecordPuns</a></li><li>| <a href="#v:DisambiguateRecordFields">DisambiguateRecordFields</a></li><li>| <a href="#v:TraditionalRecordSyntax">TraditionalRecordSyntax</a></li><li>| <a href="#v:OverloadedStrings">OverloadedStrings</a></li><li>| <a href="#v:GADTs">GADTs</a></li><li>| <a href="#v:GADTSyntax">GADTSyntax</a></li><li>| <a href="#v:MonoPatBinds">MonoPatBinds</a></li><li>| <a href="#v:RelaxedPolyRec">RelaxedPolyRec</a></li><li>| <a href="#v:ExtendedDefaultRules">ExtendedDefaultRules</a></li><li>| <a href="#v:UnboxedTuples">UnboxedTuples</a></li><li>| <a href="#v:DeriveDataTypeable">DeriveDataTypeable</a></li><li>| <a href="#v:DeriveGeneric">DeriveGeneric</a></li><li>| <a href="#v:DefaultSignatures">DefaultSignatures</a></li><li>| <a href="#v:InstanceSigs">InstanceSigs</a></li><li>| <a href="#v:ConstrainedClassMethods">ConstrainedClassMethods</a></li><li>| <a href="#v:PackageImports">PackageImports</a></li><li>| <a href="#v:ImpredicativeTypes">ImpredicativeTypes</a></li><li>| <a href="#v:NewQualifiedOperators">NewQualifiedOperators</a></li><li>| <a href="#v:PostfixOperators">PostfixOperators</a></li><li>| <a href="#v:QuasiQuotes">QuasiQuotes</a></li><li>| <a href="#v:TransformListComp">TransformListComp</a></li><li>| <a href="#v:MonadComprehensions">MonadComprehensions</a></li><li>| <a href="#v:ViewPatterns">ViewPatterns</a></li><li>| <a href="#v:XmlSyntax">XmlSyntax</a></li><li>| <a href="#v:RegularPatterns">RegularPatterns</a></li><li>| <a href="#v:TupleSections">TupleSections</a></li><li>| <a href="#v:GHCForeignImportPrim">GHCForeignImportPrim</a></li><li>| <a href="#v:NPlusKPatterns">NPlusKPatterns</a></li><li>| <a href="#v:DoAndIfThenElse">DoAndIfThenElse</a></li><li>| <a href="#v:MultiWayIf">MultiWayIf</a></li><li>| <a href="#v:LambdaCase">LambdaCase</a></li><li>| <a href="#v:RebindableSyntax">RebindableSyntax</a></li><li>| <a href="#v:ExplicitForAll">ExplicitForAll</a></li><li>| <a href="#v:DatatypeContexts">DatatypeContexts</a></li><li>| <a href="#v:MonoLocalBinds">MonoLocalBinds</a></li><li>| <a href="#v:DeriveFunctor">DeriveFunctor</a></li><li>| <a href="#v:DeriveTraversable">DeriveTraversable</a></li><li>| <a href="#v:DeriveFoldable">DeriveFoldable</a></li><li>| <a href="#v:NondecreasingIndentation">NondecreasingIndentation</a></li><li>| <a href="#v:SafeImports">SafeImports</a></li><li>| <a href="#v:Safe">Safe</a></li><li>| <a href="#v:Trustworthy">Trustworthy</a></li><li>| <a href="#v:Unsafe">Unsafe</a></li><li>| <a href="#v:ConstraintKinds">ConstraintKinds</a></li><li>| <a href="#v:PolyKinds">PolyKinds</a></li><li>| <a href="#v:DataKinds">DataKinds</a></li><li>| <a href="#v:ParallelArrays">ParallelArrays</a></li><li>| <a href="#v:RoleAnnotations">RoleAnnotations</a></li><li>| <a href="#v:OverloadedLists">OverloadedLists</a></li><li>| <a href="#v:EmptyCase">EmptyCase</a></li><li>| <a href="#v:AutoDeriveTypeable">AutoDeriveTypeable</a></li><li>| <a href="#v:NegativeLiterals">NegativeLiterals</a></li><li>| <a href="#v:BinaryLiterals">BinaryLiterals</a></li><li>| <a href="#v:NumDecimals">NumDecimals</a></li><li>| <a href="#v:NullaryTypeClasses">NullaryTypeClasses</a></li><li>| <a href="#v:ExplicitNamespaces">ExplicitNamespaces</a></li><li>| <a href="#v:AllowAmbiguousTypes">AllowAmbiguousTypes</a></li><li>| <a href="#v:JavaScriptFFI">JavaScriptFFI</a></li><li>| <a href="#v:PatternSynonyms">PatternSynonyms</a></li><li>| <a href="#v:PartialTypeSignatures">PartialTypeSignatures</a></li><li>| <a href="#v:NamedWildCards">NamedWildCards</a></li><li>| <a href="#v:DeriveAnyClass">DeriveAnyClass</a></li><li>| <a href="#v:DeriveLift">DeriveLift</a></li><li>| <a href="#v:StaticPointers">StaticPointers</a></li><li>| <a href="#v:StrictData">StrictData</a></li><li>| <a href="#v:Strict">Strict</a></li><li>| <a href="#v:ApplicativeDo">ApplicativeDo</a></li><li>| <a href="#v:DuplicateRecordFields">DuplicateRecordFields</a></li><li>| <a href="#v:TypeApplications">TypeApplications</a></li><li>| <a href="#v:TypeInType">TypeInType</a></li><li>| <a href="#v:UndecidableSuperClasses">UndecidableSuperClasses</a></li><li>| <a href="#v:MonadFailDesugaring">MonadFailDesugaring</a></li><li>| <a href="#v:TemplateHaskellQuotes">TemplateHaskellQuotes</a></li><li>| <a href="#v:OverloadedLabels">OverloadedLabels</a></li><li>| <a href="#v:TypeFamilyDependencies">TypeFamilyDependencies</a></li></ul></li><li class="src short"><a href="#v:knownExtensions">knownExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>]</li><li class="src short"><a href="#v:deprecatedExtensions">deprecatedExtensions</a> :: [(<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a>)]</li><li class="src short"><a href="#v:classifyExtension">classifyExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Language" class="def">Language</a> <a href="#t:Language" class="selflink">#</a></p><div class="doc"><p>This represents a Haskell language dialect.</p><p>Language <code><a href="Language-Haskell-Extension.html#t:Extension">Extension</a></code>s are interpreted relative to one of these base+ languages.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Haskell98" class="def">Haskell98</a></td><td class="doc"><p>The Haskell 98 language as defined by the Haskell 98 report.+ <a href="http://haskell.org/onlinereport/">http://haskell.org/onlinereport/</a></p></td></tr><tr><td class="src"><a id="v:Haskell2010" class="def">Haskell2010</a></td><td class="doc"><p>The Haskell 2010 language as defined by the Haskell 2010 report.+ <a href="http://www.haskell.org/onlinereport/haskell2010">http://www.haskell.org/onlinereport/haskell2010</a></p></td></tr><tr><td class="src"><a id="v:UnknownLanguage" class="def">UnknownLanguage</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>An unknown language, identified by its name.</p></td></tr></table></div><div class="subs instances"><p id="control.i:Language" class="caption collapser" onclick="toggleSection('i:Language')">Instances</p><div id="section.i:Language" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Language:Eq:1" class="instance expander" onclick="toggleSection('i:id:Language:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></span> <a href="#t:Language" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Language:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Language:Data:2" class="instance expander" onclick="toggleSection('i:id:Language:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></span> <a href="#t:Language" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Language:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> c <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Language-Haskell-Extension.html#t:Language">Language</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Language-Haskell-Extension.html#t:Language">Language</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> m <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> m <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> m <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Language:Read:3" class="instance expander" onclick="toggleSection('i:id:Language:Read:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></span> <a href="#t:Language" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Language:Read:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Language:Show:4" class="instance expander" onclick="toggleSection('i:id:Language:Show:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></span> <a href="#t:Language" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Language:Show:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Language:Generic:5" class="instance expander" onclick="toggleSection('i:id:Language:Generic:5')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></span> <a href="#t:Language" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Language:Generic:5" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a> x -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Language:Binary:6" class="instance expander" onclick="toggleSection('i:id:Language:Binary:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></span> <a href="#t:Language" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Language:Binary:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Language:Text:7" class="instance expander" onclick="toggleSection('i:id:Language:Text:7')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></span> <a href="#t:Language" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Language:Text:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Language-Haskell-Extension.html#t:Language">Language</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Language:Rep:8" class="instance expander" onclick="toggleSection('i:id:Language:Rep:8')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a></span> <a href="#t:Language" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Language:Rep:8" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Language">Language</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Language" "Language.Haskell.Extension" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Haskell98" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Haskell2010" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnknownLanguage" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownLanguages" class="def">knownLanguages</a> :: [<a href="Language-Haskell-Extension.html#t:Language">Language</a>] <a href="#v:knownLanguages" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:classifyLanguage" class="def">classifyLanguage</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Language-Haskell-Extension.html#t:Language">Language</a> <a href="#v:classifyLanguage" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Extension" class="def">Extension</a> <a href="#t:Extension" class="selflink">#</a></p><div class="doc"><p>This represents language extensions beyond a base <code><a href="Language-Haskell-Extension.html#t:Language">Language</a></code> definition+ (such as <code><a href="Language-Haskell-Extension.html#v:Haskell98">Haskell98</a></code>) that are supported by some implementations, usually+ in some special mode.</p><p>Where applicable, references are given to an implementation's+ official documentation.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:EnableExtension" class="def">EnableExtension</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></td><td class="doc"><p>Enable a known extension</p></td></tr><tr><td class="src"><a id="v:DisableExtension" class="def">DisableExtension</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></td><td class="doc"><p>Disable a known extension</p></td></tr><tr><td class="src"><a id="v:UnknownExtension" class="def">UnknownExtension</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>An unknown extension, identified by the name of its <code>LANGUAGE</code>+ pragma.</p></td></tr></table></div><div class="subs instances"><p id="control.i:Extension" class="caption collapser" onclick="toggleSection('i:Extension')">Instances</p><div id="section.i:Extension" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Extension:Eq:1" class="instance expander" onclick="toggleSection('i:id:Extension:Eq:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Extension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Extension:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Extension:Data:2" class="instance expander" onclick="toggleSection('i:id:Extension:Data:2')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Extension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Extension:Data:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> c <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Language-Haskell-Extension.html#t:Extension">Extension</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Language-Haskell-Extension.html#t:Extension">Extension</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> m <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> m <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> m <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Extension:Ord:3" class="instance expander" onclick="toggleSection('i:id:Extension:Ord:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Extension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Extension:Ord:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Extension:Read:4" class="instance expander" onclick="toggleSection('i:id:Extension:Read:4')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Extension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Extension:Read:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Extension:Show:5" class="instance expander" onclick="toggleSection('i:id:Extension:Show:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Extension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Extension:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Extension:Generic:6" class="instance expander" onclick="toggleSection('i:id:Extension:Generic:6')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Extension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Extension:Generic:6" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> x -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Extension:Binary:7" class="instance expander" onclick="toggleSection('i:id:Extension:Binary:7')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Extension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Extension:Binary:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Extension:Text:8" class="instance expander" onclick="toggleSection('i:id:Extension:Text:8')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Extension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Extension:Text:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Extension:Rep:9" class="instance expander" onclick="toggleSection('i:id:Extension:Rep:9')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></span> <a href="#t:Extension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Extension:Rep:9" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "Extension" "Language.Haskell.Extension" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "EnableExtension" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DisableExtension" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnknownExtension" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:S1">S1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaSel">MetaSel</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#v:Nothing">Nothing</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-TypeLits.html#t:Symbol">Symbol</a>) <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceUnpackedness">NoSourceUnpackedness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:NoSourceStrictness">NoSourceStrictness</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:DecidedLazy">DecidedLazy</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rec0">Rec0</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a>)))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:KnownExtension" class="def">KnownExtension</a> <a href="#t:KnownExtension" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:OverlappingInstances" class="def">OverlappingInstances</a></td><td class="doc"><p>Allow overlapping class instances, provided there is a unique+ most specific instance for each use.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#instance-overlap">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#instance-overlap</a></li></ul></td></tr><tr><td class="src"><a id="v:UndecidableInstances" class="def">UndecidableInstances</a></td><td class="doc"><p>Ignore structural rules guaranteeing the termination of class+ instance resolution. Termination is guaranteed by a fixed-depth+ recursion stack, and compilation may fail if this depth is+ exceeded.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#undecidable-instances">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#undecidable-instances</a></li></ul></td></tr><tr><td class="src"><a id="v:IncoherentInstances" class="def">IncoherentInstances</a></td><td class="doc"><p>Implies <code><a href="Language-Haskell-Extension.html#v:OverlappingInstances">OverlappingInstances</a></code>. Allow the implementation to+ choose an instance even when it is possible that further+ instantiation of types will lead to a more specific instance+ being applicable.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#instance-overlap">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#instance-overlap</a></li></ul></td></tr><tr><td class="src"><a id="v:DoRec" class="def">DoRec</a></td><td class="doc"><p><em>(deprecated)</em> Allow recursive bindings in <code>do</code> blocks, using the <code>rec</code>+ keyword. See also <code><a href="Language-Haskell-Extension.html#v:RecursiveDo">RecursiveDo</a></code>.</p></td></tr><tr><td class="src"><a id="v:RecursiveDo" class="def">RecursiveDo</a></td><td class="doc"><p>Allow recursive bindings using <code>mdo</code>, a variant of <code>do</code>.+ <code>DoRec</code> provides a different, preferred syntax.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#recursive-do-notation">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#recursive-do-notation</a></li></ul></td></tr><tr><td class="src"><a id="v:ParallelListComp" class="def">ParallelListComp</a></td><td class="doc"><p>Provide syntax for writing list comprehensions which iterate+ over several lists together, like the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-OldList.html#v:zipWith">zipWith</a></code> family of+ functions.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#parallel-list-comprehensions">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#parallel-list-comprehensions</a></li></ul></td></tr><tr><td class="src"><a id="v:MultiParamTypeClasses" class="def">MultiParamTypeClasses</a></td><td class="doc"><p>Allow multiple parameters in a type class.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#multi-param-type-classes">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#multi-param-type-classes</a></li></ul></td></tr><tr><td class="src"><a id="v:MonomorphismRestriction" class="def">MonomorphismRestriction</a></td><td class="doc"><p>Enable the dreaded monomorphism restriction.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/monomorphism.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/monomorphism.html</a></li></ul></td></tr><tr><td class="src"><a id="v:FunctionalDependencies" class="def">FunctionalDependencies</a></td><td class="doc"><p>Allow a specification attached to a multi-parameter type class+ which indicates that some parameters are entirely determined by+ others. The implementation will check that this property holds+ for the declared instances, and will use this property to reduce+ ambiguity in instance resolution.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#functional-dependencies">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#functional-dependencies</a></li></ul></td></tr><tr><td class="src"><a id="v:Rank2Types" class="def">Rank2Types</a></td><td class="doc"><p>Like <code><a href="Language-Haskell-Extension.html#v:RankNTypes">RankNTypes</a></code> but does not allow a higher-rank type to+ itself appear on the left of a function arrow.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#universal-quantification">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#universal-quantification</a></li></ul></td></tr><tr><td class="src"><a id="v:RankNTypes" class="def">RankNTypes</a></td><td class="doc"><p>Allow a universally-quantified type to occur on the left of a+ function arrow.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#universal-quantification">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#universal-quantification</a></li></ul></td></tr><tr><td class="src"><a id="v:PolymorphicComponents" class="def">PolymorphicComponents</a></td><td class="doc"><p>Allow data constructors to have polymorphic arguments. Unlike+ <code><a href="Language-Haskell-Extension.html#v:RankNTypes">RankNTypes</a></code>, does not allow this for ordinary functions.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#universal-quantification">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#universal-quantification</a></li></ul></td></tr><tr><td class="src"><a id="v:ExistentialQuantification" class="def">ExistentialQuantification</a></td><td class="doc"><p>Allow existentially-quantified data constructors.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#existential-quantification">http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#existential-quantification</a></li></ul></td></tr><tr><td class="src"><a id="v:ScopedTypeVariables" class="def">ScopedTypeVariables</a></td><td class="doc"><p>Cause a type variable in a signature, which has an explicit+ <code>forall</code> quantifier, to scope over the definition of the+ accompanying value declaration.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#scoped-type-variables">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#scoped-type-variables</a></li></ul></td></tr><tr><td class="src"><a id="v:PatternSignatures" class="def">PatternSignatures</a></td><td class="doc"><p>Deprecated, use <code><a href="Language-Haskell-Extension.html#v:ScopedTypeVariables">ScopedTypeVariables</a></code> instead.</p></td></tr><tr><td class="src"><a id="v:ImplicitParams" class="def">ImplicitParams</a></td><td class="doc"><p>Enable implicit function parameters with dynamic scope.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#implicit-parameters">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#implicit-parameters</a></li></ul></td></tr><tr><td class="src"><a id="v:FlexibleContexts" class="def">FlexibleContexts</a></td><td class="doc"><p>Relax some restrictions on the form of the context of a type+ signature.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#flexible-contexts">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#flexible-contexts</a></li></ul></td></tr><tr><td class="src"><a id="v:FlexibleInstances" class="def">FlexibleInstances</a></td><td class="doc"><p>Relax some restrictions on the form of the context of an+ instance declaration.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#instance-rules">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#instance-rules</a></li></ul></td></tr><tr><td class="src"><a id="v:EmptyDataDecls" class="def">EmptyDataDecls</a></td><td class="doc"><p>Allow data type declarations with no constructors.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#nullary-types">http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#nullary-types</a></li></ul></td></tr><tr><td class="src"><a id="v:CPP" class="def">CPP</a></td><td class="doc"><p>Run the C preprocessor on Haskell source code.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/options-phases.html#c-pre-processor">http://www.haskell.org/ghc/docs/latest/html/users_guide/options-phases.html#c-pre-processor</a></li></ul></td></tr><tr><td class="src"><a id="v:KindSignatures" class="def">KindSignatures</a></td><td class="doc"><p>Allow an explicit kind signature giving the kind of types over+ which a type variable ranges.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#kinding">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#kinding</a></li></ul></td></tr><tr><td class="src"><a id="v:BangPatterns" class="def">BangPatterns</a></td><td class="doc"><p>Enable a form of pattern which forces evaluation before an+ attempted match, and a form of strict <code>let</code>/<code>where</code> binding.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/bang-patterns.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/bang-patterns.html</a></li></ul></td></tr><tr><td class="src"><a id="v:TypeSynonymInstances" class="def">TypeSynonymInstances</a></td><td class="doc"><p>Allow type synonyms in instance heads.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#flexible-instance-head">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#flexible-instance-head</a></li></ul></td></tr><tr><td class="src"><a id="v:TemplateHaskell" class="def">TemplateHaskell</a></td><td class="doc"><p>Enable Template Haskell, a system for compile-time+ metaprogramming.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/template-haskell.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/template-haskell.html</a></li></ul></td></tr><tr><td class="src"><a id="v:ForeignFunctionInterface" class="def">ForeignFunctionInterface</a></td><td class="doc"><p>Enable the Foreign Function Interface. In GHC, implements the+ standard Haskell 98 Foreign Function Interface Addendum, plus+ some GHC-specific extensions.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi.html</a></li></ul></td></tr><tr><td class="src"><a id="v:Arrows" class="def">Arrows</a></td><td class="doc"><p>Enable arrow notation.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/arrow-notation.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/arrow-notation.html</a></li></ul></td></tr><tr><td class="src"><a id="v:Generics" class="def">Generics</a></td><td class="doc"><p><em>(deprecated)</em> Enable generic type classes, with default instances defined in+ terms of the algebraic structure of a type.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/generic-classes.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/generic-classes.html</a></li></ul></td></tr><tr><td class="src"><a id="v:ImplicitPrelude" class="def">ImplicitPrelude</a></td><td class="doc"><p>Enable the implicit importing of the module <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html">Prelude</a>. When+ disabled, when desugaring certain built-in syntax into ordinary+ identifiers, use whatever is in scope rather than the <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html">Prelude</a>+ -- version.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#rebindable-syntax">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#rebindable-syntax</a></li></ul></td></tr><tr><td class="src"><a id="v:NamedFieldPuns" class="def">NamedFieldPuns</a></td><td class="doc"><p>Enable syntax for implicitly binding local names corresponding+ to the field names of a record. Puns bind specific names, unlike+ <code><a href="Language-Haskell-Extension.html#v:RecordWildCards">RecordWildCards</a></code>.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#record-puns">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#record-puns</a></li></ul></td></tr><tr><td class="src"><a id="v:PatternGuards" class="def">PatternGuards</a></td><td class="doc"><p>Enable a form of guard which matches a pattern and binds+ variables.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#pattern-guards">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#pattern-guards</a></li></ul></td></tr><tr><td class="src"><a id="v:GeneralizedNewtypeDeriving" class="def">GeneralizedNewtypeDeriving</a></td><td class="doc"><p>Allow a type declared with <code>newtype</code> to use <code>deriving</code> for any+ class with an instance for the underlying type.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#newtype-deriving">http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#newtype-deriving</a></li></ul></td></tr><tr><td class="src"><a id="v:ExtensibleRecords" class="def">ExtensibleRecords</a></td><td class="doc"><p>Enable the "Trex" extensible records system.</p><ul><li><a href="http://cvs.haskell.org/Hugs/pages/users_guide/hugs-only.html#TREX">http://cvs.haskell.org/Hugs/pages/users_guide/hugs-only.html#TREX</a></li></ul></td></tr><tr><td class="src"><a id="v:RestrictedTypeSynonyms" class="def">RestrictedTypeSynonyms</a></td><td class="doc"><p>Enable type synonyms which are transparent in some definitions+ and opaque elsewhere, as a way of implementing abstract+ datatypes.</p><ul><li><a href="http://cvs.haskell.org/Hugs/pages/users_guide/restricted-synonyms.html">http://cvs.haskell.org/Hugs/pages/users_guide/restricted-synonyms.html</a></li></ul></td></tr><tr><td class="src"><a id="v:HereDocuments" class="def">HereDocuments</a></td><td class="doc"><p>Enable an alternate syntax for string literals,+ with string templating.</p><ul><li><a href="http://cvs.haskell.org/Hugs/pages/users_guide/here-documents.html">http://cvs.haskell.org/Hugs/pages/users_guide/here-documents.html</a></li></ul></td></tr><tr><td class="src"><a id="v:MagicHash" class="def">MagicHash</a></td><td class="doc"><p>Allow the character <code>#</code> as a postfix modifier on identifiers.+ Also enables literal syntax for unboxed values.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#magic-hash">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#magic-hash</a></li></ul></td></tr><tr><td class="src"><a id="v:TypeFamilies" class="def">TypeFamilies</a></td><td class="doc"><p>Allow data types and type synonyms which are indexed by types,+ i.e. ad-hoc polymorphism for types.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-families.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-families.html</a></li></ul></td></tr><tr><td class="src"><a id="v:StandaloneDeriving" class="def">StandaloneDeriving</a></td><td class="doc"><p>Allow a standalone declaration which invokes the type class+ <code>deriving</code> mechanism.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#stand-alone-deriving">http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#stand-alone-deriving</a></li></ul></td></tr><tr><td class="src"><a id="v:UnicodeSyntax" class="def">UnicodeSyntax</a></td><td class="doc"><p>Allow certain Unicode characters to stand for certain ASCII+ character sequences, e.g. keywords and punctuation.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#unicode-syntax">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#unicode-syntax</a></li></ul></td></tr><tr><td class="src"><a id="v:UnliftedFFITypes" class="def">UnliftedFFITypes</a></td><td class="doc"><p>Allow the use of unboxed types as foreign types, e.g. in+ <code>foreign import</code> and <code>foreign export</code>.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi.html#id681687">http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi.html#id681687</a></li></ul></td></tr><tr><td class="src"><a id="v:InterruptibleFFI" class="def">InterruptibleFFI</a></td><td class="doc"><p>Enable interruptible FFI.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi.html#ffi-interruptible">http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi.html#ffi-interruptible</a></li></ul></td></tr><tr><td class="src"><a id="v:CApiFFI" class="def">CApiFFI</a></td><td class="doc"><p>Allow use of CAPI FFI calling convention (<code>foreign import capi</code>).</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi.html#ffi-capi">http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi.html#ffi-capi</a></li></ul></td></tr><tr><td class="src"><a id="v:LiberalTypeSynonyms" class="def">LiberalTypeSynonyms</a></td><td class="doc"><p>Defer validity checking of types until after expanding type+ synonyms, relaxing the constraints on how synonyms may be used.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#type-synonyms">http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#type-synonyms</a></li></ul></td></tr><tr><td class="src"><a id="v:TypeOperators" class="def">TypeOperators</a></td><td class="doc"><p>Allow the name of a type constructor, type class, or type+ variable to be an infix operator.</p></td></tr><tr><td class="src"><a id="v:RecordWildCards" class="def">RecordWildCards</a></td><td class="doc"><p>Enable syntax for implicitly binding local names corresponding+ to the field names of a record. A wildcard binds all unmentioned+ names, unlike <code><a href="Language-Haskell-Extension.html#v:NamedFieldPuns">NamedFieldPuns</a></code>.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#record-wildcards">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#record-wildcards</a></li></ul></td></tr><tr><td class="src"><a id="v:RecordPuns" class="def">RecordPuns</a></td><td class="doc"><p>Deprecated, use <code><a href="Language-Haskell-Extension.html#v:NamedFieldPuns">NamedFieldPuns</a></code> instead.</p></td></tr><tr><td class="src"><a id="v:DisambiguateRecordFields" class="def">DisambiguateRecordFields</a></td><td class="doc"><p>Allow a record field name to be disambiguated by the type of+ the record it's in.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#disambiguate-fields">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#disambiguate-fields</a></li></ul></td></tr><tr><td class="src"><a id="v:TraditionalRecordSyntax" class="def">TraditionalRecordSyntax</a></td><td class="doc"><p>Enable traditional record syntax (as supported by Haskell 98)</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#traditional-record-syntax">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#traditional-record-syntax</a></li></ul></td></tr><tr><td class="src"><a id="v:OverloadedStrings" class="def">OverloadedStrings</a></td><td class="doc"><p>Enable overloading of string literals using a type class, much+ like integer literals.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#overloaded-strings">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#overloaded-strings</a></li></ul></td></tr><tr><td class="src"><a id="v:GADTs" class="def">GADTs</a></td><td class="doc"><p>Enable generalized algebraic data types, in which type+ variables may be instantiated on a per-constructor basis. Implies+ <code><a href="Language-Haskell-Extension.html#v:GADTSyntax">GADTSyntax</a></code>.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#gadt">http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#gadt</a></li></ul></td></tr><tr><td class="src"><a id="v:GADTSyntax" class="def">GADTSyntax</a></td><td class="doc"><p>Enable GADT syntax for declaring ordinary algebraic datatypes.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#gadt-style">http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#gadt-style</a></li></ul></td></tr><tr><td class="src"><a id="v:MonoPatBinds" class="def">MonoPatBinds</a></td><td class="doc"><p>Make pattern bindings monomorphic.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/monomorphism.html#id630981">http://www.haskell.org/ghc/docs/latest/html/users_guide/monomorphism.html#id630981</a></li></ul></td></tr><tr><td class="src"><a id="v:RelaxedPolyRec" class="def">RelaxedPolyRec</a></td><td class="doc"><p>Relax the requirements on mutually-recursive polymorphic+ functions.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#typing-binds">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#typing-binds</a></li></ul></td></tr><tr><td class="src"><a id="v:ExtendedDefaultRules" class="def">ExtendedDefaultRules</a></td><td class="doc"><p>Allow default instantiation of polymorphic types in more+ situations.</p><ul><li><a href="http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html#type-defaulting-in-ghci">http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html#type-defaulting-in-ghci</a></li></ul></td></tr><tr><td class="src"><a id="v:UnboxedTuples" class="def">UnboxedTuples</a></td><td class="doc"><p>Enable unboxed tuples.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/primitives.html#unboxed-tuples">http://www.haskell.org/ghc/docs/latest/html/users_guide/primitives.html#unboxed-tuples</a></li></ul></td></tr><tr><td class="src"><a id="v:DeriveDataTypeable" class="def">DeriveDataTypeable</a></td><td class="doc"><p>Enable <code>deriving</code> for classes <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Typeable.html#v:Typeable">Typeable</a></code> and+ <code><a href="Data-Generics.html#v:Data">Data</a></code>.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable">http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable</a></li></ul></td></tr><tr><td class="src"><a id="v:DeriveGeneric" class="def">DeriveGeneric</a></td><td class="doc"><p>Enable <code>deriving</code> for <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:Generic">Generic</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:Generic1">Generic1</a></code>.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable">http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable</a></li></ul></td></tr><tr><td class="src"><a id="v:DefaultSignatures" class="def">DefaultSignatures</a></td><td class="doc"><p>Enable support for default signatures.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#class-default-signatures">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#class-default-signatures</a></li></ul></td></tr><tr><td class="src"><a id="v:InstanceSigs" class="def">InstanceSigs</a></td><td class="doc"><p>Allow type signatures to be specified in instance declarations.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#instance-sigs">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#instance-sigs</a></li></ul></td></tr><tr><td class="src"><a id="v:ConstrainedClassMethods" class="def">ConstrainedClassMethods</a></td><td class="doc"><p>Allow a class method's type to place additional constraints on+ a class type variable.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#class-method-types">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#class-method-types</a></li></ul></td></tr><tr><td class="src"><a id="v:PackageImports" class="def">PackageImports</a></td><td class="doc"><p>Allow imports to be qualified by the package name the module is+ intended to be imported from, e.g.</p><pre>import "network" Network.Socket</pre><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#package-imports">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#package-imports</a></li></ul></td></tr><tr><td class="src"><a id="v:ImpredicativeTypes" class="def">ImpredicativeTypes</a></td><td class="doc"><p><em>(deprecated)</em> Allow a type variable to be instantiated at a+ polymorphic type.</p><ul><li><a href="http://www.haskell.org/ghc/docs/6.12.3/html/users_guide/other-type-extensions.html#impredicative-polymorphism">http://www.haskell.org/ghc/docs/6.12.3/html/users_guide/other-type-extensions.html#impredicative-polymorphism</a></li></ul></td></tr><tr><td class="src"><a id="v:NewQualifiedOperators" class="def">NewQualifiedOperators</a></td><td class="doc"><p><em>(deprecated)</em> Change the syntax for qualified infix operators.</p><ul><li><a href="http://www.haskell.org/ghc/docs/6.12.3/html/users_guide/syntax-extns.html#new-qualified-operators">http://www.haskell.org/ghc/docs/6.12.3/html/users_guide/syntax-extns.html#new-qualified-operators</a></li></ul></td></tr><tr><td class="src"><a id="v:PostfixOperators" class="def">PostfixOperators</a></td><td class="doc"><p>Relax the interpretation of left operator sections to allow+ unary postfix operators.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#postfix-operators">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#postfix-operators</a></li></ul></td></tr><tr><td class="src"><a id="v:QuasiQuotes" class="def">QuasiQuotes</a></td><td class="doc"><p>Enable quasi-quotation, a mechanism for defining new concrete+ syntax for expressions and patterns.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/template-haskell.html#th-quasiquotation">http://www.haskell.org/ghc/docs/latest/html/users_guide/template-haskell.html#th-quasiquotation</a></li></ul></td></tr><tr><td class="src"><a id="v:TransformListComp" class="def">TransformListComp</a></td><td class="doc"><p>Enable generalized list comprehensions, supporting operations+ such as sorting and grouping.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#generalised-list-comprehensions">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#generalised-list-comprehensions</a></li></ul></td></tr><tr><td class="src"><a id="v:MonadComprehensions" class="def">MonadComprehensions</a></td><td class="doc"><p>Enable monad comprehensions, which generalise the list+ comprehension syntax to work for any monad.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#monad-comprehensions">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#monad-comprehensions</a></li></ul></td></tr><tr><td class="src"><a id="v:ViewPatterns" class="def">ViewPatterns</a></td><td class="doc"><p>Enable view patterns, which match a value by applying a+ function and matching on the result.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#view-patterns">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#view-patterns</a></li></ul></td></tr><tr><td class="src"><a id="v:XmlSyntax" class="def">XmlSyntax</a></td><td class="doc"><p>Allow concrete XML syntax to be used in expressions and patterns,+ as per the Haskell Server Pages extension language:+ <a href="http://www.haskell.org/haskellwiki/HSP">http://www.haskell.org/haskellwiki/HSP</a>. The ideas behind it are+ discussed in the paper "Haskell Server Pages through Dynamic Loading"+ by Niklas Broberg, from Haskell Workshop '05.</p></td></tr><tr><td class="src"><a id="v:RegularPatterns" class="def">RegularPatterns</a></td><td class="doc"><p>Allow regular pattern matching over lists, as discussed in the+ paper "Regular Expression Patterns" by Niklas Broberg, Andreas Farre+ and Josef Svenningsson, from ICFP '04.</p></td></tr><tr><td class="src"><a id="v:TupleSections" class="def">TupleSections</a></td><td class="doc"><p>Enable the use of tuple sections, e.g. <code>(, True)</code> desugars into+ <code>x -> (x, True)</code>.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#tuple-sections">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#tuple-sections</a></li></ul></td></tr><tr><td class="src"><a id="v:GHCForeignImportPrim" class="def">GHCForeignImportPrim</a></td><td class="doc"><p>Allow GHC primops, written in C--, to be imported into a Haskell+ file.</p></td></tr><tr><td class="src"><a id="v:NPlusKPatterns" class="def">NPlusKPatterns</a></td><td class="doc"><p>Support for patterns of the form <code>n + k</code>, where <code>k</code> is an+ integer literal.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#n-k-patterns">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#n-k-patterns</a></li></ul></td></tr><tr><td class="src"><a id="v:DoAndIfThenElse" class="def">DoAndIfThenElse</a></td><td class="doc"><p>Improve the layout rule when <code>if</code> expressions are used in a <code>do</code>+ block.</p></td></tr><tr><td class="src"><a id="v:MultiWayIf" class="def">MultiWayIf</a></td><td class="doc"><p>Enable support for multi-way <code>if</code>-expressions.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#multi-way-if">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#multi-way-if</a></li></ul></td></tr><tr><td class="src"><a id="v:LambdaCase" class="def">LambdaCase</a></td><td class="doc"><p>Enable support lambda-<code>case</code> expressions.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#lambda-case">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#lambda-case</a></li></ul></td></tr><tr><td class="src"><a id="v:RebindableSyntax" class="def">RebindableSyntax</a></td><td class="doc"><p>Makes much of the Haskell sugar be desugared into calls to the+ function with a particular name that is in scope.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#rebindable-syntax">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#rebindable-syntax</a></li></ul></td></tr><tr><td class="src"><a id="v:ExplicitForAll" class="def">ExplicitForAll</a></td><td class="doc"><p>Make <code>forall</code> a keyword in types, which can be used to give the+ generalisation explicitly.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#explicit-foralls">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#explicit-foralls</a></li></ul></td></tr><tr><td class="src"><a id="v:DatatypeContexts" class="def">DatatypeContexts</a></td><td class="doc"><p>Allow contexts to be put on datatypes, e.g. the <code>Eq a</code> in+ <code>data Eq a => Set a = NilSet | ConsSet a (Set a)</code>.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#datatype-contexts">http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#datatype-contexts</a></li></ul></td></tr><tr><td class="src"><a id="v:MonoLocalBinds" class="def">MonoLocalBinds</a></td><td class="doc"><p>Local (<code>let</code> and <code>where</code>) bindings are monomorphic.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#mono-local-binds">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#mono-local-binds</a></li></ul></td></tr><tr><td class="src"><a id="v:DeriveFunctor" class="def">DeriveFunctor</a></td><td class="doc"><p>Enable <code>deriving</code> for the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#v:Functor">Functor</a></code> class.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable">http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable</a></li></ul></td></tr><tr><td class="src"><a id="v:DeriveTraversable" class="def">DeriveTraversable</a></td><td class="doc"><p>Enable <code>deriving</code> for the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Traversable.html#v:Traversable">Traversable</a></code> class.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable">http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable</a></li></ul></td></tr><tr><td class="src"><a id="v:DeriveFoldable" class="def">DeriveFoldable</a></td><td class="doc"><p>Enable <code>deriving</code> for the <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Foldable.html#v:Foldable">Foldable</a></code> class.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable">http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-typeable</a></li></ul></td></tr><tr><td class="src"><a id="v:NondecreasingIndentation" class="def">NondecreasingIndentation</a></td><td class="doc"><p>Enable non-decreasing indentation for <code>do</code> blocks.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/bugs-and-infelicities.html#infelicities-syntax">http://www.haskell.org/ghc/docs/latest/html/users_guide/bugs-and-infelicities.html#infelicities-syntax</a></li></ul></td></tr><tr><td class="src"><a id="v:SafeImports" class="def">SafeImports</a></td><td class="doc"><p>Allow imports to be qualified with a safe keyword that requires+ the imported module be trusted as according to the Safe Haskell+ definition of trust.</p><pre>import safe Network.Socket</pre><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/safe-haskell.html#safe-imports">http://www.haskell.org/ghc/docs/latest/html/users_guide/safe-haskell.html#safe-imports</a></li></ul></td></tr><tr><td class="src"><a id="v:Safe" class="def">Safe</a></td><td class="doc"><p>Compile a module in the Safe, Safe Haskell mode -- a restricted+ form of the Haskell language to ensure type safety.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/safe-haskell.html#safe-trust">http://www.haskell.org/ghc/docs/latest/html/users_guide/safe-haskell.html#safe-trust</a></li></ul></td></tr><tr><td class="src"><a id="v:Trustworthy" class="def">Trustworthy</a></td><td class="doc"><p>Compile a module in the Trustworthy, Safe Haskell mode -- no+ restrictions apply but the module is marked as trusted as long as+ the package the module resides in is trusted.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/safe-haskell.html#safe-trust">http://www.haskell.org/ghc/docs/latest/html/users_guide/safe-haskell.html#safe-trust</a></li></ul></td></tr><tr><td class="src"><a id="v:Unsafe" class="def">Unsafe</a></td><td class="doc"><p>Compile a module in the Unsafe, Safe Haskell mode so that+ modules compiled using Safe, Safe Haskell mode can't import it.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/safe-haskell.html#safe-trust">http://www.haskell.org/ghc/docs/latest/html/users_guide/safe-haskell.html#safe-trust</a></li></ul></td></tr><tr><td class="src"><a id="v:ConstraintKinds" class="def">ConstraintKinds</a></td><td class="doc"><p>Allow type class<em>implicit parameter</em>equality constraints to be+ used as types with the special kind constraint. Also generalise+ the <code>(ctxt => ty)</code> syntax so that any type of kind constraint can+ occur before the arrow.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/constraint-kind.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/constraint-kind.html</a></li></ul></td></tr><tr><td class="src"><a id="v:PolyKinds" class="def">PolyKinds</a></td><td class="doc"><p>Enable kind polymorphism.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/kind-polymorphism.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/kind-polymorphism.html</a></li></ul></td></tr><tr><td class="src"><a id="v:DataKinds" class="def">DataKinds</a></td><td class="doc"><p>Enable datatype promotion.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/promotion.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/promotion.html</a></li></ul></td></tr><tr><td class="src"><a id="v:ParallelArrays" class="def">ParallelArrays</a></td><td class="doc"><p>Enable parallel arrays syntax (<code>[:</code>, <code>:]</code>) for <em>Data Parallel Haskell</em>.</p><ul><li><a href="http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell">http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell</a></li></ul></td></tr><tr><td class="src"><a id="v:RoleAnnotations" class="def">RoleAnnotations</a></td><td class="doc"><p>Enable explicit role annotations, like in (<code>type role Foo representational representational</code>).</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/roles.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/roles.html</a></li></ul></td></tr><tr><td class="src"><a id="v:OverloadedLists" class="def">OverloadedLists</a></td><td class="doc"><p>Enable overloading of list literals, arithmetic sequences and+ list patterns using the <code>IsList</code> type class.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#overloaded-lists">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#overloaded-lists</a></li></ul></td></tr><tr><td class="src"><a id="v:EmptyCase" class="def">EmptyCase</a></td><td class="doc"><p>Enable case expressions that have no alternatives. Also applies to lambda-case expressions if they are enabled.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#empty-case">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#empty-case</a></li></ul></td></tr><tr><td class="src"><a id="v:AutoDeriveTypeable" class="def">AutoDeriveTypeable</a></td><td class="doc"><p>Triggers the generation of derived <code><a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a></code> instances for every+ datatype and type class declaration.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#auto-derive-typeable">http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#auto-derive-typeable</a></li></ul></td></tr><tr><td class="src"><a id="v:NegativeLiterals" class="def">NegativeLiterals</a></td><td class="doc"><p>Desugars negative literals directly (without using negate).</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#negative-literals">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#negative-literals</a></li></ul></td></tr><tr><td class="src"><a id="v:BinaryLiterals" class="def">BinaryLiterals</a></td><td class="doc"><p>Allow the use of binary integer literal syntax (e.g. <code>0b11001001</code> to denote <code>201</code>).</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#binary-literals">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#binary-literals</a></li></ul></td></tr><tr><td class="src"><a id="v:NumDecimals" class="def">NumDecimals</a></td><td class="doc"><p>Allow the use of floating literal syntax for all instances of <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Num">Num</a></code>, including <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a></code> and <code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Integer">Integer</a></code>.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#num-decimals">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#num-decimals</a></li></ul></td></tr><tr><td class="src"><a id="v:NullaryTypeClasses" class="def">NullaryTypeClasses</a></td><td class="doc"><p>Enable support for type classes with no type parameter.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#nullary-type-classes">http://www.haskell.org/ghc/docs/latest/html/users_guide/type-class-extensions.html#nullary-type-classes</a></li></ul></td></tr><tr><td class="src"><a id="v:ExplicitNamespaces" class="def">ExplicitNamespaces</a></td><td class="doc"><p>Enable explicit namespaces in module import/export lists.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#explicit-namespaces">http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#explicit-namespaces</a></li></ul></td></tr><tr><td class="src"><a id="v:AllowAmbiguousTypes" class="def">AllowAmbiguousTypes</a></td><td class="doc"><p>Allow the user to write ambiguous types, and the type inference engine to infer them.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#ambiguity">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#ambiguity</a></li></ul></td></tr><tr><td class="src"><a id="v:JavaScriptFFI" class="def">JavaScriptFFI</a></td><td class="doc"><p>Enable <code>foreign import javascript</code>.</p></td></tr><tr><td class="src"><a id="v:PatternSynonyms" class="def">PatternSynonyms</a></td><td class="doc"><p>Allow giving names to and abstracting over patterns.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#pattern-synonyms">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#pattern-synonyms</a></li></ul></td></tr><tr><td class="src"><a id="v:PartialTypeSignatures" class="def">PartialTypeSignatures</a></td><td class="doc"><p>Allow anonymous placeholders (underscore) inside type signatures. The+ type inference engine will generate a message describing the type inferred+ at the hole's location.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#partial-type-signatures">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#partial-type-signatures</a></li></ul></td></tr><tr><td class="src"><a id="v:NamedWildCards" class="def">NamedWildCards</a></td><td class="doc"><p>Allow named placeholders written with a leading underscore inside type+ signatures. Wildcards with the same name unify to the same type.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#named-wildcards">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#named-wildcards</a></li></ul></td></tr><tr><td class="src"><a id="v:DeriveAnyClass" class="def">DeriveAnyClass</a></td><td class="doc"><p>Enable <code>deriving</code> for any class.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#derive-any-class">http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#derive-any-class</a></li></ul></td></tr><tr><td class="src"><a id="v:DeriveLift" class="def">DeriveLift</a></td><td class="doc"><p>Enable <code>deriving</code> for the <code><a href="Language-Haskell-TH-Syntax.html#v:Lift">Lift</a></code> class.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-lift">http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html#deriving-lift</a></li></ul></td></tr><tr><td class="src"><a id="v:StaticPointers" class="def">StaticPointers</a></td><td class="doc"><p>Enable support for 'static pointers' (and the <code>static</code>+ keyword) to refer to globally stable names, even across+ different programs.</p><ul><li><a href="http://www.haskell.org/ghc/docs/latest/html/users_guide/static-pointers.html">http://www.haskell.org/ghc/docs/latest/html/users_guide/static-pointers.html</a></li></ul></td></tr><tr><td class="src"><a id="v:StrictData" class="def">StrictData</a></td><td class="doc"><p>Switches data type declarations to be strict by default (as if+ they had a bang using <code>BangPatterns</code>), and allow opt-in field+ laziness using <code>~</code>.</p></td></tr><tr><td class="src"><a id="v:Strict" class="def">Strict</a></td><td class="doc"><p>Switches all pattern bindings to be strict by default (as if+ they had a bang using <code>BangPatterns</code>), ordinary patterns are+ recovered using <code>~</code>. Implies <code>StrictData</code>.</p></td></tr><tr><td class="src"><a id="v:ApplicativeDo" class="def">ApplicativeDo</a></td><td class="doc"><p>Allows <code>do</code>-notation for types that are <code><code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Applicative.html#t:Applicative">Applicative</a></code></code> as well+ as <code><code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a></code></code>. When enabled, desugaring <code>do</code> notation tries to use+ <code>(<a href="*">*</a>)</code> and <code><code><a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Functor.html#v:fmap">fmap</a></code></code> and <code><code>join</code></code> as far as possible.</p></td></tr><tr><td class="src"><a id="v:DuplicateRecordFields" class="def">DuplicateRecordFields</a></td><td class="doc"><p>Allow records to use duplicated field labels for accessors.</p></td></tr><tr><td class="src"><a id="v:TypeApplications" class="def">TypeApplications</a></td><td class="doc"><p>Enable explicit type applications with the syntax <code>id @Int</code>.</p></td></tr><tr><td class="src"><a id="v:TypeInType" class="def">TypeInType</a></td><td class="doc"><p>Dissolve the distinction between types and kinds, allowing the compiler+ to reason about kind equality and therefore enabling GADTs to be promoted+ to the type-level.</p></td></tr><tr><td class="src"><a id="v:UndecidableSuperClasses" class="def">UndecidableSuperClasses</a></td><td class="doc"><p>Allow recursive (and therefore undecideable) super-class relationships.</p></td></tr><tr><td class="src"><a id="v:MonadFailDesugaring" class="def">MonadFailDesugaring</a></td><td class="doc"><p>A temporary extension to help library authors check if their+ code will compile with the new planned desugaring of fail.</p></td></tr><tr><td class="src"><a id="v:TemplateHaskellQuotes" class="def">TemplateHaskellQuotes</a></td><td class="doc"><p>A subset of <code>TemplateHaskell</code> including only quasi-quoting.</p></td></tr><tr><td class="src"><a id="v:OverloadedLabels" class="def">OverloadedLabels</a></td><td class="doc"><p>Allows use of the <code>#label</code> syntax.</p></td></tr><tr><td class="src"><a id="v:TypeFamilyDependencies" class="def">TypeFamilyDependencies</a></td><td class="doc"><p>Allow functional dependency annotations on type families to declare them+ as injective.</p></td></tr></table></div><div class="subs instances"><p id="control.i:KnownExtension" class="caption collapser" onclick="toggleSection('i:KnownExtension')">Instances</p><div id="section.i:KnownExtension" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Bounded:1" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Bounded:1')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Enum:2" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Enum:2')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Prelude.html#t:Enum">Enum</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Enum:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Eq:3" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Eq:3')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Data:4" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Data:4')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Data:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (d -> b) -> d -> c b) -> (<span class="keyword">forall</span> g. g -> c g) -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> c <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => c (b -> r) -> c r) -> (<span class="keyword">forall</span> r. r -> c r) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> -> c <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:Constr">Constr</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Data.html#t:DataType">DataType</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => c (t d)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>) <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Typeable</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>) t => (<span class="keyword">forall</span> d e. (<a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d, <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> e) => c (t d e)) -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (c <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>) <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> b => b -> b) -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -> r' -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> r <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: (r' -> r -> r) -> r -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> r') -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> r <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> [u] <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> u) -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> u <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> m <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> m <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">MonadPlus</a> m => (<span class="keyword">forall</span> d. <a href="Distribution-Compat-Prelude-Internal.html#t:Data">Data</a> d => d -> m d) -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> m <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Ord:5" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Ord:5')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Ord:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(<)</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(<=)</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(>)</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(>=)</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Read:6" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Read:6')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Read.html#t:Read">Read</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Read:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadS">ReadS</a> [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Show:7" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Show:7')"></span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Show:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Generic:8" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Generic:8')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Generic</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Generic:8" class="inst-details hide"><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> <a href="#t:Rep" class="selflink">#</a></p></div> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:from">from</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> x <a href="#v:from" class="selflink">#</a></p><p class="src"><a href="#v:to">to</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> x -> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:to" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Binary:9" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Binary:9')"></span> <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Binary</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Binary:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Get-Internal.html#t:Get">Get</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:putList">putList</a> :: [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>] -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/binary-0.8.5.1/Data-Binary-Put.html#t:Put">Put</a> <a href="#v:putList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Text:10" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Text:10')"></span> <a href="Distribution-Text.html#t:Text">Text</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Text:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:disp">disp</a> :: <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> -> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:disp" class="selflink">#</a></p><p class="src"><a href="#v:parse">parse</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> <a href="#v:parse" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:KnownExtension:Rep:11" class="instance expander" onclick="toggleSection('i:id:KnownExtension:Rep:11')"></span> <span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a></span> <a href="#t:KnownExtension" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:KnownExtension:Rep:11" class="inst-details hide"><div class="src"><span class="keyword">type</span> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a> = <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:D1">D1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaData">MetaData</a> "KnownExtension" "Language.Haskell.Extension" "Cabal-2.0.0.2-48TVI32Hgv71FS4sRlskN" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OverlappingInstances" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UndecidableInstances" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "IncoherentInstances" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DoRec" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RecursiveDo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ParallelListComp" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MultiParamTypeClasses" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MonomorphismRestriction" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FunctionalDependencies" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Rank2Types" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RankNTypes" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PolymorphicComponents" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExistentialQuantification" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ScopedTypeVariables" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PatternSignatures" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ImplicitParams" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FlexibleContexts" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "FlexibleInstances" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "EmptyDataDecls" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CPP" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "KindSignatures" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BangPatterns" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TypeSynonymInstances" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TemplateHaskell" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ForeignFunctionInterface" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Arrows" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Generics" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ImplicitPrelude" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NamedFieldPuns" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PatternGuards" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GeneralizedNewtypeDeriving" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExtensibleRecords" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RestrictedTypeSynonyms" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "HereDocuments" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MagicHash" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TypeFamilies" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "StandaloneDeriving" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnicodeSyntax" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnliftedFFITypes" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "InterruptibleFFI" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "CApiFFI" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LiberalTypeSynonyms" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TypeOperators" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RecordWildCards" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RecordPuns" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DisambiguateRecordFields" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TraditionalRecordSyntax" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OverloadedStrings" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GADTs" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GADTSyntax" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MonoPatBinds" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RelaxedPolyRec" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExtendedDefaultRules" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UnboxedTuples" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DeriveDataTypeable" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DeriveGeneric" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DefaultSignatures" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "InstanceSigs" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ConstrainedClassMethods" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PackageImports" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ImpredicativeTypes" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NewQualifiedOperators" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PostfixOperators" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "QuasiQuotes" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TransformListComp" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MonadComprehensions" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ViewPatterns" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "XmlSyntax" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RegularPatterns" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TupleSections" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "GHCForeignImportPrim" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NPlusKPatterns" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DoAndIfThenElse" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MultiWayIf" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "LambdaCase" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RebindableSyntax" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExplicitForAll" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DatatypeContexts" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MonoLocalBinds" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DeriveFunctor" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DeriveTraversable" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DeriveFoldable" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NondecreasingIndentation" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "SafeImports" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Safe" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Trustworthy" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Unsafe" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ConstraintKinds" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PolyKinds" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DataKinds" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ParallelArrays" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "RoleAnnotations" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OverloadedLists" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "EmptyCase" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AutoDeriveTypeable" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NegativeLiterals" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "BinaryLiterals" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NumDecimals" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NullaryTypeClasses" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ExplicitNamespaces" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "AllowAmbiguousTypes" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "JavaScriptFFI" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PatternSynonyms" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "PartialTypeSignatures" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "NamedWildCards" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DeriveAnyClass" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DeriveLift" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "StaticPointers" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "StrictData" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "Strict" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "ApplicativeDo" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "DuplicateRecordFields" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TypeApplications" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TypeInType" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "UndecidableSuperClasses" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "MonadFailDesugaring" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TemplateHaskellQuotes" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>))) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t::-43-:">(:+:)</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "OverloadedLabels" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:C1">C1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a> (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:MetaCons">MetaCons</a> "TypeFamilyDependencies" <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#v:PrefixI">PrefixI</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Bool.html#v:False">False</a>) (<a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/GHC-Generics.html#t:U1">U1</a> <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Kind.html#t:-42-">*</a>)))))))))</div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:knownExtensions" class="def">knownExtensions</a> :: [<a href="Language-Haskell-Extension.html#t:KnownExtension">KnownExtension</a>] <a href="#v:knownExtensions" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: KnownExtension is an instance of Enum and Bounded, use those instead.</p></div></div></div><div class="top"><p class="src"><a id="v:deprecatedExtensions" class="def">deprecatedExtensions</a> :: [(<a href="Language-Haskell-Extension.html#t:Extension">Extension</a>, <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a>)] <a href="#v:deprecatedExtensions" class="selflink">#</a></p><div class="doc"><p>Extensions that have been deprecated, possibly paired with another+ extension that replaces it.</p></div></div><div class="top"><p class="src"><a id="v:classifyExtension" class="def">classifyExtension</a> :: <a href="file:///opt/ghc/8.2.1/share/doc/ghc-8.2.1/html/libraries/base-4.10.0.0/Data-String.html#t:String">String</a> -> <a href="Language-Haskell-Extension.html#t:Extension">Extension</a> <a href="#v:classifyExtension" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-124.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - |)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - |</p><table><tr><td class="src">||</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-33.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - !)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - !</p><table><tr><td class="src">!</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">!!</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">!?</td><td class="module">Distribution.Compat.Map.Strict</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-36.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - $)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - $</p><table><tr><td class="src">$</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">$!</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-38.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - &)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - &</p><table><tr><td class="src">&&</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-42.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - *)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - *</p><table><tr><td class="src">*</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">**</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">*></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-43.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - +)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - +</p><table><tr><td class="src">+</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">++</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">+++</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:-43--43--43-">Distribution.Compat.ReadP</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-45.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - -)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - -</p><table><tr><td class="src">-</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-46.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - .)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - .</p><table><tr><td class="src">.</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-47.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - /)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - /</p><table><tr><td class="src">/</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">/=</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-60.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - <)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - <</p><table><tr><td class="src"><</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><$</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><$></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><*</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><*></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><++</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:-60--43--43-">Distribution.Compat.ReadP</a></td></tr><tr><td class="src"><<>></td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:-60--60--62--62-">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src"><=</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><></td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:-60--62-">Distribution.Compat.Semigroup</a>, <a href="Distribution-Compat-Prelude-Internal.html#v:-60--62-">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src"><|></td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:-60--124--62-">Distribution.Compat.Prelude.Internal</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-61.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - =)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - =</p><table><tr><td class="src">=<<</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">==</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-62.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - >)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - ></p><table><tr><td class="src">></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">>=</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">>></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">>>=</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-92.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - \)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - \</p><table><tr><td class="src">\\</td><td class="module">Distribution.Compat.Map.Strict</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-94.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - ^)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - ^</p><table><tr><td class="src">^</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">^^</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-A.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - A)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - A</p><table><tr><td class="src">AbiDependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:AbiDependency">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">abiDepends</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:abiDepends">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">AbiHash</td><td class="module"><a href="Distribution-Types-AbiHash.html#t:AbiHash">Distribution.Types.AbiHash</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">abiHash</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:abiHash">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:abiHash">Distribution.Simple.Register</a></td></tr><tr><td class="src">AbiTag</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compiler.html#t:AbiTag">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compiler.html#v:AbiTag">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">abiTagString</td><td class="module"><a href="Distribution-Compiler.html#v:abiTagString">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">AbiTagVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:AbiTagVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">abiTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:abiTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">AbiVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:AbiVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">abs</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">absoluteComponentInstallDirs</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:absoluteComponentInstallDirs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">absoluteInstallDirs</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:absoluteInstallDirs">Distribution.Simple.InstallDirs</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:absoluteInstallDirs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">absoluteInstalledPackageInfo</td><td class="module"><a href="Distribution-Simple-Register.html#v:absoluteInstalledPackageInfo">Distribution.Simple.Register</a></td></tr><tr><td class="src">absolutePackageDBPath</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:absolutePackageDBPath">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">absolutePackageDBPaths</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:absolutePackageDBPaths">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">abstractUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:abstractUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">acos</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">acosh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">AcyclicSCC</td><td class="module"><a href="Distribution-Compat-Graph.html#v:AcyclicSCC">Distribution.Compat.Graph</a></td></tr><tr><td class="src">addBuildableCondition</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:addBuildableCondition">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">addKnownProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:addKnownProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:addKnownProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">addKnownPrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:addKnownPrograms">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:addKnownPrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">addLibraryPath</td><td class="module"><a href="Distribution-Simple-Utils.html#v:addLibraryPath">Distribution.Simple.Utils</a></td></tr><tr><td class="src">addProgressCtx</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:addProgressCtx">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">adjust</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">adjustWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">AGPL</td><td class="module"><a href="Distribution-License.html#v:AGPL">Distribution.License</a>, <a href="Distribution-Make.html#v:AGPL">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">AIX</td><td class="module"><a href="Distribution-System.html#v:AIX">Distribution.System</a></td></tr><tr><td class="src">alexProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:alexProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:alexProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">All</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:All">Distribution.Compat.Semigroup</a></td></tr><tr><td class="alt">2 (Type/Class)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:All">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">all</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">allBuildInfo</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:allBuildInfo">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:allBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">allComponentsInBuildOrder</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:allComponentsInBuildOrder">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">allExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:allExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:allExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">allLanguages</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:allLanguages">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:allLanguages">Distribution.PackageDescription</a></td></tr><tr><td class="src">allLibModules</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:allLibModules">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">allLibraries</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:allLibraries">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:allLibraries">Distribution.PackageDescription</a></td></tr><tr><td class="src">AllowAmbiguousTypes</td><td class="module"><a href="Language-Haskell-Extension.html#v:AllowAmbiguousTypes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">AllowNewer</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:AllowNewer">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:AllowNewer">Distribution.Simple.Setup</a></td></tr><tr><td class="src">AllowOlder</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:AllowOlder">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:AllowOlder">Distribution.Simple.Setup</a></td></tr><tr><td class="src">allPackages</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:allPackages">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">allPackagesByName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:allPackagesByName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">allPackagesBySourcePackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:allPackagesBySourcePackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">allPackagesBySourcePackageIdAndLibName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:allPackagesBySourcePackageIdAndLibName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">AllRightsReserved</td><td class="module"><a href="Distribution-License.html#v:AllRightsReserved">Distribution.License</a>, <a href="Distribution-Make.html#v:AllRightsReserved">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">allTargetsInBuildOrder</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:allTargetsInBuildOrder">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">allTargetsInBuildOrder'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:allTargetsInBuildOrder-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">Alpha</td><td class="module"><a href="Distribution-System.html#v:Alpha">Distribution.System</a></td></tr><tr><td class="src">alter</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">alterF</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Alternative</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Alternative">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">alterVersion</td><td class="module"><a href="Distribution-Version.html#v:alterVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Always</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Always">Distribution.Simple.Setup</a></td></tr><tr><td class="src">alwaysNondecIndent</td><td class="module"><a href="Distribution-Simple-GHC.html#v:alwaysNondecIndent">Distribution.Simple.GHC</a></td></tr><tr><td class="src">Ambiguous</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:Ambiguous">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">AmbiguousParse</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:AmbiguousParse">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">and</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Android</td><td class="module"><a href="Distribution-System.html#v:Android">Distribution.System</a></td></tr><tr><td class="src">annotateCallStackIO</td><td class="module"><a href="Distribution-Compat-Stack.html#v:annotateCallStackIO">Distribution.Compat.Stack</a></td></tr><tr><td class="src">AnnotatedId</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#v:AnnotatedId">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="src">annotateIO</td><td class="module"><a href="Distribution-Simple-Utils.html#v:annotateIO">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ann_cname</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#v:ann_cname">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="src">ann_id</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#v:ann_id">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="src">ann_pid</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#v:ann_pid">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="src">Any</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:Any">Distribution.Compat.Semigroup</a></td></tr><tr><td class="alt">2 (Type/Class)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:Any">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">any</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">AnyVersion</td><td class="module"><a href="Distribution-Version.html#v:AnyVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">anyVersion</td><td class="module"><a href="Distribution-Version.html#v:anyVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">ap</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:ap">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Apache</td><td class="module"><a href="Distribution-License.html#v:Apache">Distribution.License</a>, <a href="Distribution-Make.html#v:Apache">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">appendFile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Applicative</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ApplicativeDo</td><td class="module"><a href="Language-Haskell-Extension.html#v:ApplicativeDo">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Arch</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-System.html#t:Arch">Distribution.System</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:Arch">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:Arch">Distribution.PackageDescription</a></td></tr><tr><td class="src">ArchVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:ArchVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">ArgPlaceHolder</td><td class="module"><a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">Distribution.Simple.Command</a></td></tr><tr><td class="src">Args</td><td class="module"><a href="Distribution-Simple-UserHooks.html#t:Args">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#t:Args">Distribution.Simple</a></td></tr><tr><td class="src">Arm</td><td class="module"><a href="Distribution-System.html#v:Arm">Distribution.System</a></td></tr><tr><td class="src">arProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:arProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:arProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">Arrows</td><td class="module"><a href="Language-Haskell-Extension.html#v:Arrows">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">asBool</td><td class="module"><a href="Distribution-Simple-Setup.html#v:asBool">Distribution.Simple.Setup</a></td></tr><tr><td class="src">asin</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">asinh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">assocs</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">asTypeOf</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">asVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:asVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">atan</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">atan2</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">atanh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">author</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:author">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:author">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:author">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">autoconfUserHooks</td><td class="module"><a href="Distribution-Simple.html#v:autoconfUserHooks">Distribution.Simple</a></td></tr><tr><td class="src">AutoDeriveTypeable</td><td class="module"><a href="Language-Haskell-Extension.html#v:AutoDeriveTypeable">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">autogenComponentModulesDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenComponentModulesDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">autogenModuleName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenModuleName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">autogenModules</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:autogenModules">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:autogenModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">autogenModulesDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenModulesDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">autogenPackageModulesDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenPackageModulesDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">autogenPathsModuleName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenPathsModuleName">Distribution.Simple.BuildPaths</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-All.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="index"><p class="caption">Index</p><table><tr><td class="src">!</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">!!</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">!?</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">$</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">$!</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">&&</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">*</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">**</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">*></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">+</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">++</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">+++</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:-43--43--43-">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">-</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">.</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">/</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">/=</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><$</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><$></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><*</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><*></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><++</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:-60--43--43-">Distribution.Compat.ReadP</a></td></tr><tr><td class="src"><<>></td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:-60--60--62--62-">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src"><=</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src"><></td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:-60--62-">Distribution.Compat.Semigroup</a>, <a href="Distribution-Compat-Prelude-Internal.html#v:-60--62-">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src"><|></td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:-60--124--62-">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">=<<</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">==</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">>=</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">>></td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">>>=</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">AbiDependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:AbiDependency">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:AbiDependency">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">abiDepends</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:abiDepends">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">AbiHash</td><td class="module"><a href="Distribution-Types-AbiHash.html#t:AbiHash">Distribution.Types.AbiHash</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">abiHash</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:abiHash">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:abiHash">Distribution.Simple.Register</a></td></tr><tr><td class="src">AbiTag</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compiler.html#t:AbiTag">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compiler.html#v:AbiTag">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">abiTagString</td><td class="module"><a href="Distribution-Compiler.html#v:abiTagString">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">AbiTagVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:AbiTagVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">abiTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:abiTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">AbiVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:AbiVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">abs</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">absoluteComponentInstallDirs</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:absoluteComponentInstallDirs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">absoluteInstallDirs</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:absoluteInstallDirs">Distribution.Simple.InstallDirs</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:absoluteInstallDirs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">absoluteInstalledPackageInfo</td><td class="module"><a href="Distribution-Simple-Register.html#v:absoluteInstalledPackageInfo">Distribution.Simple.Register</a></td></tr><tr><td class="src">absolutePackageDBPath</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:absolutePackageDBPath">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">absolutePackageDBPaths</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:absolutePackageDBPaths">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">abstractUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:abstractUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">acos</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">acosh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">AcyclicSCC</td><td class="module"><a href="Distribution-Compat-Graph.html#v:AcyclicSCC">Distribution.Compat.Graph</a></td></tr><tr><td class="src">addBuildableCondition</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:addBuildableCondition">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">addKnownProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:addKnownProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:addKnownProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">addKnownPrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:addKnownPrograms">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:addKnownPrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">addLibraryPath</td><td class="module"><a href="Distribution-Simple-Utils.html#v:addLibraryPath">Distribution.Simple.Utils</a></td></tr><tr><td class="src">addProgressCtx</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:addProgressCtx">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">adjust</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">adjustWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">AGPL</td><td class="module"><a href="Distribution-License.html#v:AGPL">Distribution.License</a>, <a href="Distribution-Make.html#v:AGPL">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">AIX</td><td class="module"><a href="Distribution-System.html#v:AIX">Distribution.System</a></td></tr><tr><td class="src">alexProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:alexProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:alexProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">All</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:All">Distribution.Compat.Semigroup</a></td></tr><tr><td class="alt">2 (Type/Class)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:All">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">all</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">allBuildInfo</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:allBuildInfo">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:allBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">allComponentsInBuildOrder</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:allComponentsInBuildOrder">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">allExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:allExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:allExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">allLanguages</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:allLanguages">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:allLanguages">Distribution.PackageDescription</a></td></tr><tr><td class="src">allLibModules</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:allLibModules">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">allLibraries</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:allLibraries">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:allLibraries">Distribution.PackageDescription</a></td></tr><tr><td class="src">AllowAmbiguousTypes</td><td class="module"><a href="Language-Haskell-Extension.html#v:AllowAmbiguousTypes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">AllowNewer</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:AllowNewer">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:AllowNewer">Distribution.Simple.Setup</a></td></tr><tr><td class="src">AllowOlder</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:AllowOlder">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:AllowOlder">Distribution.Simple.Setup</a></td></tr><tr><td class="src">allPackages</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:allPackages">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">allPackagesByName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:allPackagesByName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">allPackagesBySourcePackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:allPackagesBySourcePackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">allPackagesBySourcePackageIdAndLibName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:allPackagesBySourcePackageIdAndLibName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">AllRightsReserved</td><td class="module"><a href="Distribution-License.html#v:AllRightsReserved">Distribution.License</a>, <a href="Distribution-Make.html#v:AllRightsReserved">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">allTargetsInBuildOrder</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:allTargetsInBuildOrder">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">allTargetsInBuildOrder'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:allTargetsInBuildOrder-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">Alpha</td><td class="module"><a href="Distribution-System.html#v:Alpha">Distribution.System</a></td></tr><tr><td class="src">alter</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">alterF</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Alternative</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Alternative">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">alterVersion</td><td class="module"><a href="Distribution-Version.html#v:alterVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Always</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Always">Distribution.Simple.Setup</a></td></tr><tr><td class="src">alwaysNondecIndent</td><td class="module"><a href="Distribution-Simple-GHC.html#v:alwaysNondecIndent">Distribution.Simple.GHC</a></td></tr><tr><td class="src">Ambiguous</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:Ambiguous">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">AmbiguousParse</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:AmbiguousParse">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">and</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Android</td><td class="module"><a href="Distribution-System.html#v:Android">Distribution.System</a></td></tr><tr><td class="src">annotateCallStackIO</td><td class="module"><a href="Distribution-Compat-Stack.html#v:annotateCallStackIO">Distribution.Compat.Stack</a></td></tr><tr><td class="src">AnnotatedId</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#t:AnnotatedId">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#v:AnnotatedId">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="src">annotateIO</td><td class="module"><a href="Distribution-Simple-Utils.html#v:annotateIO">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ann_cname</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#v:ann_cname">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="src">ann_id</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#v:ann_id">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="src">ann_pid</td><td class="module"><a href="Distribution-Types-AnnotatedId.html#v:ann_pid">Distribution.Types.AnnotatedId</a></td></tr><tr><td class="src">Any</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:Any">Distribution.Compat.Semigroup</a></td></tr><tr><td class="alt">2 (Type/Class)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:Any">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">any</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">AnyVersion</td><td class="module"><a href="Distribution-Version.html#v:AnyVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">anyVersion</td><td class="module"><a href="Distribution-Version.html#v:anyVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">ap</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:ap">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Apache</td><td class="module"><a href="Distribution-License.html#v:Apache">Distribution.License</a>, <a href="Distribution-Make.html#v:Apache">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">appendFile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Applicative</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ApplicativeDo</td><td class="module"><a href="Language-Haskell-Extension.html#v:ApplicativeDo">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Arch</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-System.html#t:Arch">Distribution.System</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:Arch">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:Arch">Distribution.PackageDescription</a></td></tr><tr><td class="src">ArchVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:ArchVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">ArgPlaceHolder</td><td class="module"><a href="Distribution-Simple-Command.html#t:ArgPlaceHolder">Distribution.Simple.Command</a></td></tr><tr><td class="src">Args</td><td class="module"><a href="Distribution-Simple-UserHooks.html#t:Args">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#t:Args">Distribution.Simple</a></td></tr><tr><td class="src">Arm</td><td class="module"><a href="Distribution-System.html#v:Arm">Distribution.System</a></td></tr><tr><td class="src">arProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:arProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:arProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">Arrows</td><td class="module"><a href="Language-Haskell-Extension.html#v:Arrows">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">asBool</td><td class="module"><a href="Distribution-Simple-Setup.html#v:asBool">Distribution.Simple.Setup</a></td></tr><tr><td class="src">asin</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">asinh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">assocs</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">asTypeOf</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">asVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:asVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">atan</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">atan2</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">atanh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">author</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:author">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:author">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:author">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">autoconfUserHooks</td><td class="module"><a href="Distribution-Simple.html#v:autoconfUserHooks">Distribution.Simple</a></td></tr><tr><td class="src">AutoDeriveTypeable</td><td class="module"><a href="Language-Haskell-Extension.html#v:AutoDeriveTypeable">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">autogenComponentModulesDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenComponentModulesDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">autogenModuleName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenModuleName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">autogenModules</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:autogenModules">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:autogenModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">autogenModulesDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenModulesDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">autogenPackageModulesDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenPackageModulesDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">autogenPathsModuleName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:autogenPathsModuleName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">backpackSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:backpackSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">BangPatterns</td><td class="module"><a href="Language-Haskell-Extension.html#v:BangPatterns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Bazaar</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Bazaar">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Bazaar">Distribution.PackageDescription</a></td></tr><tr><td class="src">bench</td><td class="module"><a href="Distribution-Simple-Bench.html#v:bench">Distribution.Simple.Bench</a></td></tr><tr><td class="src">BenchComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:BenchComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:BenchComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">benchHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:benchHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:benchHook">Distribution.Simple</a></td></tr><tr><td class="src">Benchmark</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Benchmark.html#t:Benchmark">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#t:Benchmark">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:Benchmark">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:Benchmark">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkBuildInfo</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkBuildInfo">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:benchmarkCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">benchmarkDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:benchmarkDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">BenchmarkExeV10</td><td class="module"><a href="Distribution-Types-BenchmarkInterface.html#v:BenchmarkExeV10">Distribution.Types.BenchmarkInterface</a>, <a href="Distribution-PackageDescription.html#v:BenchmarkExeV10">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">BenchmarkFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:BenchmarkFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">BenchmarkInterface</td><td class="module"><a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">Distribution.Types.BenchmarkInterface</a>, <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkInterface</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkInterface">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkInterface">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkModules</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkModules">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkModulesAutogen</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkModulesAutogen">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkModulesAutogen">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkName</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkName">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkName">Distribution.PackageDescription</a></td></tr><tr><td class="src">BenchmarkNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:BenchmarkNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">benchmarkOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:benchmarkOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">benchmarks</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:benchmarks">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:benchmarks">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarksRequested</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:benchmarksRequested">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">BenchmarkStanza</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#t:BenchmarkStanza">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:BenchmarkStanza">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">benchmarkStanzaBenchmarkModule</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkStanzaBenchmarkModule">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">benchmarkStanzaBenchmarkType</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkStanzaBenchmarkType">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">benchmarkStanzaBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkStanzaBuildInfo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">benchmarkStanzaMainIs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkStanzaMainIs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">BenchmarkType</td><td class="module"><a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">Distribution.Types.BenchmarkType</a>, <a href="Distribution-PackageDescription.html#t:BenchmarkType">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkType</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkType">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkType">Distribution.PackageDescription</a></td></tr><tr><td class="src">BenchmarkTypeExe</td><td class="module"><a href="Distribution-Types-BenchmarkType.html#v:BenchmarkTypeExe">Distribution.Types.BenchmarkType</a>, <a href="Distribution-PackageDescription.html#v:BenchmarkTypeExe">Distribution.PackageDescription</a></td></tr><tr><td class="src">BenchmarkTypeUnknown</td><td class="module"><a href="Distribution-Types-BenchmarkType.html#v:BenchmarkTypeUnknown">Distribution.Types.BenchmarkType</a>, <a href="Distribution-PackageDescription.html#v:BenchmarkTypeUnknown">Distribution.PackageDescription</a></td></tr><tr><td class="src">BenchmarkUnsupported</td><td class="module"><a href="Distribution-Types-BenchmarkInterface.html#v:BenchmarkUnsupported">Distribution.Types.BenchmarkInterface</a>, <a href="Distribution-PackageDescription.html#v:BenchmarkUnsupported">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:benchmarkVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">between</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:between">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">betweenVersionsInclusive</td><td class="module"><a href="Distribution-Version.html#v:betweenVersionsInclusive">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Binary</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">BinaryLiterals</td><td class="module"><a href="Language-Haskell-Extension.html#v:BinaryLiterals">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">bindir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:bindir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">BindirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:BindirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">binfoFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:binfoFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">Bool</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">BooleanFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#t:BooleanFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">BoolOpt</td><td class="module"><a href="Distribution-Simple-Command.html#v:BoolOpt">Distribution.Simple.Command</a></td></tr><tr><td class="src">boolOpt</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Command.html#v:boolOpt">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:boolOpt">Distribution.Simple.Setup</a></td></tr><tr><td class="src">boolOpt'</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Command.html#v:boolOpt-39-">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:boolOpt-39-">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Bound</td><td class="module"><a href="Distribution-Version.html#t:Bound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Bounded</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">break</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">broken</td><td class="module"><a href="Distribution-Compat-Graph.html#v:broken">Distribution.Compat.Graph</a></td></tr><tr><td class="src">brokenPackages</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:brokenPackages">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">BSD2</td><td class="module"><a href="Distribution-License.html#v:BSD2">Distribution.License</a>, <a href="Distribution-Make.html#v:BSD2">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">BSD3</td><td class="module"><a href="Distribution-License.html#v:BSD3">Distribution.License</a>, <a href="Distribution-Make.html#v:BSD3">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">BSD4</td><td class="module"><a href="Distribution-License.html#v:BSD4">Distribution.License</a>, <a href="Distribution-Make.html#v:BSD4">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">bugReports</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:bugReports">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:bugReports">Distribution.PackageDescription</a></td></tr><tr><td class="src">build</td><td class="module"><a href="Distribution-Simple-Build.html#v:build">Distribution.Simple.Build</a></td></tr><tr><td class="src">buildable</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:buildable">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:buildable">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildArch</td><td class="module"><a href="Distribution-System.html#v:buildArch">Distribution.System</a></td></tr><tr><td class="src">buildArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildCompilerFlavor</td><td class="module"><a href="Distribution-Compiler.html#v:buildCompilerFlavor">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">buildCompilerId</td><td class="module"><a href="Distribution-Compiler.html#v:buildCompilerId">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">buildDepends</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:buildDepends">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:buildDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildDir</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:buildDir">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:buildDir">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">buildDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildExe</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:buildExe">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:buildExe">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:buildExe">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:buildExe">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:buildExe">Distribution.Simple.GHC</a></td></tr><tr><td class="src">BuildFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:BuildFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:BuildFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildFLib</td><td class="module"><a href="Distribution-Simple-GHC.html#v:buildFLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">buildHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:buildHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:buildHook">Distribution.Simple</a></td></tr><tr><td class="src">BuildInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#t:BuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:BuildInfo">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:BuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildInfo</td><td class="module"><a href="Distribution-Types-Executable.html#v:buildInfo">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:buildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildLib</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:buildLib">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:buildLib">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:buildLib">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:buildLib">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:buildLib">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:buildLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">buildNumJobs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildNumJobs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildOS</td><td class="module"><a href="Distribution-System.html#v:buildOS">Distribution.System</a></td></tr><tr><td class="src">buildPlatform</td><td class="module"><a href="Distribution-System.html#v:buildPlatform">Distribution.System</a></td></tr><tr><td class="src">buildProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">BuildTarget</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetAmbiguous</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetAmbiguous">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetComponent</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetComponent">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">buildTargetComponentName</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:buildTargetComponentName">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetExpected</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetExpected">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetFile</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetFile">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetModule</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetModule">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetNoSuch</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetNoSuch">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetProblem</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">buildToolDepends</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:buildToolDepends">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:buildToolDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildTools</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:buildTools">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:buildTools">Distribution.PackageDescription</a></td></tr><tr><td class="src">BuildType</td><td class="module"><a href="Distribution-Types-BuildType.html#t:BuildType">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#t:BuildType">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildType</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:buildType">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:buildType">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildVerbose</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildVerbose">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">builtinPrograms</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:builtinPrograms">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:builtinPrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">byteSwap16</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">byteSwap32</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">byteSwap64</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">C</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:C">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">c2hsProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:c2hsProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:c2hsProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">cabalBug</td><td class="module"><a href="Distribution-PackageDescription-Utils.html#v:cabalBug">Distribution.PackageDescription.Utils</a></td></tr><tr><td class="src">cabalVersion</td><td class="module"><a href="Distribution-Simple-Utils.html#v:cabalVersion">Distribution.Simple.Utils</a></td></tr><tr><td class="src">calibrateMtimeChangeDelay</td><td class="module"><a href="Distribution-Compat-Time.html#v:calibrateMtimeChangeDelay">Distribution.Compat.Time</a></td></tr><tr><td class="src">CallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#t:CallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">callStack</td><td class="module"><a href="Distribution-Compat-Stack.html#v:callStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">CAnd</td><td class="module"><a href="Distribution-Types-Condition.html#v:CAnd">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:CAnd">Distribution.PackageDescription</a></td></tr><tr><td class="src">cAnd</td><td class="module"><a href="Distribution-Types-Condition.html#v:cAnd">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:cAnd">Distribution.PackageDescription</a></td></tr><tr><td class="src">CApiFFI</td><td class="module"><a href="Language-Haskell-Extension.html#v:CApiFFI">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">catchExit</td><td class="module"><a href="Distribution-Compat-Exception.html#v:catchExit">Distribution.Compat.Exception</a></td></tr><tr><td class="src">catchIO</td><td class="module"><a href="Distribution-Compat-Exception.html#v:catchIO">Distribution.Compat.Exception</a></td></tr><tr><td class="src">category</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:category">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:category">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:category">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">catMaybes</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:catMaybes">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">CBench</td><td class="module"><a href="Distribution-Types-Component.html#v:CBench">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CBench">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CBenchName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CBenchName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CBenchName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CBenchName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ccLdOptionsBuildInfo</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ccLdOptionsBuildInfo">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ccOptions</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:ccOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:ccOptions">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ccOptions">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">cc_ann_id</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_ann_id">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_cid</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_cid">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_component</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_component">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_exe_deps</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_exe_deps">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_includes</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_includes">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_name</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_name">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_pkgid</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_pkgid">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_public</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_public">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">CDialect</td><td class="module"><a href="Distribution-Simple-CCompiler.html#t:CDialect">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">cDialectFilenameExtension</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:cDialectFilenameExtension">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">ceiling</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">CExe</td><td class="module"><a href="Distribution-Types-Component.html#v:CExe">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CExe">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CExeName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CExeName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CExeName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CExeName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CFLib</td><td class="module"><a href="Distribution-Types-Component.html#v:CFLib">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CFLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CFLibName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CFLibName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CFLibName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CFLibName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">chainl</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:chainl">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">chainl1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:chainl1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">chainr</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:chainr">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">chainr1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:chainr1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">Char</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">char</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:char">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">chattyTry</td><td class="module"><a href="Distribution-Simple-Utils.html#v:chattyTry">Distribution.Simple.Utils</a></td></tr><tr><td class="src">checkConfiguredPackage</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkConfiguredPackage">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkForeignDeps</td><td class="module"><a href="Distribution-Simple-Configure.html#v:checkForeignDeps">Distribution.Simple.Configure</a></td></tr><tr><td class="src">checkPackage</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkPackage">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkPackageContent</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkPackageContent">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">CheckPackageContentOps</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-PackageDescription-Check.html#t:CheckPackageContentOps">Distribution.PackageDescription.Check</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:CheckPackageContentOps">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkPackageFileNames</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkPackageFileNames">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkPackageFiles</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkPackageFiles">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkPersistBuildConfigOutdated</td><td class="module"><a href="Distribution-Simple-Configure.html#v:checkPersistBuildConfigOutdated">Distribution.Simple.Configure</a></td></tr><tr><td class="src">choice</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:choice">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">ChoiceOpt</td><td class="module"><a href="Distribution-Simple-Command.html#v:ChoiceOpt">Distribution.Simple.Command</a></td></tr><tr><td class="src">choiceOpt</td><td class="module"><a href="Distribution-Simple-Command.html#v:choiceOpt">Distribution.Simple.Command</a></td></tr><tr><td class="src">choiceOptFromEnum</td><td class="module"><a href="Distribution-Simple-Command.html#v:choiceOptFromEnum">Distribution.Simple.Command</a></td></tr><tr><td class="src">chr</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:chr">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">ci_ann_id</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_ann_id">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_cname</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_cname">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_id</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_id">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_implicit</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_implicit">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_pkgid</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_pkgid">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_renaming</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_renaming">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ClassificationStrictness</td><td class="module"><a href="Distribution-System.html#t:ClassificationStrictness">Distribution.System</a></td></tr><tr><td class="src">classifyArch</td><td class="module"><a href="Distribution-System.html#v:classifyArch">Distribution.System</a></td></tr><tr><td class="src">classifyCompilerFlavor</td><td class="module"><a href="Distribution-Compiler.html#v:classifyCompilerFlavor">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">classifyExtension</td><td class="module"><a href="Language-Haskell-Extension.html#v:classifyExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">classifyLanguage</td><td class="module"><a href="Language-Haskell-Extension.html#v:classifyLanguage">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">classifyOS</td><td class="module"><a href="Distribution-System.html#v:classifyOS">Distribution.System</a></td></tr><tr><td class="src">classifyRepoKind</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:classifyRepoKind">Distribution.Types.SourceRepo</a></td></tr><tr><td class="src">classifyRepoType</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:classifyRepoType">Distribution.Types.SourceRepo</a></td></tr><tr><td class="src">cleanCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:cleanCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">cleanDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:cleanDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">CleanFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:CleanFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:CleanFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">cleanHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:cleanHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:cleanHook">Distribution.Simple</a></td></tr><tr><td class="src">cleanSaveConf</td><td class="module"><a href="Distribution-Simple-Setup.html#v:cleanSaveConf">Distribution.Simple.Setup</a></td></tr><tr><td class="src">cleanVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:cleanVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">CLib</td><td class="module"><a href="Distribution-Types-Component.html#v:CLib">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CLibName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CLibName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CLibName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CLibName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">closure</td><td class="module"><a href="Distribution-Compat-Graph.html#v:closure">Distribution.Compat.Graph</a></td></tr><tr><td class="src">CNot</td><td class="module"><a href="Distribution-Types-Condition.html#v:CNot">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:CNot">Distribution.PackageDescription</a></td></tr><tr><td class="src">cNot</td><td class="module"><a href="Distribution-Types-Condition.html#v:cNot">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:cNot">Distribution.PackageDescription</a></td></tr><tr><td class="src">combineInstallDirs</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:combineInstallDirs">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">combineObjectFiles</td><td class="module"><a href="Distribution-Simple-Program-Ld.html#v:combineObjectFiles">Distribution.Simple.Program.Ld</a></td></tr><tr><td class="src">combinePathTemplate</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:combinePathTemplate">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">Command</td><td class="module"><a href="Distribution-Simple-Command.html#t:Command">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandAddAction</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandAddAction">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandDefaultFlags</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandDefaultFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandDescription</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandDescription">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandErrors</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandErrors">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandFromSpec</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandFromSpec">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandHelp</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandHelp">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandList</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandList">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandName</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandName">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandNotes</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandNotes">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandOptions</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandOptions">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandParse</td><td class="module"><a href="Distribution-Simple-Command.html#t:CommandParse">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandParseArgs</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandParseArgs">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandReadyToGo</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandReadyToGo">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandShowOptions</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandShowOptions">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandSpec</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Command.html#t:CommandSpec">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandSpec">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandsRun</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandsRun">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandSynopsis</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandSynopsis">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandType</td><td class="module"><a href="Distribution-Simple-Command.html#t:CommandType">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandUI</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Command.html#t:CommandUI">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandUI">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandUsage</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandUsage">Distribution.Simple.Command</a></td></tr><tr><td class="src">compare</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">comparing</td><td class="module"><a href="Distribution-Utils-Generic.html#v:comparing">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:comparing">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Compat</td><td class="module"><a href="Distribution-System.html#v:Compat">Distribution.System</a></td></tr><tr><td class="src">compatPackageKey</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:compatPackageKey">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">Compiler</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:Compiler">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:Compiler">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compiler</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:compiler">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:compiler">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:compiler">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">compilerAbiTag</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerAbiTag">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerCompat</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerCompat">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerCompatFlavor</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerCompatFlavor">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerCompatVersion</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerCompatVersion">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerExtensions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerExtensions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">CompilerFlavor</td><td class="module"><a href="Distribution-Compiler.html#t:CompilerFlavor">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerFlavor</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerFlavor">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">CompilerId</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compiler.html#t:CompilerId">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compiler.html#v:CompilerId">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerId</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerId">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">CompilerInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compiler.html#t:CompilerInfo">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compiler.html#v:CompilerInfo">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerInfoAbiTag</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoAbiTag">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfoCompat</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoCompat">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfoExtensions</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoExtensions">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfoId</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoId">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfoLanguages</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoLanguages">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerLanguages</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerLanguages">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerProperties</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerProperties">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:compilerTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">CompilerVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:CompilerVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">compilerVersion</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerVersion">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">Component</td><td class="module"><a href="Distribution-Types-Component.html#t:Component">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentBuildable</td><td class="module"><a href="Distribution-Types-Component.html#v:componentBuildable">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentBuildable">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentBuildDir</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:componentBuildDir">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentBuildInfo</td><td class="module"><a href="Distribution-Types-Component.html#v:componentBuildInfo">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentCcGhcOptions</td><td class="module"><a href="Distribution-Simple-GHC.html#v:componentCcGhcOptions">Distribution.Simple.GHC</a></td></tr><tr><td class="src">componentCompatPackageKey</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentCompatPackageKey">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentCompatPackageKey">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentCompatPackageName</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentCompatPackageName">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentCompatPackageName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentComponentId</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentComponentId">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentComponentId">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentCycleMsg</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#v:componentCycleMsg">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">ComponentDisabledReason</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentDisabledReason">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">componentDisabledReason</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:componentDisabledReason">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">componentEnabled</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:componentEnabled">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">componentEnabledSpec</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentEnabledSpec">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentEnabledSpec">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentExeDeps</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentExeDeps">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentExeDeps">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentExposedModules</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentExposedModules">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentExposedModules">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentGhcOptions</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:componentGhcOptions">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:componentGhcOptions">Distribution.Simple.GHC</a></td></tr><tr><td class="src">componentGraph</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentGraph">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentGraph">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentId</td><td class="module"><a href="Distribution-Types-ComponentId.html#t:ComponentId">Distribution.Types.ComponentId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">ComponentInclude</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ComponentInclude">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">componentIncludes</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentIncludes">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentIncludes">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentInitialBuildSteps</td><td class="module"><a href="Distribution-Simple-Build.html#v:componentInitialBuildSteps">Distribution.Simple.Build</a></td></tr><tr><td class="src">componentInstantiatedWith</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentInstantiatedWith">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentInstantiatedWith">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentInternalDeps</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentInternalDeps">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentInternalDeps">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentIsIndefinite</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentIsIndefinite">Distribution.Types.ComponentLocalBuildInfo</a></td></tr><tr><td class="src">componentIsIndefinite_</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentIsIndefinite_">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentIsIndefinite_">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentIsPublic</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentIsPublic">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentIsPublic">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentLocalName</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentLocalName">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentLocalName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentName</td><td class="module"><a href="Distribution-Types-ComponentName.html#t:ComponentName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#t:ComponentName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentName</td><td class="module"><a href="Distribution-Types-Component.html#v:componentName">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameCLBIs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentNameCLBIs">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameMap</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentNameMap">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentNameMap">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameRequested</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:componentNameRequested">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">componentNameStanza</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:componentNameStanza">Distribution.Types.ComponentName</a></td></tr><tr><td class="src">componentNameString</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:componentNameString">Distribution.Types.ComponentName</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentNameString">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameTargets</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentNameTargets">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameTargets'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentNameTargets-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">componentPackageDeps</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentRequestedSpec</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:ComponentRequestedSpec">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">components</td><td class="module"><a href="Distribution-ModuleName.html#v:components">Distribution.ModuleName</a></td></tr><tr><td class="src">componentsConfigs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentsConfigs">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentsGraph</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsGraph">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">componentsGraphToList</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#v:componentsGraphToList">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">componentsInBuildOrder</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:componentsInBuildOrder">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentsWithDeps</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsWithDeps">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">componentUnitId</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentUnitId">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentUnitId">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">computeCompatPackageId</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#v:computeCompatPackageId">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="src">computeCompatPackageKey</td><td class="module"><a href="Distribution-Simple-Configure.html#v:computeCompatPackageKey">Distribution.Simple.Configure</a></td></tr><tr><td class="src">computeCompatPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#v:computeCompatPackageName">Distribution.Types.MungedPackageName</a>, <a href="Distribution-Simple-Configure.html#v:computeCompatPackageName">Distribution.Simple.Configure</a></td></tr><tr><td class="src">computeComponentId</td><td class="module"><a href="Distribution-Simple-Configure.html#v:computeComponentId">Distribution.Simple.Configure</a></td></tr><tr><td class="src">computeEffectiveProfiling</td><td class="module"><a href="Distribution-Simple-Configure.html#v:computeEffectiveProfiling">Distribution.Simple.Configure</a></td></tr><tr><td class="src">concat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">concatMap</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">concurrently</td><td class="module"><a href="Distribution-TestSuite.html#v:concurrently">Distribution.TestSuite</a></td></tr><tr><td class="src">condBenchmarks</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condBenchmarks">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condBenchmarks">Distribution.PackageDescription</a></td></tr><tr><td class="src">CondBranch</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-CondTree.html#t:CondBranch">Distribution.Types.CondTree</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-CondTree.html#v:CondBranch">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condBranchCondition</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condBranchCondition">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condBranchIfFalse</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condBranchIfFalse">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condBranchIfTrue</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condBranchIfTrue">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condExecutables</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condExecutables">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condExecutables">Distribution.PackageDescription</a></td></tr><tr><td class="src">condForeignLibs</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condForeignLibs">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condForeignLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">condIfThen</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condIfThen">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condIfThenElse</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condIfThenElse">Distribution.Types.CondTree</a></td></tr><tr><td class="src">Condition</td><td class="module"><a href="Distribution-Types-Condition.html#t:Condition">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#t:Condition">Distribution.PackageDescription</a></td></tr><tr><td class="src">condLibrary</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condLibrary">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condLibrary">Distribution.PackageDescription</a></td></tr><tr><td class="src">CondNode</td><td class="module"><a href="Distribution-Types-CondTree.html#v:CondNode">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#v:CondNode">Distribution.PackageDescription</a></td></tr><tr><td class="src">condSubLibraries</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condSubLibraries">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condSubLibraries">Distribution.PackageDescription</a></td></tr><tr><td class="src">condTestSuites</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condTestSuites">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condTestSuites">Distribution.PackageDescription</a></td></tr><tr><td class="src">CondTree</td><td class="module"><a href="Distribution-Types-CondTree.html#t:CondTree">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#t:CondTree">Distribution.PackageDescription</a></td></tr><tr><td class="src">condTreeComponents</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condTreeComponents">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#v:condTreeComponents">Distribution.PackageDescription</a></td></tr><tr><td class="src">condTreeConstraints</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condTreeConstraints">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#v:condTreeConstraints">Distribution.PackageDescription</a></td></tr><tr><td class="src">condTreeData</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condTreeData">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#v:condTreeData">Distribution.PackageDescription</a></td></tr><tr><td class="src">confHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:confHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:confHook">Distribution.Simple</a></td></tr><tr><td class="src">configAbsolutePaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configAbsolutePaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configAllowNewer</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configAllowNewer">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configAllowOlder</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configAllowOlder">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configBenchmarks</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configBenchmarks">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configCabalFilePath</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configCabalFilePath">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configCID</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configCID">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configCompiler</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configCompiler">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configCompilerAux</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configCompilerAux">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configCompilerAuxEx</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configCompilerAuxEx">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configCompilerEx</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configCompilerEx">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configConfigurationsFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configConfigurationsFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configConfigureArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configConfigureArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configConstraints</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configConstraints">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configCoverage</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configCoverage">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDebugInfo</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDebugInfo">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDependencies</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDependencies">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDeterministic</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDeterministic">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDynExe</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDynExe">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configExactConfiguration</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configExactConfiguration">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configExtraFrameworkDirs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configExtraFrameworkDirs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configExtraIncludeDirs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configExtraIncludeDirs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configExtraLibDirs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configExtraLibDirs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configFlagError</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configFlagError">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ConfigFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:ConfigFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:ConfigFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configFlags</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:configFlags">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:configFlags">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">configGHCiLib</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configGHCiLib">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configHcFlavor</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configHcFlavor">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configHcPath</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configHcPath">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configHcPkg</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configHcPkg">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configInstallDirs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configInstallDirs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configInstantiateWith</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configInstantiateWith">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configIPID</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configIPID">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configLibCoverage</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configLibCoverage">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configOptimization</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configOptimization">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configPackageDBs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configPackageDBs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProf</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProf">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProfDetail</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProfDetail">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProfExe</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProfExe">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProfLib</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProfLib">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProfLibDetail</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProfLibDetail">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgPrefix</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgPrefix">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgramPathExtra</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgramPathExtra">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configPrograms</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configPrograms">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configPrograms_</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configPrograms_">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgSuffix</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgSuffix">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configRelocatable</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configRelocatable">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configScratchDir</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configScratchDir">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configSharedLib</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configSharedLib">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configSplitObjs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configSplitObjs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ConfigStateFileBadHeader</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileBadHeader">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileBadVersion</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileBadVersion">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileError</td><td class="module"><a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileMissing</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileMissing">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileNoHeader</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileNoHeader">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileNoParse</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileNoParse">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configStripExes</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configStripExes">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configStripLibs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configStripLibs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configTests</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configTests">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Configure</td><td class="module"><a href="Distribution-Types-BuildType.html#v:Configure">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:Configure">Distribution.PackageDescription</a></td></tr><tr><td class="src">configure</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:configure">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:configure">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:configure">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:configure">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:configure">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:configure">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">7 (Function)</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configure">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configureAllKnownPrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:configureAllKnownPrograms">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:configureAllKnownPrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">configureArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureCCompiler</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureCCompiler">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureComponentLocalBuildInfos</td><td class="module"><a href="Distribution-Backpack-Configure.html#v:configureComponentLocalBuildInfos">Distribution.Backpack.Configure</a></td></tr><tr><td class="src">ConfiguredComponent</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:ConfiguredComponent">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">ConfiguredComponentMap</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">ConfiguredProgram</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">Distribution.Simple.Program</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:ConfiguredProgram">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:ConfiguredProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">configuredPrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:configuredPrograms">Distribution.Simple.Program.Db</a></td></tr><tr><td class="src">configureLinker</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureLinker">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:configureProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:configureProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">configUserInstall</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configUserInstall">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configVanillaLib</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configVanillaLib">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ConfVar</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:ConfVar">Distribution.PackageDescription</a></td></tr><tr><td class="src">const</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">constrainBy</td><td class="module"><a href="Distribution-Types-DependencyMap.html#v:constrainBy">Distribution.Types.DependencyMap</a></td></tr><tr><td class="src">ConstrainedClassMethods</td><td class="module"><a href="Language-Haskell-Extension.html#v:ConstrainedClassMethods">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">ConstraintKinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:ConstraintKinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">copyArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">copyCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">CopyDest</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:CopyDest">Distribution.Simple.InstallDirs</a>, <a href="Distribution-Simple-Setup.html#t:CopyDest">Distribution.Simple.Setup</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">copyDest</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyDest">Distribution.Simple.Setup</a></td></tr><tr><td class="src">copyDirectoryRecursive</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyDirectoryRecursive">Distribution.Simple.Utils</a></td></tr><tr><td class="src">copyDirectoryRecursiveVerbose</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyDirectoryRecursiveVerbose">Distribution.Simple.Utils</a></td></tr><tr><td class="src">copyDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">copyFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">copyFileTo</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyFileTo">Distribution.Simple.Utils</a></td></tr><tr><td class="src">copyFileVerbose</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyFileVerbose">Distribution.Simple.Utils</a></td></tr><tr><td class="src">CopyFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:CopyFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:CopyFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">copyHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:copyHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:copyHook">Distribution.Simple</a></td></tr><tr><td class="src">copyright</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:copyright">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:copyright">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:copyright">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">CopyTo</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:CopyTo">Distribution.Simple.InstallDirs</a>, <a href="Distribution-Simple-Setup.html#v:CopyTo">Distribution.Simple.Setup</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">copyVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">COr</td><td class="module"><a href="Distribution-Types-Condition.html#v:COr">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:COr">Distribution.PackageDescription</a></td></tr><tr><td class="src">cOr</td><td class="module"><a href="Distribution-Types-Condition.html#v:cOr">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:cOr">Distribution.PackageDescription</a></td></tr><tr><td class="src">cos</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">cosh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">count</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:count">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">countTestResults</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:countTestResults">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">coverageSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:coverageSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">CPlusPlus</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:CPlusPlus">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">CPP</td><td class="module"><a href="Language-Haskell-Extension.html#v:CPP">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">cppHeaderName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:cppHeaderName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">cpphsProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:cpphsProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:cpphsProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">cppOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:cppOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:cppOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">cppProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:cppProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:cppProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">createArchive</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:createArchive">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">createArLibArchive</td><td class="module"><a href="Distribution-Simple-Program-Ar.html#v:createArLibArchive">Distribution.Simple.Program.Ar</a></td></tr><tr><td class="src">createDirectoryIfMissingVerbose</td><td class="module"><a href="Distribution-Simple-Utils.html#v:createDirectoryIfMissingVerbose">Distribution.Simple.Utils</a></td></tr><tr><td class="src">createPackageDB</td><td class="module"><a href="Distribution-Simple-Register.html#v:createPackageDB">Distribution.Simple.Register</a></td></tr><tr><td class="src">createPipe</td><td class="module"><a href="Distribution-Compat-CreatePipe.html#v:createPipe">Distribution.Compat.CreatePipe</a></td></tr><tr><td class="src">createProcessWithEnv</td><td class="module"><a href="Distribution-Simple-Utils.html#v:createProcessWithEnv">Distribution.Simple.Utils</a></td></tr><tr><td class="src">cSourceExtensions</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:cSourceExtensions">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">cSources</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:cSources">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:cSources">Distribution.PackageDescription</a></td></tr><tr><td class="src">CSubLibName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CSubLibName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CSubLibName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CSubLibName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CTest</td><td class="module"><a href="Distribution-Types-Component.html#v:CTest">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CTest">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CTestName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CTestName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CTestName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CTestName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">currentDir</td><td class="module"><a href="Distribution-Simple-Utils.html#v:currentDir">Distribution.Simple.Utils</a></td></tr><tr><td class="src">curry</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Custom</td><td class="module"><a href="Distribution-Types-BuildType.html#v:Custom">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:Custom">Distribution.PackageDescription</a></td></tr><tr><td class="src">customFieldsBI</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:customFieldsBI">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:customFieldsBI">Distribution.PackageDescription</a></td></tr><tr><td class="src">customFieldsPD</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:customFieldsPD">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:customFieldsPD">Distribution.PackageDescription</a></td></tr><tr><td class="src">CVS</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:CVS">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:CVS">Distribution.PackageDescription</a></td></tr><tr><td class="src">cycle</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">cycles</td><td class="module"><a href="Distribution-Compat-Graph.html#v:cycles">Distribution.Compat.Graph</a></td></tr><tr><td class="src">CyclicSCC</td><td class="module"><a href="Distribution-Compat-Graph.html#v:CyclicSCC">Distribution.Compat.Graph</a></td></tr><tr><td class="src">Darcs</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Darcs">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Darcs">Distribution.PackageDescription</a></td></tr><tr><td class="src">Data</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Data">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">dataDir</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:dataDir">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:dataDir">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:dataDir">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">datadir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:datadir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DatadirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:DatadirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">dataFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:dataFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:dataFiles">Distribution.PackageDescription</a></td></tr><tr><td class="src">DataKinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:DataKinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">datasubdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:datasubdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DatasubdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:DatasubdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DatatypeContexts</td><td class="module"><a href="Language-Haskell-Extension.html#v:DatatypeContexts">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">dateToSnapshotNumber</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:dateToSnapshotNumber">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">deafening</td><td class="module"><a href="Distribution-Verbosity.html#v:deafening">Distribution.Verbosity</a></td></tr><tr><td class="src">debug</td><td class="module"><a href="Distribution-Simple-Utils.html#v:debug">Distribution.Simple.Utils</a></td></tr><tr><td class="src">DebugInfoLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">debugNoWrap</td><td class="module"><a href="Distribution-Simple-Utils.html#v:debugNoWrap">Distribution.Simple.Utils</a></td></tr><tr><td class="src">decode</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">decodeCompatPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#v:decodeCompatPackageName">Distribution.Types.MungedPackageName</a></td></tr><tr><td class="src">decodeFile</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">decodeFileOrFail</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">decodeFileOrFail'</td><td class="module"><a href="Distribution-Compat-Binary.html#v:decodeFileOrFail-39-">Distribution.Compat.Binary</a></td></tr><tr><td class="src">decodeFloat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">decodeOrFail</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">decodeOrFailIO</td><td class="module"><a href="Distribution-Compat-Binary.html#v:decodeOrFailIO">Distribution.Compat.Binary</a></td></tr><tr><td class="src">decodeStringUtf8</td><td class="module"><a href="Distribution-Utils-ShortText.html#v:decodeStringUtf8">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">defaultBenchmarkFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultBenchmarkFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultBuildFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultBuildFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultCleanFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultCleanFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultCompilerFlavor</td><td class="module"><a href="Distribution-Compiler.html#v:defaultCompilerFlavor">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">defaultComponentRequestedSpec</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:defaultComponentRequestedSpec">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">defaultConfigFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultConfigFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultCopyFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultCopyFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultDistPref">Distribution.Simple.Setup</a>, <a href="Distribution-Simple-BuildPaths.html#v:defaultDistPref">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">defaultDoctestFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultDoctestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:defaultExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:defaultExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">defaultGlobalFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultGlobalFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultHaddockFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultHaddockFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultHookedPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:defaultHookedPackageDesc">Distribution.Simple.Utils</a>, <a href="Distribution-Simple.html#v:defaultHookedPackageDesc">Distribution.Simple</a></td></tr><tr><td class="src">defaultHscolourFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultHscolourFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultIncludeRenaming</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:defaultIncludeRenaming">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">defaultInstallDirs</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:defaultInstallDirs">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">defaultInstallDirs'</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:defaultInstallDirs-39-">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">defaultInstallFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultInstallFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultLanguage</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:defaultLanguage">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:defaultLanguage">Distribution.PackageDescription</a></td></tr><tr><td class="src">defaultLibName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:defaultLibName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:defaultLibName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:defaultLibName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">defaultMain</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Make.html#v:defaultMain">Distribution.Make</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple.html#v:defaultMain">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainArgs</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Make.html#v:defaultMainArgs">Distribution.Make</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainArgs">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainNoRead</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Make.html#v:defaultMainNoRead">Distribution.Make</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainNoRead">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainWithHooks</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainWithHooks">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainWithHooksArgs</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainWithHooksArgs">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainWithHooksNoRead</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainWithHooksNoRead">Distribution.Simple</a></td></tr><tr><td class="src">defaultPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:defaultPackageDesc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">defaultProgramConfiguration</td><td class="module"><a href="Distribution-Simple-Program.html#v:defaultProgramConfiguration">Distribution.Simple.Program</a></td></tr><tr><td class="src">defaultProgramDb</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:defaultProgramDb">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:defaultProgramDb">Distribution.Simple.Program</a></td></tr><tr><td class="src">defaultProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:defaultProgramSearchPath">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program.html#v:defaultProgramSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">defaultRegisterFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultRegisterFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultRegisterOptions</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:defaultRegisterOptions">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:defaultRegisterOptions">Distribution.Simple.Register</a></td></tr><tr><td class="src">DefaultRenaming</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:DefaultRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#v:DefaultRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="src">defaultRenaming</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:defaultRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#v:defaultRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="src">defaultReplFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultReplFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultSDistFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultSDistFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultSetupDepends</td><td class="module"><a href="Distribution-Types-SetupBuildInfo.html#v:defaultSetupDepends">Distribution.Types.SetupBuildInfo</a>, <a href="Distribution-PackageDescription.html#v:defaultSetupDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">DefaultSignatures</td><td class="module"><a href="Language-Haskell-Extension.html#v:DefaultSignatures">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">defaultStyle</td><td class="module"><a href="Distribution-Text.html#v:defaultStyle">Distribution.Text</a></td></tr><tr><td class="src">defaultTempFileOptions</td><td class="module"><a href="Distribution-Simple-Utils.html#v:defaultTempFileOptions">Distribution.Simple.Utils</a></td></tr><tr><td class="src">defaultTestFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultTestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultUserHooks</td><td class="module"><a href="Distribution-Simple.html#v:defaultUserHooks">Distribution.Simple</a></td></tr><tr><td class="src">DefiniteUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:DefiniteUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">DefUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#t:DefUnitId">Distribution.Types.UnitId</a>, <a href="Distribution-Backpack.html#t:DefUnitId">Distribution.Backpack</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">delete</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteAt</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteFindMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteFindMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteInstalledPackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:deleteInstalledPackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">deleteKey</td><td class="module"><a href="Distribution-Compat-Graph.html#v:deleteKey">Distribution.Compat.Graph</a></td></tr><tr><td class="src">deleteLookup</td><td class="module"><a href="Distribution-Compat-Graph.html#v:deleteLookup">Distribution.Compat.Graph</a></td></tr><tr><td class="src">deleteMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deletePackageDB</td><td class="module"><a href="Distribution-Simple-Register.html#v:deletePackageDB">Distribution.Simple.Register</a></td></tr><tr><td class="src">deletePackageName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:deletePackageName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">deleteSourcePackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:deleteSourcePackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">deleteUnitId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:deleteUnitId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">depAbiHash</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:depAbiHash">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">Dependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Dependency.html#t:Dependency">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Dependency.html#v:Dependency">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">dependencyClosure</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:dependencyClosure">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">dependencyCycles</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:dependencyCycles">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">dependencyGraph</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:dependencyGraph">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">dependencyInconsistencies</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:dependencyInconsistencies">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">DependencyMap</td><td class="module"><a href="Distribution-Types-DependencyMap.html#t:DependencyMap">Distribution.Types.DependencyMap</a></td></tr><tr><td class="src">depends</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:depends">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">depLibraryPaths</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:depLibraryPaths">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">depPkgName</td><td class="module"><a href="Distribution-Types-Dependency.html#v:depPkgName">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">deprecatedExtensions</td><td class="module"><a href="Language-Haskell-Extension.html#v:deprecatedExtensions">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">depUnitId</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:depUnitId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">depVerRange</td><td class="module"><a href="Distribution-Types-Dependency.html#v:depVerRange">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">DeriveAnyClass</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveAnyClass">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveDataTypeable</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveDataTypeable">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveFoldable</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveFoldable">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveFunctor</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveFunctor">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveGeneric</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveGeneric">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveLift</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveLift">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveTraversable</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveTraversable">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">descCabalVersion</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:descCabalVersion">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:descCabalVersion">Distribution.PackageDescription</a></td></tr><tr><td class="src">describe</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:describe">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">describeInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:describeInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">Description</td><td class="module"><a href="Distribution-Simple-Command.html#t:Description">Distribution.Simple.Command</a></td></tr><tr><td class="src">description</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:description">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:description">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:description">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">desugarBuildTool</td><td class="module"><a href="Distribution-Simple-BuildToolDepends.html#v:desugarBuildTool">Distribution.Simple.BuildToolDepends</a></td></tr><tr><td class="src">die</td><td class="module"><a href="Distribution-Simple-Utils.html#v:die">Distribution.Simple.Utils</a></td></tr><tr><td class="src">die'</td><td class="module"><a href="Distribution-Simple-Utils.html#v:die-39-">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dieNoVerbosity</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dieNoVerbosity">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dieNoWrap</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dieNoWrap">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dieProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:dieProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">dieWithLocation</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dieWithLocation">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dieWithLocation'</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dieWithLocation-39-">Distribution.Simple.Utils</a></td></tr><tr><td class="src">difference</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">differenceVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:differenceVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">differenceWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">differenceWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Direct</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Direct">Distribution.Simple.Setup</a></td></tr><tr><td class="src">DisabledAllBenchmarks</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:DisabledAllBenchmarks">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">DisabledAllButOne</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:DisabledAllButOne">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">DisabledAllTests</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:DisabledAllTests">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">DisabledComponent</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:DisabledComponent">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">DisableExtension</td><td class="module"><a href="Language-Haskell-Extension.html#v:DisableExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DisambiguateRecordFields</td><td class="module"><a href="Language-Haskell-Extension.html#v:DisambiguateRecordFields">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">disp</td><td class="module"><a href="Distribution-Text.html#v:disp">Distribution.Text</a></td></tr><tr><td class="src">dispComponentsWithDeps</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#v:dispComponentsWithDeps">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">dispConfiguredComponent</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:dispConfiguredComponent">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">dispFlagAssignment</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:dispFlagAssignment">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:dispFlagAssignment">Distribution.PackageDescription</a></td></tr><tr><td class="src">display</td><td class="module"><a href="Distribution-Text.html#v:display">Distribution.Text</a></td></tr><tr><td class="src">displayException</td><td class="module"><a href="Distribution-Compat-Exception.html#v:displayException">Distribution.Compat.Exception</a></td></tr><tr><td class="src">dispLinkedComponent</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:dispLinkedComponent">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">dispOpenModuleSubst</td><td class="module"><a href="Distribution-Backpack.html#v:dispOpenModuleSubst">Distribution.Backpack</a></td></tr><tr><td class="src">dispOpenModuleSubstEntry</td><td class="module"><a href="Distribution-Backpack.html#v:dispOpenModuleSubstEntry">Distribution.Backpack</a></td></tr><tr><td class="src">div</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">divMod</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">DList</td><td class="module"><a href="Distribution-Compat-DList.html#t:DList">Distribution.Compat.DList</a></td></tr><tr><td class="src">dllExtension</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:dllExtension">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">DoAndIfThenElse</td><td class="module"><a href="Language-Haskell-Extension.html#v:DoAndIfThenElse">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">docdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:docdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DocdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:DocdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">doctest</td><td class="module"><a href="Distribution-Simple-Doctest.html#v:doctest">Distribution.Simple.Doctest</a></td></tr><tr><td class="src">doctestCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doctestDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">DoctestFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:DoctestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:DoctestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doctestHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:doctestHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:doctestHook">Distribution.Simple</a></td></tr><tr><td class="src">doctestProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:doctestProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:doctestProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">doctestProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doctestProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doctestVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doesDirectoryExist</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:doesDirectoryExist">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">doesExecutableExist</td><td class="module"><a href="Distribution-Simple-Utils.html#v:doesExecutableExist">Distribution.Simple.Utils</a></td></tr><tr><td class="src">doesFileExist</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:doesFileExist">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">doesPackageDBExist</td><td class="module"><a href="Distribution-Simple-Register.html#v:doesPackageDBExist">Distribution.Simple.Register</a></td></tr><tr><td class="src">DoRec</td><td class="module"><a href="Language-Haskell-Extension.html#v:DoRec">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Double</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">DragonFly</td><td class="module"><a href="Distribution-System.html#v:DragonFly">Distribution.System</a></td></tr><tr><td class="src">drop</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">dropExeExtension</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dropExeExtension">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dropWhile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">dropWhileAntitone</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">dropWhileEndLE</td><td class="module"><a href="Distribution-Utils-Generic.html#v:dropWhileEndLE">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:dropWhileEndLE">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dump</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:dump">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">dumpInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:dumpInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">DuplicateRecordFields</td><td class="module"><a href="Language-Haskell-Extension.html#v:DuplicateRecordFields">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Dyn</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:Dyn">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">dynlibdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:dynlibdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DynlibdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:DynlibdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">EarlierVersion</td><td class="module"><a href="Distribution-Version.html#v:EarlierVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">earlierVersion</td><td class="module"><a href="Distribution-Version.html#v:earlierVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Either</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">either</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">elem</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:elem">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">elemAt</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">elems</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">empty</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:empty">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:empty">Distribution.Compat.Graph</a></td></tr><tr><td class="src">emptyBenchmark</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:emptyBenchmark">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:emptyBenchmark">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyBenchmarkFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyBenchmarkFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyBuildFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyBuildFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyBuildInfo</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:emptyBuildInfo">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:emptyBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">EmptyCase</td><td class="module"><a href="Language-Haskell-Extension.html#v:EmptyCase">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">emptyCleanFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyCleanFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyConfigFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyConfigFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyCopyFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyCopyFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">EmptyDataDecls</td><td class="module"><a href="Language-Haskell-Extension.html#v:EmptyDataDecls">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">emptyDoctestFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyDoctestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyExecutable</td><td class="module"><a href="Distribution-Types-Executable.html#v:emptyExecutable">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:emptyExecutable">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyFlag</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:emptyFlag">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:emptyFlag">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyForeignLib</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:emptyForeignLib">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">emptyGlobalFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyGlobalFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyHaddockFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyHaddockFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyHookedBuildInfo</td><td class="module"><a href="Distribution-Types-HookedBuildInfo.html#v:emptyHookedBuildInfo">Distribution.Types.HookedBuildInfo</a>, <a href="Distribution-PackageDescription.html#v:emptyHookedBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyHscolourFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyHscolourFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyInstalledPackageInfo</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:emptyInstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">emptyInstallFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyInstallFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyLibrary</td><td class="module"><a href="Distribution-Types-Library.html#v:emptyLibrary">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:emptyLibrary">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyModuleShape</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:emptyModuleShape">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">emptyPackageDescription</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:emptyPackageDescription">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:emptyPackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyProgramConfiguration</td><td class="module"><a href="Distribution-Simple-Program.html#v:emptyProgramConfiguration">Distribution.Simple.Program</a></td></tr><tr><td class="src">emptyProgramDb</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:emptyProgramDb">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:emptyProgramDb">Distribution.Simple.Program</a></td></tr><tr><td class="src">emptyProgramInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:emptyProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:emptyProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">emptyRegisterFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyRegisterFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptySDistFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptySDistFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptySourceRepo</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:emptySourceRepo">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:emptySourceRepo">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyTestFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyTestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyTestSuite</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:emptyTestSuite">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:emptyTestSuite">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyUserHooks</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:emptyUserHooks">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:emptyUserHooks">Distribution.Simple</a></td></tr><tr><td class="src">enabledBenchLBIs</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:enabledBenchLBIs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">enabledBuildInfos</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:enabledBuildInfos">Distribution.Types.PackageDescription</a></td></tr><tr><td class="src">enabledComponents</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:enabledComponents">Distribution.Types.PackageDescription</a></td></tr><tr><td class="src">enabledTestLBIs</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:enabledTestLBIs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">EnableExtension</td><td class="module"><a href="Language-Haskell-Extension.html#v:EnableExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">encode</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">encodeFile</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">encodeFloat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">encodeStringUtf8</td><td class="module"><a href="Distribution-Utils-ShortText.html#v:encodeStringUtf8">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">endBy</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:endBy">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">endBy1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:endBy1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">Enum</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">enumFrom</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">enumFromThen</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">enumFromThenTo</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">enumFromTo</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">eof</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:eof">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">EQ</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Eq</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">equating</td><td class="module"><a href="Distribution-Utils-Generic.html#v:equating">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:equating">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Error</td><td class="module"><a href="Distribution-TestSuite.html#v:Error">Distribution.TestSuite</a></td></tr><tr><td class="src">error</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">errorWithoutStackTrace</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">even</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ExclusiveBound</td><td class="module"><a href="Distribution-Version.html#v:ExclusiveBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">exeBuildDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:exeBuildDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">ExeComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:ExeComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:ExeComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">exeCoverage</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:exeCoverage">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:exeCoverage">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">Executable</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Executable.html#t:Executable">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#t:Executable">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Executable.html#v:Executable">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:Executable">Distribution.PackageDescription</a></td></tr><tr><td class="src">executableFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:executableFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">ExecutableNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:ExecutableNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">ExecutablePrivate</td><td class="module"><a href="Distribution-Types-ExecutableScope.html#v:ExecutablePrivate">Distribution.Types.ExecutableScope</a></td></tr><tr><td class="src">ExecutablePublic</td><td class="module"><a href="Distribution-Types-ExecutableScope.html#v:ExecutablePublic">Distribution.Types.ExecutableScope</a></td></tr><tr><td class="src">executables</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:executables">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:executables">Distribution.PackageDescription</a></td></tr><tr><td class="src">ExecutableScope</td><td class="module"><a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">Distribution.Types.ExecutableScope</a></td></tr><tr><td class="src">ExecutableScopeUnknown</td><td class="module"><a href="Distribution-Types-ExecutableScope.html#v:ExecutableScopeUnknown">Distribution.Types.ExecutableScope</a></td></tr><tr><td class="src">ExeDependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ExeDependency.html#t:ExeDependency">Distribution.Types.ExeDependency</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ExeDependency.html#v:ExeDependency">Distribution.Types.ExeDependency</a></td></tr><tr><td class="src">exeExtension</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:exeExtension">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">exeExtensions</td><td class="module"><a href="Distribution-Simple-Utils.html#v:exeExtensions">Distribution.Simple.Utils</a></td></tr><tr><td class="src">exeModules</td><td class="module"><a href="Distribution-Types-Executable.html#v:exeModules">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:exeModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">exeModulesAutogen</td><td class="module"><a href="Distribution-Types-Executable.html#v:exeModulesAutogen">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:exeModulesAutogen">Distribution.PackageDescription</a></td></tr><tr><td class="src">exeName</td><td class="module"><a href="Distribution-Types-Executable.html#v:exeName">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:exeName">Distribution.PackageDescription</a></td></tr><tr><td class="src">exeScope</td><td class="module"><a href="Distribution-Types-Executable.html#v:exeScope">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:exeScope">Distribution.PackageDescription</a></td></tr><tr><td class="src">ExistentialQuantification</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExistentialQuantification">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">existsAndIsMoreRecentThan</td><td class="module"><a href="Distribution-Simple-Utils.html#v:existsAndIsMoreRecentThan">Distribution.Simple.Utils</a></td></tr><tr><td class="src">exp</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">expandOpenUnitId</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#v:expandOpenUnitId">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="src">expandUnitId</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#v:expandUnitId">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="src">explanation</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:explanation">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">ExplicitForAll</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExplicitForAll">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">explicitLibModules</td><td class="module"><a href="Distribution-Types-Library.html#v:explicitLibModules">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:explicitLibModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">ExplicitNamespaces</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExplicitNamespaces">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">exponent</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">expose</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:expose">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">exposed</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:exposed">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">ExposedModule</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ExposedModule">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">exposedModules</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-Library.html#v:exposedModules">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:exposedModules">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:exposedModules">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">exposedName</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:exposedName">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">exposedReexport</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:exposedReexport">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">exposeInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:exposeInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">extendConfiguredComponentMap</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:extendConfiguredComponentMap">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">ExtendedDefaultRules</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExtendedDefaultRules">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">extendLinkedComponentMap</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:extendLinkedComponentMap">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">ExtensibleRecords</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExtensibleRecords">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Extension</td><td class="module"><a href="Language-Haskell-Extension.html#t:Extension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">extensionsToFlags</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:extensionsToFlags">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">externalPackageDeps</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:externalPackageDeps">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:externalPackageDeps">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">extraConfigArgs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:extraConfigArgs">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:extraConfigArgs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">extractCondition</td><td class="module"><a href="Distribution-Types-CondTree.html#v:extractCondition">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:extractCondition">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">extractConditions</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:extractConditions">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">extraDocFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:extraDocFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:extraDocFiles">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraFrameworkDirs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:extraFrameworkDirs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:extraFrameworkDirs">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraGHCiLibraries</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:extraGHCiLibraries">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">extraGHCiLibs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:extraGHCiLibs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:extraGHCiLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraLibDirs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:extraLibDirs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:extraLibDirs">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraLibraries</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:extraLibraries">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">extraLibs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:extraLibs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:extraLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">ExtraOptions</td><td class="module"><a href="Distribution-TestSuite.html#v:ExtraOptions">Distribution.TestSuite</a></td></tr><tr><td class="src">extraSrcFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:extraSrcFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:extraSrcFiles">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraTmpFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:extraTmpFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:extraTmpFiles">Distribution.PackageDescription</a></td></tr><tr><td class="src">Fail</td><td class="module"><a href="Distribution-TestSuite.html#v:Fail">Distribution.TestSuite</a></td></tr><tr><td class="src">fail</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">failProgress</td><td class="module"><a href="Distribution-Utils-Progress.html#v:failProgress">Distribution.Utils.Progress</a></td></tr><tr><td class="src">failReadE</td><td class="module"><a href="Distribution-ReadE.html#v:failReadE">Distribution.ReadE</a></td></tr><tr><td class="src">Failures</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Failures">Distribution.Simple.Setup</a></td></tr><tr><td class="src">False</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">falseArg</td><td class="module"><a href="Distribution-Simple-Setup.html#v:falseArg">Distribution.Simple.Setup</a></td></tr><tr><td class="src">FieldDescr</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:FieldDescr">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">fieldGet</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:fieldGet">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">fieldName</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:fieldName">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">fieldSet</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:fieldSet">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">fieldsInstalledPackageInfo</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:fieldsInstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">FileGlob</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Utils.html#t:FileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Utils.html#v:FileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">fileHasBOM</td><td class="module"><a href="Distribution-Utils-Generic.html#v:fileHasBOM">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:fileHasBOM">Distribution.Simple.Utils</a></td></tr><tr><td class="src">filenameCDialect</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:filenameCDialect">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">FilePath</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">filter</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">filterM</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:filterM">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">filterWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">finalizePackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:finalizePackageDescription">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">finalizePD</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:finalizePD">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">find</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:find">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">findAllFilesWithExtension</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findAllFilesWithExtension">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findDistPref</td><td class="module"><a href="Distribution-Simple-Configure.html#v:findDistPref">Distribution.Simple.Configure</a></td></tr><tr><td class="src">findDistPrefOrDefault</td><td class="module"><a href="Distribution-Simple-Configure.html#v:findDistPrefOrDefault">Distribution.Simple.Configure</a></td></tr><tr><td class="src">findFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findFileWithExtension</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findFileWithExtension">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findFileWithExtension'</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findFileWithExtension-39-">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findFirstFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findFirstFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findHookedPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findHookedPackageDesc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findIndex</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">findMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">findMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">findModuleFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findModuleFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findModuleFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findModuleFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findPackageDesc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findProgramLocation</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findProgramLocation">Distribution.Simple.Utils</a>, <a href="Distribution-Simple-Program.html#v:findProgramLocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">findProgramOnPath</td><td class="module"><a href="Distribution-Simple-Program.html#v:findProgramOnPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">findProgramOnSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:findProgramOnSearchPath">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program.html#v:findProgramOnSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">findProgramVersion</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findProgramVersion">Distribution.Simple.Utils</a>, <a href="Distribution-Simple-Program.html#v:findProgramVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">findWithDefault</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Finished</td><td class="module"><a href="Distribution-TestSuite.html#v:Finished">Distribution.TestSuite</a></td></tr><tr><td class="src">first</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:first">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Flag</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:Flag">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:Flag">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Type/Class)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:Flag">Distribution.PackageDescription</a></td></tr><tr><td class="alt">3 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:Flag">Distribution.Simple.Compiler</a></td></tr><tr><td class="alt">4 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:Flag">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">5 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Flag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">FlagAssignment</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:FlagAssignment">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagAssignment</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:flagAssignment">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:flagAssignment">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">flagDebugInfo</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagDebugInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flagDefault</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:flagDefault">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:flagDefault">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagDescription</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:flagDescription">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:flagDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:flagFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">flagGhciScript</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagGhciScript">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flagManual</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:flagManual">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:flagManual">Distribution.PackageDescription</a></td></tr><tr><td class="src">FlagName</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:FlagName">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagName</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:flagName">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:flagName">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagPackageConf</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:flagPackageConf">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagPackageConf">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flagProfAuto</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagProfAuto">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flagToDebugInfoLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:flagToDebugInfoLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">flagToList</td><td class="module"><a href="Distribution-Simple-Setup.html#v:flagToList">Distribution.Simple.Setup</a></td></tr><tr><td class="src">flagToMaybe</td><td class="module"><a href="Distribution-Simple-Setup.html#v:flagToMaybe">Distribution.Simple.Setup</a></td></tr><tr><td class="src">flagToOptimisationLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:flagToOptimisationLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">flagToProfDetailLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:flagToProfDetailLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">flagToVerbosity</td><td class="module"><a href="Distribution-Verbosity.html#v:flagToVerbosity">Distribution.Verbosity</a></td></tr><tr><td class="src">flagWarnMissingHomeModules</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagWarnMissingHomeModules">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flatStyle</td><td class="module"><a href="Distribution-Text.html#v:flatStyle">Distribution.Text</a></td></tr><tr><td class="src">flattenPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:flattenPackageDescription">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">FlexibleContexts</td><td class="module"><a href="Language-Haskell-Extension.html#v:FlexibleContexts">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">FlexibleInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:FlexibleInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">flibBuildDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:flibBuildDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">FLibComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:FLibComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:FLibComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">flibdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:flibdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">flip</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Float</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">floatDigits</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Floating</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">floatRadix</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">floatRange</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">floor</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fmap</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Foldable</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Foldable">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldComponent</td><td class="module"><a href="Distribution-Types-Component.html#v:foldComponent">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:foldComponent">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">foldl</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldl">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldl'</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldl-39-">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldl1</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldl1">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldlWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldlWithKey'</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldM</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldM">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldMap</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldMap">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldMapWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldProgress</td><td class="module"><a href="Distribution-Utils-Progress.html#v:foldProgress">Distribution.Utils.Progress</a></td></tr><tr><td class="src">foldr</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldr">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldr'</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldr1</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldr1">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldrWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldrWithKey'</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldVersionRange</td><td class="module"><a href="Distribution-Version.html#v:foldVersionRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">foldVersionRange'</td><td class="module"><a href="Distribution-Version.html#v:foldVersionRange-39-">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">for</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:for">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">ForDevelopment</td><td class="module"><a href="Distribution-Simple-Setup.html#v:ForDevelopment">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ForeignFunctionInterface</td><td class="module"><a href="Language-Haskell-Extension.html#v:ForeignFunctionInterface">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">ForeignLib</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ForeignLib.html#t:ForeignLib">Distribution.Types.ForeignLib</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:ForeignLib">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibBuildInfo</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibBuildInfo">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:foreignLibFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">foreignLibIsShared</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibIsShared">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibModDefFile</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibModDefFile">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibModules</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibModules">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibName</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibName">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">ForeignLibNativeShared</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:ForeignLibNativeShared">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">ForeignLibNativeStatic</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:ForeignLibNativeStatic">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">ForeignLibOption</td><td class="module"><a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">Distribution.Types.ForeignLibOption</a></td></tr><tr><td class="src">foreignLibOptions</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibOptions">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibs</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:foreignLibs">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:foreignLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">ForeignLibStandalone</td><td class="module"><a href="Distribution-Types-ForeignLibOption.html#v:ForeignLibStandalone">Distribution.Types.ForeignLibOption</a></td></tr><tr><td class="src">ForeignLibType</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">foreignLibType</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibType">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibTypeIsShared</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:foreignLibTypeIsShared">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">ForeignLibTypeUnknown</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:ForeignLibTypeUnknown">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">foreignLibVersion</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibVersion">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibVersionInfo</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibVersionInfo">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibVersionLinux</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibVersionLinux">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">ForHackage</td><td class="module"><a href="Distribution-Simple-Setup.html#v:ForHackage">Distribution.Simple.Setup</a></td></tr><tr><td class="src">for_</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:for_">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">FoundOnSystem</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:FoundOnSystem">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:FoundOnSystem">Distribution.Simple.Program</a></td></tr><tr><td class="src">Fractional</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">frameworkDirs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:frameworkDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">frameworks</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:frameworks">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:frameworks">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:frameworks">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">FreeBSD</td><td class="module"><a href="Distribution-System.html#v:FreeBSD">Distribution.System</a></td></tr><tr><td class="src">freeVars</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:freeVars">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">fromAscList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromAscListWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromAscListWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromComponents</td><td class="module"><a href="Distribution-ModuleName.html#v:fromComponents">Distribution.ModuleName</a></td></tr><tr><td class="src">fromDepMap</td><td class="module"><a href="Distribution-Types-DependencyMap.html#v:fromDepMap">Distribution.Types.DependencyMap</a></td></tr><tr><td class="src">fromDescList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDescListWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDescListWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDistinctAscList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDistinctDescList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDistinctList</td><td class="module"><a href="Distribution-Compat-Graph.html#v:fromDistinctList">Distribution.Compat.Graph</a></td></tr><tr><td class="src">fromEnum</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fromFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#v:fromFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">fromFlagOrDefault</td><td class="module"><a href="Distribution-Simple-Setup.html#v:fromFlagOrDefault">Distribution.Simple.Setup</a></td></tr><tr><td class="src">fromInteger</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fromIntegral</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fromList</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:fromList">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">fromListWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromListWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromMaybe</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:fromMaybe">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">fromNubList</td><td class="module"><a href="Distribution-Utils-NubList.html#v:fromNubList">Distribution.Utils.NubList</a></td></tr><tr><td class="src">fromNubListR</td><td class="module"><a href="Distribution-Utils-NubList.html#v:fromNubListR">Distribution.Utils.NubList</a></td></tr><tr><td class="src">fromPathTemplate</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:fromPathTemplate">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">fromRational</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fromSet</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromShortText</td><td class="module"><a href="Distribution-Utils-ShortText.html#v:fromShortText">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">FromString</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:FromString">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">fromString</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:fromString">Distribution.Compat.Prelude.Internal</a>, <a href="Distribution-ModuleName.html#v:fromString">Distribution.ModuleName</a></td></tr><tr><td class="src">fromUTF8</td><td class="module"><a href="Distribution-Utils-Generic.html#v:fromUTF8">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:fromUTF8">Distribution.Simple.Utils</a></td></tr><tr><td class="src">fromUTF8BS</td><td class="module"><a href="Distribution-Utils-Generic.html#v:fromUTF8BS">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:fromUTF8BS">Distribution.Simple.Utils</a></td></tr><tr><td class="src">fromUTF8LBS</td><td class="module"><a href="Distribution-Utils-Generic.html#v:fromUTF8LBS">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:fromUTF8LBS">Distribution.Simple.Utils</a></td></tr><tr><td class="src">fromVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:fromVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">fst</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">FullDb</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#t:FullDb">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="src">FullUnitId</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#v:FullUnitId">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="src">FunctionalDependencies</td><td class="module"><a href="Language-Haskell-Extension.html#v:FunctionalDependencies">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Functor</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">GADTs</td><td class="module"><a href="Language-Haskell-Extension.html#v:GADTs">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">GADTSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:GADTSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">gather</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:gather">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">GBinaryGet</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">GBinaryPut</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">gccProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:gccProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:gccProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">gcd</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">generalInstalledPackageInfo</td><td class="module"><a href="Distribution-Simple-Register.html#v:generalInstalledPackageInfo">Distribution.Simple.Register</a></td></tr><tr><td class="src">GeneralizedNewtypeDeriving</td><td class="module"><a href="Language-Haskell-Extension.html#v:GeneralizedNewtypeDeriving">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">generate</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Build-Macros.html#v:generate">Distribution.Simple.Build.Macros</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Build-PathsModule.html#v:generate">Distribution.Simple.Build.PathsModule</a></td></tr><tr><td class="src">generatePackageVersionMacros</td><td class="module"><a href="Distribution-Simple-Build-Macros.html#v:generatePackageVersionMacros">Distribution.Simple.Build.Macros</a></td></tr><tr><td class="src">generateRegistrationInfo</td><td class="module"><a href="Distribution-Simple-Register.html#v:generateRegistrationInfo">Distribution.Simple.Register</a></td></tr><tr><td class="src">Generic</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">GenericPackageDescription</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:GenericPackageDescription">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:GenericPackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">genericRnf</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:genericRnf">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Generics</td><td class="module"><a href="Language-Haskell-Extension.html#v:Generics">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">genPackageFlags</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:genPackageFlags">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:genPackageFlags">Distribution.PackageDescription</a></td></tr><tr><td class="src">Get</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">get</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#v:get">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:get">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">getAll</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:getAll">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">getAllInternalToolDependencies</td><td class="module"><a href="Distribution-Simple-BuildToolDepends.html#v:getAllInternalToolDependencies">Distribution.Simple.BuildToolDepends</a></td></tr><tr><td class="src">getAllToolDependencies</td><td class="module"><a href="Distribution-Simple-BuildToolDepends.html#v:getAllToolDependencies">Distribution.Simple.BuildToolDepends</a></td></tr><tr><td class="src">getAny</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:getAny">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">getChar</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">getCompilerVersion</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:getCompilerVersion">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">getComponent</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:getComponent">Distribution.Types.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:getComponent">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">getComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:getComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">getConfigStateFile</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getConfigStateFile">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getContents</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">getCurTime</td><td class="module"><a href="Distribution-Compat-Time.html#v:getCurTime">Distribution.Compat.Time</a></td></tr><tr><td class="src">getDbProgramOutput</td><td class="module"><a href="Distribution-Simple-Program.html#v:getDbProgramOutput">Distribution.Simple.Program</a></td></tr><tr><td class="src">getDirectoryContents</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:getDirectoryContents">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">getDirectoryContentsRecursive</td><td class="module"><a href="Distribution-Simple-Utils.html#v:getDirectoryContentsRecursive">Distribution.Simple.Utils</a></td></tr><tr><td class="src">getEffectiveEnvironment</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:getEffectiveEnvironment">Distribution.Simple.Program.Run</a></td></tr><tr><td class="src">getExeSourceFiles</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:getExeSourceFiles">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">getExtensions</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:getExtensions">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">getFileAge</td><td class="module"><a href="Distribution-Compat-Time.html#v:getFileAge">Distribution.Compat.Time</a></td></tr><tr><td class="src">getFileContents</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:getFileContents">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">getFLibSourceFiles</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:getFLibSourceFiles">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">getGhcInfo</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getGhcInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">getGlobalPackageDB</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:getGlobalPackageDB">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getGlobalPackageDB">Distribution.Simple.GHC</a></td></tr><tr><td class="src">getHSLibraryName</td><td class="module"><a href="Distribution-Types-UnitId.html#v:getHSLibraryName">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">getImplInfo</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getImplInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">getInstalledPackages</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:getInstalledPackages">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:getInstalledPackages">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:getInstalledPackages">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:getInstalledPackages">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:getInstalledPackages">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getInstalledPackages">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">7 (Function)</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getInstalledPackages">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getInstalledPackagesMonitorFiles</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getInstalledPackagesMonitorFiles">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getInstalledPackagesMonitorFiles">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getInternalPackages</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getInternalPackages">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getLanguages</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:getLanguages">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">getLast'</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:getLast-39-">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">getLibDir</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:getLibDir">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getLibDir">Distribution.Simple.GHC</a></td></tr><tr><td class="src">getLibSourceFiles</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:getLibSourceFiles">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">getLine</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">getModTime</td><td class="module"><a href="Distribution-Compat-Time.html#v:getModTime">Distribution.Compat.Time</a></td></tr><tr><td class="src">getNormalCommandDescriptions</td><td class="module"><a href="Distribution-Simple-Command.html#v:getNormalCommandDescriptions">Distribution.Simple.Command</a></td></tr><tr><td class="src">getPackageDBContents</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:getPackageDBContents">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getPackageDBContents">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getPackageDBContents">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getPersistBuildConfig</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getPersistBuildConfig">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getProgramInvocationOutput</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:getProgramInvocationOutput">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:getProgramInvocationOutput">Distribution.Simple.Program</a></td></tr><tr><td class="src">getProgramOutput</td><td class="module"><a href="Distribution-Simple-Program.html#v:getProgramOutput">Distribution.Simple.Program</a></td></tr><tr><td class="src">getProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:getProgramSearchPath">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:getProgramSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">getSourceFiles</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:getSourceFiles">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">getSystemSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:getSystemSearchPath">Distribution.Simple.Program.Find</a></td></tr><tr><td class="src">getWord8</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">gget</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">GHC</td><td class="module"><a href="Distribution-Compiler.html#v:GHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">GhcDynamicOnly</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcDynamicOnly">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcDynLinkMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcEnvFileClearPackageDbStack</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcEnvFileClearPackageDbStack">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GhcEnvFileComment</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcEnvFileComment">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GhcEnvFilePackageDb</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcEnvFilePackageDb">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GhcEnvFilePackageId</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcEnvFilePackageId">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GhcEnvironmentFileEntry</td><td class="module"><a href="Distribution-Simple-GHC.html#t:GhcEnvironmentFileEntry">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GHCForeignImportPrim</td><td class="module"><a href="Language-Haskell-Extension.html#v:GHCForeignImportPrim">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">GhcImplInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-GHC.html#t:GhcImplInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcImplInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">ghcInvocation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcInvocation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GHCJS</td><td class="module"><a href="Distribution-Compiler.html#v:GHCJS">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">Ghcjs</td><td class="module"><a href="Distribution-System.html#v:Ghcjs">Distribution.System</a></td></tr><tr><td class="src">ghcjsPkgProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ghcjsPkgProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ghcjsPkgProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">ghcjsProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ghcjsProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ghcjsProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">GhcMaximumOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcMaximumOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeAbiHash</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeAbiHash">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeCompile</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeCompile">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeInteractive</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeInteractive">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeLink</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeLink">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeMake</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeMake">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcNoOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcNoOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcNormalOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcNormalOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCabal</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCabal">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCcOptions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCcOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCppIncludePath</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCppIncludePath">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCppIncludes</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCppIncludes">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCppOptions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCppOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDebugInfo</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDebugInfo">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDylibName</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDylibName">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDynHiSuffix</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDynHiSuffix">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDynLinkMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDynLinkMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDynObjSuffix</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDynObjSuffix">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtensionMap</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtensionMap">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtensions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtensions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtra</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtra">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtraDefault</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtraDefault">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtraPath</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtraPath">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptFfiIncludes</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptFfiIncludes">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptFPic</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptFPic">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptGHCiScripts</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptGHCiScripts">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptHideAllPackages</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptHideAllPackages">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptHiDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptHiDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptHiSuffix</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptHiSuffix">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptHPCDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptHPCDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptInputFiles</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptInputFiles">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptInputModules</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptInputModules">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptInstantiatedWith</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptInstantiatedWith">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcOptions</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptions</td><td class="module"><a href="Distribution-Simple-LHC.html#v:ghcOptions">Distribution.Simple.LHC</a></td></tr><tr><td class="src">ghcOptLanguage</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLanguage">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkFrameworkDirs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkFrameworkDirs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkFrameworks</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkFrameworks">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkLibPath</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkLibPath">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkLibs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkLibs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkModDefFiles</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkModDefFiles">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkNoHsMain</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkNoHsMain">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkOptions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptNoAutoLinkPackages</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptNoAutoLinkPackages">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptNoCode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptNoCode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptNoLink</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptNoLink">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptNumJobs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptNumJobs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptObjDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptObjDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptObjSuffix</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptObjSuffix">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptOutputDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptOutputDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptOutputDynFile</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptOutputDynFile">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptOutputFile</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptOutputFile">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptPackageDBs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptPackageDBs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptPackages</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptPackages">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptProfilingAuto</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptProfilingAuto">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptProfilingMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptProfilingMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptRPaths</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptRPaths">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptShared</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptShared">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptSourcePath</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptSourcePath">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptSourcePathClear</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptSourcePathClear">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptSplitObjs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptSplitObjs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptStaticLib</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptStaticLib">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptStubDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptStubDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptThisComponentId</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptThisComponentId">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptThisUnitId</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptThisUnitId">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptVerbosity</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptVerbosity">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptWarnMissingHomeModules</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptWarnMissingHomeModules">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcPkgProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ghcPkgProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ghcPkgProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">GhcProfAuto</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcProfAutoAll</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcProfAutoAll">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcProfAutoExported</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcProfAutoExported">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcProfAutoToplevel</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcProfAutoToplevel">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ghcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ghcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">GhcSpecialOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcSpecialOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcStaticAndDynamic</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticAndDynamic">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcStaticOnly</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticOnly">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcVerbosityOptions</td><td class="module"><a href="Distribution-Simple-LHC.html#v:ghcVerbosityOptions">Distribution.Simple.LHC</a></td></tr><tr><td class="src">Git</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Git">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Git">Distribution.PackageDescription</a></td></tr><tr><td class="src">globalCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:globalCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">GlobalFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:GlobalFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:GlobalFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">globalNumericVersion</td><td class="module"><a href="Distribution-Simple-Setup.html#v:globalNumericVersion">Distribution.Simple.Setup</a></td></tr><tr><td class="src">GlobalPackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:GlobalPackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">globalVersion</td><td class="module"><a href="Distribution-Simple-Setup.html#v:globalVersion">Distribution.Simple.Setup</a></td></tr><tr><td class="src">gmappend</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:gmappend">Distribution.Compat.Semigroup</a>, <a href="Distribution-Compat-Prelude-Internal.html#v:gmappend">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">gmempty</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:gmempty">Distribution.Compat.Semigroup</a>, <a href="Distribution-Compat-Prelude-Internal.html#v:gmempty">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">GnuArch</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:GnuArch">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:GnuArch">Distribution.PackageDescription</a></td></tr><tr><td class="src">GPL</td><td class="module"><a href="Distribution-License.html#v:GPL">Distribution.License</a>, <a href="Distribution-Make.html#v:GPL">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">gput</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">Graph</td><td class="module"><a href="Distribution-Compat-Graph.html#t:Graph">Distribution.Compat.Graph</a></td></tr><tr><td class="src">greencardProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:greencardProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:greencardProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">Group</td><td class="module"><a href="Distribution-TestSuite.html#v:Group">Distribution.TestSuite</a></td></tr><tr><td class="src">GroupLogs</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:GroupLogs">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">groupName</td><td class="module"><a href="Distribution-TestSuite.html#v:groupName">Distribution.TestSuite</a></td></tr><tr><td class="src">groupTests</td><td class="module"><a href="Distribution-TestSuite.html#v:groupTests">Distribution.TestSuite</a></td></tr><tr><td class="src">GT</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">guessWay</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:guessWay">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">haddock</td><td class="module"><a href="Distribution-Simple-Haddock.html#v:haddock">Distribution.Simple.Haddock</a></td></tr><tr><td class="src">haddockBenchmarks</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockBenchmarks">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockContents</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockContents">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockCss</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockCss">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:haddockdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">haddockDirName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:haddockDirName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">haddockDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockExecutables</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockExecutables">Distribution.Simple.Setup</a></td></tr><tr><td class="src">HaddockFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:HaddockFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:HaddockFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockForeignLibs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockForeignLibs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockForHackage</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockForHackage">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHoogle</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHoogle">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:haddockHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:haddockHook">Distribution.Simple</a></td></tr><tr><td class="src">haddockHscolour</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHscolour">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHscolourCss</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHscolourCss">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHtml</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHtml">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHtmlLocation</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHtmlLocation">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHTMLs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:haddockHTMLs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">haddockInterfaces</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:haddockInterfaces">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">haddockInternal</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockInternal">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockKeepTempFiles</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockKeepTempFiles">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:haddockName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">haddockOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockPackagePaths</td><td class="module"><a href="Distribution-Simple-Haddock.html#v:haddockPackagePaths">Distribution.Simple.Haddock</a></td></tr><tr><td class="src">haddockPref</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:haddockPref">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">haddockProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:haddockProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:haddockProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">haddockProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">HaddockTarget</td><td class="module"><a href="Distribution-Simple-Setup.html#t:HaddockTarget">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockTestSuites</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockTestSuites">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">HaLVM</td><td class="module"><a href="Distribution-System.html#v:HaLVM">Distribution.System</a></td></tr><tr><td class="src">handleDoesNotExist</td><td class="module"><a href="Distribution-Simple-Utils.html#v:handleDoesNotExist">Distribution.Simple.Utils</a></td></tr><tr><td class="src">happyProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:happyProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:happyProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">hasBenchmarks</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasBenchmarks">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasBenchmarks">Distribution.PackageDescription</a></td></tr><tr><td class="src">hasExes</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasExes">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasExes">Distribution.PackageDescription</a></td></tr><tr><td class="src">hasForeignLibs</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasForeignLibs">Distribution.Types.PackageDescription</a></td></tr><tr><td class="src">hashModuleSubst</td><td class="module"><a href="Distribution-Backpack.html#v:hashModuleSubst">Distribution.Backpack</a></td></tr><tr><td class="src">Haskell2010</td><td class="module"><a href="Language-Haskell-Extension.html#v:Haskell2010">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Haskell98</td><td class="module"><a href="Language-Haskell-Extension.html#v:Haskell98">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">HaskellSuite</td><td class="module"><a href="Distribution-Compiler.html#v:HaskellSuite">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">haskellSuitePkgProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:haskellSuitePkgProgram">Distribution.Simple.Program.Builtin</a></td></tr><tr><td class="src">haskellSuiteProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:haskellSuiteProgram">Distribution.Simple.Program.Builtin</a></td></tr><tr><td class="src">hasLibs</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasLibs">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">hasLowerBound</td><td class="module"><a href="Distribution-Version.html#v:hasLowerBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">HasMungedPackageId</td><td class="module"><a href="Distribution-Package.html#t:HasMungedPackageId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">hasPublicLib</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasPublicLib">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasPublicLib">Distribution.PackageDescription</a></td></tr><tr><td class="src">hasTests</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasTests">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasTests">Distribution.PackageDescription</a></td></tr><tr><td class="src">HasUnitId</td><td class="module"><a href="Distribution-Package.html#t:HasUnitId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">hasUpperBound</td><td class="module"><a href="Distribution-Version.html#v:hasUpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">HBC</td><td class="module"><a href="Distribution-Compiler.html#v:HBC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">hcOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:hcOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:hcOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">HcPkgInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:HcPkgInfo">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">hcPkgInfo</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:hcPkgInfo">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:hcPkgInfo">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:hcPkgInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">hcPkgProgram</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:hcPkgProgram">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">hcProfOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:hcProfOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:hcProfOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">hcSharedOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:hcSharedOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:hcSharedOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">head</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Helium</td><td class="module"><a href="Distribution-Compiler.html#v:Helium">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">helpCommandUI</td><td class="module"><a href="Distribution-Simple-Command.html#v:helpCommandUI">Distribution.Simple.Command</a></td></tr><tr><td class="src">HereDocuments</td><td class="module"><a href="Language-Haskell-Extension.html#v:HereDocuments">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">HiddenCommand</td><td class="module"><a href="Distribution-Simple-Command.html#v:HiddenCommand">Distribution.Simple.Command</a></td></tr><tr><td class="src">hiddenCommand</td><td class="module"><a href="Distribution-Simple-Command.html#v:hiddenCommand">Distribution.Simple.Command</a></td></tr><tr><td class="src">hiddenModules</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:hiddenModules">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">hide</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:hide">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">hideInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:hideInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">HidingRenaming</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:HidingRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#v:HidingRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="src">hmakeProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:hmakeProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:hmakeProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">homepage</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:homepage">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:homepage">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:homepage">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">HookedBuildInfo</td><td class="module"><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">Distribution.Types.HookedBuildInfo</a>, <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">hookedPreProcessors</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:hookedPreProcessors">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:hookedPreProcessors">Distribution.Simple</a></td></tr><tr><td class="src">hookedPrograms</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:hookedPrograms">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:hookedPrograms">Distribution.Simple</a></td></tr><tr><td class="src">hostPlatform</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:hostPlatform">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:hostPlatform">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">hpcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:hpcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:hpcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">Hppa</td><td class="module"><a href="Distribution-System.html#v:Hppa">Distribution.System</a></td></tr><tr><td class="src">HPUX</td><td class="module"><a href="Distribution-System.html#v:HPUX">Distribution.System</a></td></tr><tr><td class="src">hsc2hsProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:hsc2hsProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:hsc2hsProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">hscolour</td><td class="module"><a href="Distribution-Simple-Haddock.html#v:hscolour">Distribution.Simple.Haddock</a></td></tr><tr><td class="src">hscolourBenchmarks</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourBenchmarks">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourCSS</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourCSS">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourExecutables</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourExecutables">Distribution.Simple.Setup</a></td></tr><tr><td class="src">HscolourFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:HscolourFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:HscolourFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourForeignLibs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourForeignLibs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:hscolourHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:hscolourHook">Distribution.Simple</a></td></tr><tr><td class="src">hscolourPref</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:hscolourPref">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">hscolourProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:hscolourProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:hscolourProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">hscolourTestSuites</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourTestSuites">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hsLibraries</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:hsLibraries">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">hsSourceDirs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:hsSourceDirs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:hsSourceDirs">Distribution.PackageDescription</a></td></tr><tr><td class="src">hstoolVersion</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:hstoolVersion">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">htmlDir</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:htmlDir">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">htmldir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:htmldir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">HtmldirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:HtmldirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">Hugs</td><td class="module"><a href="Distribution-Compiler.html#v:Hugs">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">Hurd</td><td class="module"><a href="Distribution-System.html#v:Hurd">Distribution.System</a></td></tr><tr><td class="src">I386</td><td class="module"><a href="Distribution-System.html#v:I386">Distribution.System</a></td></tr><tr><td class="src">IA64</td><td class="module"><a href="Distribution-System.html#v:IA64">Distribution.System</a></td></tr><tr><td class="src">id</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ignoreBOM</td><td class="module"><a href="Distribution-Utils-Generic.html#v:ignoreBOM">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:ignoreBOM">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ignoreConditions</td><td class="module"><a href="Distribution-Types-CondTree.html#v:ignoreConditions">Distribution.Types.CondTree</a></td></tr><tr><td class="src">Impl</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:Impl">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:Impl">Distribution.PackageDescription</a></td></tr><tr><td class="src">ImplicitParams</td><td class="module"><a href="Language-Haskell-Extension.html#v:ImplicitParams">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">ImplicitPrelude</td><td class="module"><a href="Language-Haskell-Extension.html#v:ImplicitPrelude">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">importDirs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:importDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">ImpredicativeTypes</td><td class="module"><a href="Language-Haskell-Extension.html#v:ImpredicativeTypes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">includedir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:includedir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">includeDirs</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:includeDirs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:includeDirs">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:includeDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">includeProvidesRn</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:includeProvidesRn">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">IncludeRenaming</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:IncludeRenaming">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">includeRequiresRn</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:includeRequiresRn">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">includes</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:includes">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:includes">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:includes">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">InclusiveBound</td><td class="module"><a href="Distribution-Version.html#v:InclusiveBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">IncoherentInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:IncoherentInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">IndefFullUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:IndefFullUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">indefinite</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:indefinite">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">info</td><td class="module"><a href="Distribution-Simple-Utils.html#v:info">Distribution.Simple.Utils</a></td></tr><tr><td class="src">infoNoWrap</td><td class="module"><a href="Distribution-Simple-Utils.html#v:infoNoWrap">Distribution.Simple.Utils</a></td></tr><tr><td class="src">infoProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:infoProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">init</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:init">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">initialBuildSteps</td><td class="module"><a href="Distribution-Simple-Build.html#v:initialBuildSteps">Distribution.Simple.Build</a></td></tr><tr><td class="src">initialPathTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:initialPathTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">initInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:initInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">initPackageDB</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:initPackageDB">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:initPackageDB">Distribution.Simple.Register</a></td></tr><tr><td class="src">inplaceInstalledPackageInfo</td><td class="module"><a href="Distribution-Simple-Register.html#v:inplaceInstalledPackageInfo">Distribution.Simple.Register</a></td></tr><tr><td class="src">inplacePackageDbPath</td><td class="module"><a href="Distribution-Simple-UHC.html#v:inplacePackageDbPath">Distribution.Simple.UHC</a></td></tr><tr><td class="src">insert</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:insert">Distribution.Compat.Graph</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:insert">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">insertLookupWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">insertWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">insertWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">install</td><td class="module"><a href="Distribution-Simple-Install.html#v:install">Distribution.Simple.Install</a></td></tr><tr><td class="src">installCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installDirectoryContents</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installDirectoryContents">Distribution.Simple.Utils</a></td></tr><tr><td class="src">InstallDirs</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:InstallDirs">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">installDirsOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installDirsOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installDirsTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:installDirsTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">InstallDirTemplates</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">installDirTemplates</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:installDirTemplates">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:installDirTemplates">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">installDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installedComponentId</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedComponentId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">installedComponentId_</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedComponentId_">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">installedDepends</td><td class="module"><a href="Distribution-Package.html#v:installedDepends">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">installedOpenUnitId</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedOpenUnitId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">InstalledPackageId</td><td class="module"><a href="Distribution-Types-UnitId.html#t:InstalledPackageId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">installedPackageId</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Package.html#v:installedPackageId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedPackageId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">InstalledPackageIndex</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">InstalledPackageInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:InstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">installedPkgs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:installedPkgs">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:installedPkgs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">installedUnitId</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Package.html#v:installedUnitId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedUnitId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">installExe</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:installExe">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:installExe">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:installExe">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:installExe">Distribution.Simple.GHC</a></td></tr><tr><td class="src">installExecutableFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installExecutableFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installExecutableFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installExecutableFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">InstallFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:InstallFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:InstallFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installFLib</td><td class="module"><a href="Distribution-Simple-GHC.html#v:installFLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">installIncludes</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:installIncludes">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:installIncludes">Distribution.PackageDescription</a></td></tr><tr><td class="src">installInPlace</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installInPlace">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installLib</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:installLib">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:installLib">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:installLib">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:installLib">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:installLib">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:installLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">installMaybeExecutableFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installMaybeExecutableFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installMaybeExecutableFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installMaybeExecutableFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installOrdinaryFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installOrdinaryFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installOrdinaryFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installOrdinaryFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installPackageDB</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installPackageDB">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installUseWrapper</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installUseWrapper">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">InstanceSigs</td><td class="module"><a href="Language-Haskell-Extension.html#v:InstanceSigs">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">instantiatedWith</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:instantiatedWith">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">instHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:instHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:instHook">Distribution.Simple</a></td></tr><tr><td class="src">Int</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Int16</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Int16">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Int32</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Int32">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Int64</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Int64">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Int8</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Int8">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Integer</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Integral</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">interact</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">intercalate</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:intercalate">Distribution.Compat.Prelude.Internal</a>, <a href="Distribution-Utils-Generic.html#v:intercalate">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:intercalate">Distribution.Simple.Utils</a></td></tr><tr><td class="src">internalPackageDBPath</td><td class="module"><a href="Distribution-Simple-Register.html#v:internalPackageDBPath">Distribution.Simple.Register</a></td></tr><tr><td class="src">interpretPackageDbFlags</td><td class="module"><a href="Distribution-Simple-Configure.html#v:interpretPackageDbFlags">Distribution.Simple.Configure</a></td></tr><tr><td class="src">InterruptibleFFI</td><td class="module"><a href="Language-Haskell-Extension.html#v:InterruptibleFFI">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">intersection</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">intersectionWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">intersectionWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">intersectVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:intersectVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">IntersectVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:IntersectVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">intersectVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:intersectVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">intersperse</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:intersperse">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">intToVerbosity</td><td class="module"><a href="Distribution-Verbosity.html#v:intToVerbosity">Distribution.Verbosity</a></td></tr><tr><td class="src">invertVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:invertVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">invertVersionRange</td><td class="module"><a href="Distribution-Version.html#v:invertVersionRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">invocationAsBatchFile</td><td class="module"><a href="Distribution-Simple-Program-Script.html#v:invocationAsBatchFile">Distribution.Simple.Program.Script</a></td></tr><tr><td class="src">invocationAsShellScript</td><td class="module"><a href="Distribution-Simple-Program-Script.html#v:invocationAsShellScript">Distribution.Simple.Program.Script</a></td></tr><tr><td class="src">invocationAsSystemScript</td><td class="module"><a href="Distribution-Simple-Program-Script.html#v:invocationAsSystemScript">Distribution.Simple.Program.Script</a></td></tr><tr><td class="src">invoke</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:invoke">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">invokeHcPkg</td><td class="module"><a href="Distribution-Simple-Register.html#v:invokeHcPkg">Distribution.Simple.Register</a></td></tr><tr><td class="src">IO</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:IO">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">IOEncoding</td><td class="module"><a href="Distribution-Simple-Program-Run.html#t:IOEncoding">Distribution.Simple.Program.Run</a></td></tr><tr><td class="src">IOEncodingText</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:IOEncodingText">Distribution.Simple.Program.Run</a></td></tr><tr><td class="src">IOEncodingUTF8</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:IOEncodingUTF8">Distribution.Simple.Program.Run</a></td></tr><tr><td class="src">IOError</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ioError</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">IOS</td><td class="module"><a href="Distribution-System.html#v:IOS">Distribution.System</a></td></tr><tr><td class="src">IRIX</td><td class="module"><a href="Distribution-System.html#v:IRIX">Distribution.System</a></td></tr><tr><td class="src">isAbsoluteOnAnyPlatform</td><td class="module"><a href="Distribution-Utils-Generic.html#v:isAbsoluteOnAnyPlatform">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:isAbsoluteOnAnyPlatform">Distribution.Simple.Utils</a></td></tr><tr><td class="src">isAlpha</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isAlpha">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isAlphaNum</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isAlphaNum">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isAnyVersion</td><td class="module"><a href="Distribution-Version.html#v:isAnyVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">ISC</td><td class="module"><a href="Distribution-License.html#v:ISC">Distribution.License</a>, <a href="Distribution-Make.html#v:ISC">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">isDefaultIncludeRenaming</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:isDefaultIncludeRenaming">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">isDefaultRenaming</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:isDefaultRenaming">Distribution.Types.ModuleRenaming</a></td></tr><tr><td class="src">isDenormalized</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">isDigit</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isDigit">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isDynamic</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:isDynamic">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:isDynamic">Distribution.Simple.GHC</a></td></tr><tr><td class="src">isIEEE</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">isInfinite</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">isInfixOf</td><td class="module"><a href="Distribution-Utils-Generic.html#v:isInfixOf">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:isInfixOf">Distribution.Simple.Utils</a></td></tr><tr><td class="src">isInSearchPath</td><td class="module"><a href="Distribution-Simple-Utils.html#v:isInSearchPath">Distribution.Simple.Utils</a></td></tr><tr><td class="src">isInternal</td><td class="module"><a href="Distribution-Simple-BuildToolDepends.html#v:isInternal">Distribution.Simple.BuildToolDepends</a></td></tr><tr><td class="src">isJust</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isJust">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isNaN</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">isNegativeZero</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">IsNode</td><td class="module"><a href="Distribution-Compat-Graph.html#t:IsNode">Distribution.Compat.Graph</a></td></tr><tr><td class="src">isNothing</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isNothing">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isNoVersion</td><td class="module"><a href="Distribution-Version.html#v:isNoVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">isPrefixOf</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isPrefixOf">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isProperSubmapOf</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">isProperSubmapOfBy</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">isRelativeOnAnyPlatform</td><td class="module"><a href="Distribution-Utils-Generic.html#v:isRelativeOnAnyPlatform">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:isRelativeOnAnyPlatform">Distribution.Simple.Utils</a></td></tr><tr><td class="src">isRelaxDeps</td><td class="module"><a href="Distribution-Simple-Setup.html#v:isRelaxDeps">Distribution.Simple.Setup</a></td></tr><tr><td class="src">isSpace</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isSpace">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isSpecificVersion</td><td class="module"><a href="Distribution-Version.html#v:isSpecificVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">IsString</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:IsString">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isSubmapOf</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">isSubmapOfBy</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">isSuffixOf</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isSuffixOf">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isUpper</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isUpper">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isVerboseCallSite</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseCallSite">Distribution.Verbosity</a></td></tr><tr><td class="src">isVerboseCallStack</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseCallStack">Distribution.Verbosity</a></td></tr><tr><td class="src">isVerboseMarkOutput</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseMarkOutput">Distribution.Verbosity</a></td></tr><tr><td class="src">isVerboseNoWrap</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseNoWrap">Distribution.Verbosity</a></td></tr><tr><td class="src">isVerboseQuiet</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseQuiet">Distribution.Verbosity</a></td></tr><tr><td class="src">iterate</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">JavaScript</td><td class="module"><a href="Distribution-System.html#v:JavaScript">Distribution.System</a></td></tr><tr><td class="src">JavaScriptFFI</td><td class="module"><a href="Language-Haskell-Extension.html#v:JavaScriptFFI">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">JHC</td><td class="module"><a href="Distribution-Compiler.html#v:JHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">jhcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:jhcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:jhcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">jsSources</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:jsSources">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:jsSources">Distribution.PackageDescription</a></td></tr><tr><td class="src">Just</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Key</td><td class="module"><a href="Distribution-Compat-Graph.html#t:Key">Distribution.Compat.Graph</a></td></tr><tr><td class="src">keys</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:keys">Distribution.Compat.Graph</a></td></tr><tr><td class="src">keysSet</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:keysSet">Distribution.Compat.Graph</a></td></tr><tr><td class="src">KindSignatures</td><td class="module"><a href="Language-Haskell-Extension.html#v:KindSignatures">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">knownArches</td><td class="module"><a href="Distribution-System.html#v:knownArches">Distribution.System</a></td></tr><tr><td class="src">knownBenchmarkTypes</td><td class="module"><a href="Distribution-Types-BenchmarkType.html#v:knownBenchmarkTypes">Distribution.Types.BenchmarkType</a>, <a href="Distribution-PackageDescription.html#v:knownBenchmarkTypes">Distribution.PackageDescription</a></td></tr><tr><td class="src">knownBuildTypes</td><td class="module"><a href="Distribution-Types-BuildType.html#v:knownBuildTypes">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:knownBuildTypes">Distribution.PackageDescription</a></td></tr><tr><td class="src">KnownExtension</td><td class="module"><a href="Language-Haskell-Extension.html#t:KnownExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">knownExtensions</td><td class="module"><a href="Language-Haskell-Extension.html#v:knownExtensions">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">knownForeignLibTypes</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:knownForeignLibTypes">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">knownLanguages</td><td class="module"><a href="Language-Haskell-Extension.html#v:knownLanguages">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">knownLicenses</td><td class="module"><a href="Distribution-License.html#v:knownLicenses">Distribution.License</a>, Distribution.Simple</td></tr><tr><td class="src">knownOSs</td><td class="module"><a href="Distribution-System.html#v:knownOSs">Distribution.System</a></td></tr><tr><td class="src">knownProfDetailLevels</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:knownProfDetailLevels">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">knownPrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:knownPrograms">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:knownPrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">knownRepoTypes</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:knownRepoTypes">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:knownRepoTypes">Distribution.PackageDescription</a></td></tr><tr><td class="src">knownSuffixHandlers</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:knownSuffixHandlers">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">knownTestTypes</td><td class="module"><a href="Distribution-Types-TestType.html#v:knownTestTypes">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#v:knownTestTypes">Distribution.PackageDescription</a></td></tr><tr><td class="src">LambdaCase</td><td class="module"><a href="Language-Haskell-Extension.html#v:LambdaCase">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Language</td><td class="module"><a href="Language-Haskell-Extension.html#t:Language">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">languageToFlags</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:languageToFlags">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">last</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Last'</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:Last-39-">Distribution.Compat.Semigroup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:Last-39-">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">LaterVersion</td><td class="module"><a href="Distribution-Version.html#v:LaterVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">laterVersion</td><td class="module"><a href="Distribution-Version.html#v:laterVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">lcm</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">lc_ann_id</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_ann_id">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_cid</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_cid">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_component</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_component">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_exe_deps</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_exe_deps">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_includes</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_includes">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_insts</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_insts">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_pkgid</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_pkgid">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_public</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_public">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_shape</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_shape">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_sig_includes</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_sig_includes">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_uid</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_uid">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">ldOptions</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:ldOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:ldOptions">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ldOptions">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">ldProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ldProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ldProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">Left</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">LegacyExeDependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">Distribution.Types.LegacyExeDependency</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-LegacyExeDependency.html#v:LegacyExeDependency">Distribution.Types.LegacyExeDependency</a></td></tr><tr><td class="src">length</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:length">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">lessVerbose</td><td class="module"><a href="Distribution-Verbosity.html#v:lessVerbose">Distribution.Verbosity</a></td></tr><tr><td class="src">lex</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">LFlags</td><td class="module"><a href="Distribution-Simple-Command.html#t:LFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">LGPL</td><td class="module"><a href="Distribution-License.html#v:LGPL">Distribution.License</a>, <a href="Distribution-Make.html#v:LGPL">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">LHC</td><td class="module"><a href="Distribution-Compiler.html#v:LHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">lhcPkgProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:lhcPkgProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:lhcPkgProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">lhcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:lhcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:lhcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">libAbiHash</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:libAbiHash">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:libAbiHash">Distribution.Simple.GHC</a></td></tr><tr><td class="src">libBuildInfo</td><td class="module"><a href="Distribution-Types-Library.html#v:libBuildInfo">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">LibComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:LibComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:LibComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">libCoverage</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:libCoverage">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:libCoverage">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">libdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:libdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">LibdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:LibdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">LiberalTypeSynonyms</td><td class="module"><a href="Language-Haskell-Extension.html#v:LiberalTypeSynonyms">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">libexecdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:libexecdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">libexecsubdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:libexecsubdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">libExposed</td><td class="module"><a href="Distribution-Types-Library.html#v:libExposed">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libExposed">Distribution.PackageDescription</a></td></tr><tr><td class="src">libFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:libFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">libModules</td><td class="module"><a href="Distribution-Types-Library.html#v:libModules">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">libModulesAutogen</td><td class="module"><a href="Distribution-Types-Library.html#v:libModulesAutogen">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libModulesAutogen">Distribution.PackageDescription</a></td></tr><tr><td class="src">libName</td><td class="module"><a href="Distribution-Types-Library.html#v:libName">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libName">Distribution.PackageDescription</a></td></tr><tr><td class="src">LibNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:LibNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">Library</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Library.html#t:Library">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#t:Library">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Library.html#v:Library">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:Library">Distribution.PackageDescription</a></td></tr><tr><td class="src">library</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:library">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:library">Distribution.PackageDescription</a></td></tr><tr><td class="src">libraryComponentName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:libraryComponentName">Distribution.Types.ComponentName</a></td></tr><tr><td class="src">libraryDirs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:libraryDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">libraryDynDirs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:libraryDynDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">libraryDynDirSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:libraryDynDirSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">libsubdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:libsubdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">LibsubdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:LibsubdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">LibVersionInfo</td><td class="module"><a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">libVersionInfoCRA</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:libVersionInfoCRA">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">libVersionMajor</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:libVersionMajor">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">libVersionNumber</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:libVersionNumber">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">libVersionNumberShow</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:libVersionNumberShow">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">License</td><td class="module"><a href="Distribution-License.html#t:License">Distribution.License</a>, <a href="Distribution-Make.html#t:License">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">license</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:license">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:license">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:license">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">licenseFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:licenseFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:licenseFiles">Distribution.PackageDescription</a></td></tr><tr><td class="src">liftM</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:liftM">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">liftM2</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:liftM2">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">liftOption</td><td class="module"><a href="Distribution-Simple-Command.html#v:liftOption">Distribution.Simple.Command</a></td></tr><tr><td class="src">LineNo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#t:LineNo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">lines</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">LinkedComponent</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:LinkedComponent">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">LinkedComponentMap</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">Linux</td><td class="module"><a href="Distribution-System.html#v:Linux">Distribution.System</a></td></tr><tr><td class="src">list</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:list">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">listInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:listInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">listPackageSources</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:listPackageSources">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">listToMaybe</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:listToMaybe">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">listUnion</td><td class="module"><a href="Distribution-Utils-Generic.html#v:listUnion">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:listUnion">Distribution.Simple.Utils</a></td></tr><tr><td class="src">listUnionRight</td><td class="module"><a href="Distribution-Utils-Generic.html#v:listUnionRight">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:listUnionRight">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Lit</td><td class="module"><a href="Distribution-Types-Condition.html#v:Lit">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:Lit">Distribution.PackageDescription</a></td></tr><tr><td class="src">LocalBuildInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:LocalBuildInfo">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:LocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">localBuildInfoFile</td><td class="module"><a href="Distribution-Simple-Configure.html#v:localBuildInfoFile">Distribution.Simple.Configure</a></td></tr><tr><td class="src">localCompatPackageKey</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localCompatPackageKey">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:localCompatPackageKey">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">localComponentId</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localComponentId">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:localComponentId">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">localPackage</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localPackage">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">localPackageLog</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:localPackageLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">localPkgDescr</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localPkgDescr">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:localPkgDescr">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">localUnitId</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localUnitId">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:localUnitId">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">locationPath</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:locationPath">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:locationPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">log</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">logBase</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">logFile</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:logFile">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">LogProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#t:LogProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">look</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:look">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">lookup</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:lookup">Distribution.Compat.Graph</a></td></tr><tr><td class="src">lookupComponent</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:lookupComponent">Distribution.Types.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:lookupComponent">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">lookupComponentId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupComponentId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupDependency</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupDependency">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupGE</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupGT</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupIndex</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupInstalledPackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupInstalledPackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupInternalDependency</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupInternalDependency">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupKnownProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:lookupKnownProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:lookupKnownProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">lookupLE</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupLT</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupPackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupPackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupPackageName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupPackageName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:lookupProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:lookupProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">lookupProgramVersion</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:lookupProgramVersion">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:lookupProgramVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">lookupSourcePackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupSourcePackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupUnitId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupUnitId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">LowerBound</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Version.html#t:LowerBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Version.html#v:LowerBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">lowercase</td><td class="module"><a href="Distribution-Utils-Generic.html#v:lowercase">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:lowercase">Distribution.Simple.Utils</a></td></tr><tr><td class="src">LT</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">M68k</td><td class="module"><a href="Distribution-System.html#v:M68k">Distribution.System</a></td></tr><tr><td class="src">MagicHash</td><td class="module"><a href="Language-Haskell-Extension.html#v:MagicHash">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">main</td><td class="module"><a href="Distribution-ModuleName.html#v:main">Distribution.ModuleName</a></td></tr><tr><td class="src">maintainer</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:maintainer">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:maintainer">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:maintainer">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">MajorBoundVersion</td><td class="module"><a href="Distribution-Version.html#v:MajorBoundVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">majorBoundVersion</td><td class="module"><a href="Distribution-Version.html#v:majorBoundVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Make</td><td class="module"><a href="Distribution-Types-BuildType.html#v:Make">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:Make">Distribution.PackageDescription</a></td></tr><tr><td class="src">mandir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:mandir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">many</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:many">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:many">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">many1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:many1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">manyTill</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:manyTill">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">Map</td><td class="module">Distribution.Compat.Map.Strict, <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">map</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapAccum</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapAccumM</td><td class="module"><a href="Distribution-Utils-MapAccum.html#v:mapAccumM">Distribution.Utils.MapAccum</a></td></tr><tr><td class="src">mapAccumRWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapAccumWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapCondTree</td><td class="module"><a href="Distribution-Types-CondTree.html#v:mapCondTree">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:mapCondTree">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">mapEither</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapEitherWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapKeys</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapKeysMonotonic</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapKeysWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapMaybe</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:mapMaybe">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapMaybeWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mappend</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:mappend">Distribution.Compat.Semigroup</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">mapTreeConds</td><td class="module"><a href="Distribution-Types-CondTree.html#v:mapTreeConds">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:mapTreeConds">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">mapTreeConstrs</td><td class="module"><a href="Distribution-Types-CondTree.html#v:mapTreeConstrs">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:mapTreeConstrs">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">mapTreeData</td><td class="module"><a href="Distribution-Types-CondTree.html#v:mapTreeData">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:mapTreeData">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">mapWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">markup</td><td class="module"><a href="Distribution-Simple-Program-Hpc.html#v:markup">Distribution.Simple.Program.Hpc</a></td></tr><tr><td class="src">markupPackage</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:markupPackage">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">markupTest</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:markupTest">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">matchDirFileGlob</td><td class="module"><a href="Distribution-Simple-Utils.html#v:matchDirFileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">matchFileGlob</td><td class="module"><a href="Distribution-Simple-Utils.html#v:matchFileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">max</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">maxBound</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">MaximalDebugInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:MaximalDebugInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">maximum</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:maximum">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">MaximumOptimisation</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:MaximumOptimisation">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">maxView</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">maxViewWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Maybe</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">maybe</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">maybeComponentInstantiatedWith</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:maybeComponentInstantiatedWith">Distribution.Types.ComponentLocalBuildInfo</a></td></tr><tr><td class="src">maybeExit</td><td class="module"><a href="Distribution-Simple-Utils.html#v:maybeExit">Distribution.Simple.Utils</a></td></tr><tr><td class="src">maybeGetPersistBuildConfig</td><td class="module"><a href="Distribution-Simple-Configure.html#v:maybeGetPersistBuildConfig">Distribution.Simple.Configure</a></td></tr><tr><td class="src">maybeToFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#v:maybeToFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">maybeToList</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:maybeToList">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">mconcat</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:mconcat">Distribution.Compat.Semigroup</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">member</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:member">Distribution.Compat.Graph</a></td></tr><tr><td class="src">mempty</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:mempty">Distribution.Compat.Semigroup</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Mercurial</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Mercurial">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Mercurial">Distribution.PackageDescription</a></td></tr><tr><td class="src">merge</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:merge">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">mergeWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">min</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">minBound</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">MinimalDebugInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:MinimalDebugInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">minimum</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:minimum">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">minView</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">minViewWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Mips</td><td class="module"><a href="Distribution-System.html#v:Mips">Distribution.System</a></td></tr><tr><td class="src">MIT</td><td class="module"><a href="Distribution-License.html#v:MIT">Distribution.License</a>, <a href="Distribution-Make.html#v:MIT">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">mixDir</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:mixDir">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">Mixin</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Mixin.html#t:Mixin">Distribution.Types.Mixin</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Mixin.html#v:Mixin">Distribution.Types.Mixin</a></td></tr><tr><td class="src">mixinIncludeRenaming</td><td class="module"><a href="Distribution-Types-Mixin.html#v:mixinIncludeRenaming">Distribution.Types.Mixin</a></td></tr><tr><td class="src">mixinPackageName</td><td class="module"><a href="Distribution-Types-Mixin.html#v:mixinPackageName">Distribution.Types.Mixin</a></td></tr><tr><td class="src">mixins</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:mixins">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:mixins">Distribution.PackageDescription</a></td></tr><tr><td class="src">mkAbiHash</td><td class="module"><a href="Distribution-Types-AbiHash.html#v:mkAbiHash">Distribution.Types.AbiHash</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkCommandUI</td><td class="module"><a href="Distribution-Simple-Command.html#v:mkCommandUI">Distribution.Simple.Command</a></td></tr><tr><td class="src">mkComponentId</td><td class="module"><a href="Distribution-Types-ComponentId.html#v:mkComponentId">Distribution.Types.ComponentId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkComponentsGraph</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#v:mkComponentsGraph">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">mkDefUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:mkDefUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">MkFlag</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:MkFlag">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:MkFlag">Distribution.PackageDescription</a></td></tr><tr><td class="src">mkFlagName</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:mkFlagName">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:mkFlagName">Distribution.PackageDescription</a></td></tr><tr><td class="src">mkLegacyUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:mkLegacyUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkLibName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:mkLibName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">mkLibVersionInfo</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:mkLibVersionInfo">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">mkMungedPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#v:mkMungedPackageName">Distribution.Types.MungedPackageName</a></td></tr><tr><td class="src">mkOpenUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:mkOpenUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">MkOptDescr</td><td class="module"><a href="Distribution-Simple-Command.html#t:MkOptDescr">Distribution.Simple.Command</a></td></tr><tr><td class="src">mkPackageName</td><td class="module"><a href="Distribution-Types-PackageName.html#v:mkPackageName">Distribution.Types.PackageName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkPkgconfigName</td><td class="module"><a href="Distribution-Types-PkgconfigName.html#v:mkPkgconfigName">Distribution.Types.PkgconfigName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkProfLibName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:mkProfLibName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">mkSharedLibName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:mkSharedLibName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">mkSimplePreProcessor</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:mkSimplePreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">mkUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:mkUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkUnqualComponentName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#v:mkUnqualComponentName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">mkVersion</td><td class="module"><a href="Distribution-Version.html#v:mkVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">mkVersion'</td><td class="module"><a href="Distribution-Version.html#v:mkVersion-39-">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">mkVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:mkVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">mod</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">modifyProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:modifyProgramSearchPath">Distribution.Simple.Program.Db</a></td></tr><tr><td class="src">modShapeProvides</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:modShapeProvides">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">modShapeRequires</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:modShapeRequires">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">ModSubst</td><td class="module"><a href="Distribution-Backpack-ModSubst.html#t:ModSubst">Distribution.Backpack.ModSubst</a></td></tr><tr><td class="src">modSubst</td><td class="module"><a href="Distribution-Backpack-ModSubst.html#v:modSubst">Distribution.Backpack.ModSubst</a></td></tr><tr><td class="src">ModTime</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compat-Time.html#t:ModTime">Distribution.Compat.Time</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compat-Time.html#v:ModTime">Distribution.Compat.Time</a></td></tr><tr><td class="src">Module</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Module.html#t:Module">Distribution.Types.Module</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Module.html#v:Module">Distribution.Types.Module</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">ModuleName</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-ModuleName.html#t:ModuleName">Distribution.ModuleName</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-ModuleName.html#v:ModuleName">Distribution.ModuleName</a></td></tr><tr><td class="src">moduleNameIndex</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:moduleNameIndex">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">modulePath</td><td class="module"><a href="Distribution-Types-Executable.html#v:modulePath">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:modulePath">Distribution.PackageDescription</a></td></tr><tr><td class="src">ModuleReexport</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#t:ModuleReexport">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#v:ModuleReexport">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#v:ModuleReexport">Distribution.PackageDescription</a></td></tr><tr><td class="src">moduleReexportName</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#v:moduleReexportName">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#v:moduleReexportName">Distribution.PackageDescription</a></td></tr><tr><td class="src">moduleReexportOriginalName</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#v:moduleReexportOriginalName">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#v:moduleReexportOriginalName">Distribution.PackageDescription</a></td></tr><tr><td class="src">moduleReexportOriginalPackage</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#v:moduleReexportOriginalPackage">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#v:moduleReexportOriginalPackage">Distribution.PackageDescription</a></td></tr><tr><td class="src">ModuleRenaming</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#t:ModuleRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:ModuleRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#v:ModuleRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="src">ModuleShape</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:ModuleShape">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">Monad</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">MonadComprehensions</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonadComprehensions">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">MonadFailDesugaring</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonadFailDesugaring">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">MonadPlus</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Monoid</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:Monoid">Distribution.Compat.Semigroup</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">MonoLocalBinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonoLocalBinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">MonomorphismRestriction</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonomorphismRestriction">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">MonoPatBinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonoPatBinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Monotone</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Monotone">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Monotone">Distribution.PackageDescription</a></td></tr><tr><td class="src">moreRecentFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:moreRecentFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">moreVerbose</td><td class="module"><a href="Distribution-Verbosity.html#v:moreVerbose">Distribution.Verbosity</a></td></tr><tr><td class="src">MPL</td><td class="module"><a href="Distribution-License.html#v:MPL">Distribution.License</a>, <a href="Distribution-Make.html#v:MPL">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">mplus</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:mplus">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">multiOption</td><td class="module"><a href="Distribution-Simple-Command.html#v:multiOption">Distribution.Simple.Command</a></td></tr><tr><td class="src">MultiParamTypeClasses</td><td class="module"><a href="Language-Haskell-Extension.html#v:MultiParamTypeClasses">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">multiStageProgramInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:multiStageProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program-Ar.html#v:multiStageProgramInvocation">Distribution.Simple.Program.Ar</a></td></tr><tr><td class="src">MultiWayIf</td><td class="module"><a href="Language-Haskell-Extension.html#v:MultiWayIf">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">munch</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:munch">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">munch1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:munch1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">mungedId</td><td class="module"><a href="Distribution-Package.html#v:mungedId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mungedName</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#v:mungedName">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="src">mungedName'</td><td class="module"><a href="Distribution-Package.html#v:mungedName-39-">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">MungedPackageId</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#v:MungedPackageId">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="src">MungedPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">Distribution.Types.MungedPackageName</a></td></tr><tr><td class="src">mungedVersion</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#v:mungedVersion">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="src">mungedVersion'</td><td class="module"><a href="Distribution-Package.html#v:mungedVersion-39-">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mzero</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:mzero">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">N</td><td class="module"><a href="Distribution-Compat-Graph.html#v:N">Distribution.Compat.Graph</a></td></tr><tr><td class="src">Name</td><td class="module"><a href="Distribution-Simple-Command.html#t:Name">Distribution.Simple.Command</a></td></tr><tr><td class="src">name</td><td class="module"><a href="Distribution-TestSuite.html#v:name">Distribution.TestSuite</a></td></tr><tr><td class="src">NamedFieldPuns</td><td class="module"><a href="Language-Haskell-Extension.html#v:NamedFieldPuns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">NamedWildCards</td><td class="module"><a href="Language-Haskell-Extension.html#v:NamedWildCards">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">nativeMultiInstance</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:nativeMultiInstance">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">neededTargetsInBuildOrder</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:neededTargetsInBuildOrder">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">neededTargetsInBuildOrder'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:neededTargetsInBuildOrder-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">negate</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">NegativeLiterals</td><td class="module"><a href="Language-Haskell-Extension.html#v:NegativeLiterals">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">neighbors</td><td class="module"><a href="Distribution-Compat-Graph.html#v:neighbors">Distribution.Compat.Graph</a></td></tr><tr><td class="src">NetBSD</td><td class="module"><a href="Distribution-System.html#v:NetBSD">Distribution.System</a></td></tr><tr><td class="src">Never</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Never">Distribution.Simple.Setup</a></td></tr><tr><td class="src">newPackageDepsBehaviour</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:newPackageDepsBehaviour">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">NewQualifiedOperators</td><td class="module"><a href="Language-Haskell-Extension.html#v:NewQualifiedOperators">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">newSimpleUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:newSimpleUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">NFData</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:NFData">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">NHC</td><td class="module"><a href="Distribution-Compiler.html#v:NHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">NoAbiTag</td><td class="module"><a href="Distribution-Compiler.html#v:NoAbiTag">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">noArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:noArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">NoCallStackIO</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">NoCopyDest</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:NoCopyDest">Distribution.Simple.InstallDirs</a>, <a href="Distribution-Simple-Setup.html#v:NoCopyDest">Distribution.Simple.Setup</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">Node</td><td class="module"><a href="Distribution-Compat-Graph.html#t:Node">Distribution.Compat.Graph</a></td></tr><tr><td class="src">NoDebugInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:NoDebugInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">nodeKey</td><td class="module"><a href="Distribution-Compat-Graph.html#v:nodeKey">Distribution.Compat.Graph</a></td></tr><tr><td class="src">nodeNeighbors</td><td class="module"><a href="Distribution-Compat-Graph.html#v:nodeNeighbors">Distribution.Compat.Graph</a></td></tr><tr><td class="src">nodeValue</td><td class="module"><a href="Distribution-Compat-Graph.html#v:nodeValue">Distribution.Compat.Graph</a></td></tr><tr><td class="src">noExtraFlags</td><td class="module"><a href="Distribution-Simple-Command.html#v:noExtraFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">NoFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#v:NoFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">NoGlob</td><td class="module"><a href="Distribution-Simple-Utils.html#v:NoGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">NondecreasingIndentation</td><td class="module"><a href="Language-Haskell-Extension.html#v:NondecreasingIndentation">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">None</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:None">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">NoOptimisation</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:NoOptimisation">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">NoParse</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:NoParse">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">noPkgDbStack</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:noPkgDbStack">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">normal</td><td class="module"><a href="Distribution-Verbosity.html#v:normal">Distribution.Verbosity</a></td></tr><tr><td class="src">NormalCommand</td><td class="module"><a href="Distribution-Simple-Command.html#v:NormalCommand">Distribution.Simple.Command</a></td></tr><tr><td class="src">NormalDebugInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:NormalDebugInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">normaliseLineEndings</td><td class="module"><a href="Distribution-Utils-Generic.html#v:normaliseLineEndings">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:normaliseLineEndings">Distribution.Simple.Utils</a></td></tr><tr><td class="src">NormalOptimisation</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:NormalOptimisation">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">not</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">notElem</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Nothing</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">notice</td><td class="module"><a href="Distribution-Simple-Utils.html#v:notice">Distribution.Simple.Utils</a></td></tr><tr><td class="src">noticeDoc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:noticeDoc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">noticeNoWrap</td><td class="module"><a href="Distribution-Simple-Utils.html#v:noticeNoWrap">Distribution.Simple.Utils</a></td></tr><tr><td class="src">notMember</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">notThisPackageVersion</td><td class="module"><a href="Distribution-Types-Dependency.html#v:notThisPackageVersion">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">notThisVersion</td><td class="module"><a href="Distribution-Version.html#v:notThisVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">NoUpperBound</td><td class="module"><a href="Distribution-Version.html#v:NoUpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">noVerboseFlag</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:noVerboseFlag">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">noVersion</td><td class="module"><a href="Distribution-Version.html#v:noVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">NPlusKPatterns</td><td class="module"><a href="Language-Haskell-Extension.html#v:NPlusKPatterns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">nub</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:nub">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">nubBy</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:nubBy">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">NubList</td><td class="module"><a href="Distribution-Utils-NubList.html#t:NubList">Distribution.Utils.NubList</a></td></tr><tr><td class="src">NubListR</td><td class="module"><a href="Distribution-Utils-NubList.html#t:NubListR">Distribution.Utils.NubList</a></td></tr><tr><td class="src">null</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:null">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:null">Distribution.Compat.Graph</a></td></tr><tr><td class="src">NullaryTypeClasses</td><td class="module"><a href="Language-Haskell-Extension.html#v:NullaryTypeClasses">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">nullVersion</td><td class="module"><a href="Distribution-Version.html#v:nullVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Num</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">NumDecimals</td><td class="module"><a href="Language-Haskell-Extension.html#v:NumDecimals">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">numericVersion</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:numericVersion">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">ObjectiveC</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:ObjectiveC">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">ObjectiveCPlusPlus</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:ObjectiveCPlusPlus">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">objExtension</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:objExtension">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">odd</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">oldExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:oldExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:oldExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">OneComponentRequestedSpec</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:OneComponentRequestedSpec">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">OpenBSD</td><td class="module"><a href="Distribution-System.html#v:OpenBSD">Distribution.System</a></td></tr><tr><td class="src">OpenModule</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack.html#t:OpenModule">Distribution.Backpack</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack.html#v:OpenModule">Distribution.Backpack</a></td></tr><tr><td class="src">openModuleFreeHoles</td><td class="module"><a href="Distribution-Backpack.html#v:openModuleFreeHoles">Distribution.Backpack</a></td></tr><tr><td class="src">OpenModuleSubst</td><td class="module"><a href="Distribution-Backpack.html#t:OpenModuleSubst">Distribution.Backpack</a></td></tr><tr><td class="src">openModuleSubstFreeHoles</td><td class="module"><a href="Distribution-Backpack.html#v:openModuleSubstFreeHoles">Distribution.Backpack</a></td></tr><tr><td class="src">OpenModuleVar</td><td class="module"><a href="Distribution-Backpack.html#v:OpenModuleVar">Distribution.Backpack</a></td></tr><tr><td class="src">OpenUnitId</td><td class="module"><a href="Distribution-Backpack.html#t:OpenUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">openUnitIdFreeHoles</td><td class="module"><a href="Distribution-Backpack.html#v:openUnitIdFreeHoles">Distribution.Backpack</a></td></tr><tr><td class="src">OptArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:OptArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">optArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:optArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">optArg'</td><td class="module"><a href="Distribution-Simple-Command.html#v:optArg-39-">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptDescr</td><td class="module"><a href="Distribution-Simple-Command.html#t:OptDescr">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptFlags</td><td class="module"><a href="Distribution-Simple-Command.html#t:OptFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptimisationLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">option</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:option">Distribution.Compat.ReadP</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Command.html#v:option">Distribution.Simple.Command</a></td></tr><tr><td class="src">optional</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:optional">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">OptionBool</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionBool">Distribution.TestSuite</a></td></tr><tr><td class="src">optionDefault</td><td class="module"><a href="Distribution-TestSuite.html#v:optionDefault">Distribution.TestSuite</a></td></tr><tr><td class="src">OptionDescr</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-TestSuite.html#t:OptionDescr">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionDescr">Distribution.TestSuite</a></td></tr><tr><td class="src">optionDescr</td><td class="module"><a href="Distribution-Simple-Command.html#v:optionDescr">Distribution.Simple.Command</a></td></tr><tr><td class="src">optionDescription</td><td class="module"><a href="Distribution-TestSuite.html#v:optionDescription">Distribution.TestSuite</a></td></tr><tr><td class="src">optionDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:optionDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">OptionEnum</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionEnum">Distribution.TestSuite</a></td></tr><tr><td class="src">OptionField</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Command.html#t:OptionField">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Command.html#v:OptionField">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptionFile</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionFile">Distribution.TestSuite</a></td></tr><tr><td class="src">optionFileExtensions</td><td class="module"><a href="Distribution-TestSuite.html#v:optionFileExtensions">Distribution.TestSuite</a></td></tr><tr><td class="src">optionFileIsDir</td><td class="module"><a href="Distribution-TestSuite.html#v:optionFileIsDir">Distribution.TestSuite</a></td></tr><tr><td class="src">optionFileMustExist</td><td class="module"><a href="Distribution-TestSuite.html#v:optionFileMustExist">Distribution.TestSuite</a></td></tr><tr><td class="src">optionName</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-TestSuite.html#v:optionName">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Command.html#v:optionName">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptionNumber</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionNumber">Distribution.TestSuite</a></td></tr><tr><td class="src">optionNumberBounds</td><td class="module"><a href="Distribution-TestSuite.html#v:optionNumberBounds">Distribution.TestSuite</a></td></tr><tr><td class="src">optionNumberIsInt</td><td class="module"><a href="Distribution-TestSuite.html#v:optionNumberIsInt">Distribution.TestSuite</a></td></tr><tr><td class="src">optionNumJobs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:optionNumJobs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">OptionRngSeed</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionRngSeed">Distribution.TestSuite</a></td></tr><tr><td class="src">Options</td><td class="module"><a href="Distribution-TestSuite.html#t:Options">Distribution.TestSuite</a></td></tr><tr><td class="src">options</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-TestSuite.html#v:options">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:options">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:options">Distribution.PackageDescription</a></td></tr><tr><td class="src">OptionSet</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionSet">Distribution.TestSuite</a></td></tr><tr><td class="src">OptionString</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionString">Distribution.TestSuite</a></td></tr><tr><td class="src">optionStringMultiline</td><td class="module"><a href="Distribution-TestSuite.html#v:optionStringMultiline">Distribution.TestSuite</a></td></tr><tr><td class="src">OptionType</td><td class="module"><a href="Distribution-TestSuite.html#t:OptionType">Distribution.TestSuite</a></td></tr><tr><td class="src">optionType</td><td class="module"><a href="Distribution-TestSuite.html#v:optionType">Distribution.TestSuite</a></td></tr><tr><td class="src">optionVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:optionVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">optKeepTempFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:optKeepTempFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">or</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Ord</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ord</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:ord">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Ordering</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ordNub</td><td class="module"><a href="Distribution-Utils-Generic.html#v:ordNub">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:ordNub">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ordNubBy</td><td class="module"><a href="Distribution-Utils-Generic.html#v:ordNubBy">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:ordNubBy">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ordNubRight</td><td class="module"><a href="Distribution-Utils-Generic.html#v:ordNubRight">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:ordNubRight">Distribution.Simple.Utils</a></td></tr><tr><td class="src">orEarlierVersion</td><td class="module"><a href="Distribution-Version.html#v:orEarlierVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">orLaterVersion</td><td class="module"><a href="Distribution-Version.html#v:orLaterVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">OS</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-System.html#t:OS">Distribution.System</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:OS">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:OS">Distribution.PackageDescription</a></td></tr><tr><td class="src">OSVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:OSVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">OSX</td><td class="module"><a href="Distribution-System.html#v:OSX">Distribution.System</a></td></tr><tr><td class="src">OtherArch</td><td class="module"><a href="Distribution-System.html#v:OtherArch">Distribution.System</a></td></tr><tr><td class="src">OtherCompiler</td><td class="module"><a href="Distribution-Compiler.html#v:OtherCompiler">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">otherExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:otherExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:otherExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">otherLanguages</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:otherLanguages">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:otherLanguages">Distribution.PackageDescription</a></td></tr><tr><td class="src">OtherLicense</td><td class="module"><a href="Distribution-License.html#v:OtherLicense">Distribution.License</a>, <a href="Distribution-Make.html#v:OtherLicense">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">otherModules</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:otherModules">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:otherModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">OtherOS</td><td class="module"><a href="Distribution-System.html#v:OtherOS">Distribution.System</a></td></tr><tr><td class="src">OtherRepoType</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:OtherRepoType">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:OtherRepoType">Distribution.PackageDescription</a></td></tr><tr><td class="src">otherwise</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">OverlappingInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:OverlappingInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">OverloadedLabels</td><td class="module"><a href="Language-Haskell-Extension.html#v:OverloadedLabels">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">OverloadedLists</td><td class="module"><a href="Language-Haskell-Extension.html#v:OverloadedLists">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">OverloadedStrings</td><td class="module"><a href="Language-Haskell-Extension.html#v:OverloadedStrings">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">overNubList</td><td class="module"><a href="Distribution-Utils-NubList.html#v:overNubList">Distribution.Utils.NubList</a></td></tr><tr><td class="src">overNubListR</td><td class="module"><a href="Distribution-Utils-NubList.html#v:overNubListR">Distribution.Utils.NubList</a></td></tr><tr><td class="src">Package</td><td class="module"><a href="Distribution-Package.html#t:Package">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">package</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:package">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:package">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:package">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">PackageBuildImpossible</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageBuildImpossible">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageBuildWarning</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageBuildWarning">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageCheck</td><td class="module"><a href="Distribution-PackageDescription-Check.html#t:PackageCheck">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:PackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">packageDbOpt</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:packageDbOpt">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">PackageDBStack</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:PackageDBStack">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">PackageDescription</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#t:PackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:PackageDescription">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:PackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">packageDescription</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:packageDescription">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:packageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">PackageDistInexcusable</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageDistInexcusable">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageDistSuspicious</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageDistSuspicious">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageDistSuspiciousWarn</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageDistSuspiciousWarn">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageId</td><td class="module"><a href="Distribution-Types-PackageId.html#t:PackageId">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">packageId</td><td class="module"><a href="Distribution-Package.html#v:packageId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">PackageIdentifier</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-PackageId.html#t:PackageIdentifier">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-PackageId.html#v:PackageIdentifier">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">PackageImports</td><td class="module"><a href="Language-Haskell-Extension.html#v:PackageImports">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">PackageIndex</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">PackageInstalled</td><td class="module"><a href="Distribution-Package.html#t:PackageInstalled">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">packageKeySupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:packageKeySupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">PackageLog</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#t:PackageLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:PackageLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">PackageName</td><td class="module"><a href="Distribution-Types-PackageName.html#t:PackageName">Distribution.Types.PackageName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">packageName</td><td class="module"><a href="Distribution-Package.html#v:packageName">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">packageNameToUnqualComponentName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#v:packageNameToUnqualComponentName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">packageTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:packageTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">packageVersion</td><td class="module"><a href="Distribution-Package.html#v:packageVersion">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">ParallelArrays</td><td class="module"><a href="Language-Haskell-Extension.html#v:ParallelArrays">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">ParallelListComp</td><td class="module"><a href="Language-Haskell-Extension.html#v:ParallelListComp">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">parentSrcLocPrefix</td><td class="module"><a href="Distribution-Compat-Stack.html#v:parentSrcLocPrefix">Distribution.Compat.Stack</a></td></tr><tr><td class="src">parmakeSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:parmakeSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">parse</td><td class="module"><a href="Distribution-Text.html#v:parse">Distribution.Text</a></td></tr><tr><td class="src">ParseArgs</td><td class="module"><a href="Distribution-Simple-Command.html#v:ParseArgs">Distribution.Simple.Command</a></td></tr><tr><td class="src">parseCompilerFlavorCompat</td><td class="module"><a href="Distribution-Compiler.html#v:parseCompilerFlavorCompat">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">parseCondition</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:parseCondition">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">ParseFailed</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ParseFailed">Distribution.InstalledPackageInfo</a>, <a href="Distribution-PackageDescription-Parse.html#v:ParseFailed">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseFileGlob</td><td class="module"><a href="Distribution-Simple-Utils.html#v:parseFileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">parseFlagAssignment</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:parseFlagAssignment">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:parseFlagAssignment">Distribution.PackageDescription</a></td></tr><tr><td class="src">parseGenericPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:parseGenericPackageDescription">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseHookedBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:parseHookedBuildInfo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseInstalledPackageInfo</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:parseInstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">ParseOk</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ParseOk">Distribution.InstalledPackageInfo</a>, <a href="Distribution-PackageDescription-Parse.html#v:ParseOk">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseOpenModuleSubst</td><td class="module"><a href="Distribution-Backpack.html#v:parseOpenModuleSubst">Distribution.Backpack</a></td></tr><tr><td class="src">parseOpenModuleSubstEntry</td><td class="module"><a href="Distribution-Backpack.html#v:parseOpenModuleSubstEntry">Distribution.Backpack</a></td></tr><tr><td class="src">parsePackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:parsePackageDescription">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseReadE</td><td class="module"><a href="Distribution-ReadE.html#v:parseReadE">Distribution.ReadE</a></td></tr><tr><td class="src">ParseResult</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:ParseResult">Distribution.InstalledPackageInfo</a>, <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">PartialTypeSignatures</td><td class="module"><a href="Language-Haskell-Extension.html#v:PartialTypeSignatures">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">partition</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">partitionComponents</td><td class="module"><a href="Distribution-Types-Component.html#v:partitionComponents">Distribution.Types.Component</a></td></tr><tr><td class="src">partitionWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Pass</td><td class="module"><a href="Distribution-TestSuite.html#v:Pass">Distribution.TestSuite</a></td></tr><tr><td class="src">PathTemplate</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">PathTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">PathTemplateVariable</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">PatternGuards</td><td class="module"><a href="Language-Haskell-Extension.html#v:PatternGuards">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">PatternSignatures</td><td class="module"><a href="Language-Haskell-Extension.html#v:PatternSignatures">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">PatternSynonyms</td><td class="module"><a href="Language-Haskell-Extension.html#v:PatternSynonyms">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Permissive</td><td class="module"><a href="Distribution-System.html#v:Permissive">Distribution.System</a></td></tr><tr><td class="src">PError</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:PError">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">pfail</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:pfail">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">pi</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">pkgBuildableComponents</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:pkgBuildableComponents">Distribution.Types.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:pkgBuildableComponents">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">pkgComponents</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:pkgComponents">Distribution.Types.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:pkgComponents">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">PkgconfigDependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">Distribution.Types.PkgconfigDependency</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-PkgconfigDependency.html#v:PkgconfigDependency">Distribution.Types.PkgconfigDependency</a></td></tr><tr><td class="src">pkgconfigDepends</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:pkgconfigDepends">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:pkgconfigDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">PkgconfigName</td><td class="module"><a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">Distribution.Types.PkgconfigName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">pkgConfigProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:pkgConfigProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:pkgConfigProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">pkgDescrFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:pkgDescrFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">pkgDescrFile</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:pkgDescrFile">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:pkgDescrFile">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">PkgIdVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:PkgIdVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">pkgName</td><td class="module"><a href="Distribution-Types-PackageId.html#v:pkgName">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">PkgNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:PkgNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">pkgPathEnvVar</td><td class="module"><a href="Distribution-Simple-Build-PathsModule.html#v:pkgPathEnvVar">Distribution.Simple.Build.PathsModule</a></td></tr><tr><td class="src">pkgRoot</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:pkgRoot">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:pkgRoot">Distribution.Simple.GHC</a></td></tr><tr><td class="src">pkgUrl</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:pkgUrl">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:pkgUrl">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:pkgUrl">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">pkgVersion</td><td class="module"><a href="Distribution-Types-PackageId.html#v:pkgVersion">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">PkgVerVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:PkgVerVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">plain</td><td class="module"><a href="Distribution-Simple-PreProcess-Unlit.html#v:plain">Distribution.Simple.PreProcess.Unlit</a></td></tr><tr><td class="src">Platform</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-System.html#t:Platform">Distribution.System</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-System.html#v:Platform">Distribution.System</a></td></tr><tr><td class="src">platform</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:platform">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">platformDefines</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:platformDefines">Distribution.Simple.PreProcess</a>, <a href="Distribution-Simple-Configure.html#v:platformDefines">Distribution.Simple.Configure</a></td></tr><tr><td class="src">platformFromTriple</td><td class="module"><a href="Distribution-System.html#v:platformFromTriple">Distribution.System</a></td></tr><tr><td class="src">platformIndependent</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:platformIndependent">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">platformTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:platformTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">PolyKinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:PolyKinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">PolymorphicComponents</td><td class="module"><a href="Language-Haskell-Extension.html#v:PolymorphicComponents">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">posixSecondsToModTime</td><td class="module"><a href="Distribution-Compat-Time.html#v:posixSecondsToModTime">Distribution.Compat.Time</a></td></tr><tr><td class="src">postBench</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postBench">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postBench">Distribution.Simple</a></td></tr><tr><td class="src">postBuild</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postBuild">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postBuild">Distribution.Simple</a></td></tr><tr><td class="src">postClean</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postClean">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postClean">Distribution.Simple</a></td></tr><tr><td class="src">postConf</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postConf">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postConf">Distribution.Simple</a></td></tr><tr><td class="src">postCopy</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postCopy">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postCopy">Distribution.Simple</a></td></tr><tr><td class="src">postDoctest</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postDoctest">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postDoctest">Distribution.Simple</a></td></tr><tr><td class="src">PostfixOperators</td><td class="module"><a href="Language-Haskell-Extension.html#v:PostfixOperators">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">postHaddock</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postHaddock">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postHaddock">Distribution.Simple</a></td></tr><tr><td class="src">postHscolour</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postHscolour">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postHscolour">Distribution.Simple</a></td></tr><tr><td class="src">postInst</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postInst">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postInst">Distribution.Simple</a></td></tr><tr><td class="src">postReg</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postReg">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postReg">Distribution.Simple</a></td></tr><tr><td class="src">postRepl</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postRepl">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postRepl">Distribution.Simple</a></td></tr><tr><td class="src">postSDist</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postSDist">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postSDist">Distribution.Simple</a></td></tr><tr><td class="src">postTest</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postTest">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postTest">Distribution.Simple</a></td></tr><tr><td class="src">postUnreg</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postUnreg">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postUnreg">Distribution.Simple</a></td></tr><tr><td class="src">ppAlex</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppAlex">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">PPC</td><td class="module"><a href="Distribution-System.html#v:PPC">Distribution.System</a></td></tr><tr><td class="src">ppC2hs</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppC2hs">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">PPC64</td><td class="module"><a href="Distribution-System.html#v:PPC64">Distribution.System</a></td></tr><tr><td class="src">ppCpp</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppCpp">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppCpp'</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppCpp-39-">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppGreenCard</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppGreenCard">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppHappy</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppHappy">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppHsc2hs</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppHsc2hs">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppSuffixes</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppSuffixes">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">PPSuffixHandler</td><td class="module"><a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppUnlit</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppUnlit">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">preBench</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preBench">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preBench">Distribution.Simple</a></td></tr><tr><td class="src">preBuild</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preBuild">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preBuild">Distribution.Simple</a></td></tr><tr><td class="src">preClean</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preClean">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preClean">Distribution.Simple</a></td></tr><tr><td class="src">preConf</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preConf">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preConf">Distribution.Simple</a></td></tr><tr><td class="src">preCopy</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preCopy">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preCopy">Distribution.Simple</a></td></tr><tr><td class="src">pred</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">preDoctest</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preDoctest">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preDoctest">Distribution.Simple</a></td></tr><tr><td class="src">prefix</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:prefix">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">prefixRelativeComponentInstallDirs</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:prefixRelativeComponentInstallDirs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">prefixRelativeInstallDirs</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:prefixRelativeInstallDirs">Distribution.Simple.InstallDirs</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:prefixRelativeInstallDirs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">PrefixVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:PrefixVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">preHaddock</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preHaddock">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preHaddock">Distribution.Simple</a></td></tr><tr><td class="src">preHscolour</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preHscolour">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preHscolour">Distribution.Simple</a></td></tr><tr><td class="src">preInst</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preInst">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preInst">Distribution.Simple</a></td></tr><tr><td class="src">prepareSnapshotTree</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:prepareSnapshotTree">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">prepareTree</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:prepareTree">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">preprocessComponent</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:preprocessComponent">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">preprocessExtras</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:preprocessExtras">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">PreProcessor</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-PreProcess.html#t:PreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:PreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">preReg</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preReg">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preReg">Distribution.Simple</a></td></tr><tr><td class="src">preRepl</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preRepl">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preRepl">Distribution.Simple</a></td></tr><tr><td class="src">preSDist</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preSDist">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preSDist">Distribution.Simple</a></td></tr><tr><td class="src">preTest</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preTest">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preTest">Distribution.Simple</a></td></tr><tr><td class="src">prettyCallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#v:prettyCallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">preUnreg</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preUnreg">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preUnreg">Distribution.Simple</a></td></tr><tr><td class="src">print</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">printPackageProblems</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:printPackageProblems">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">printRawCommandAndArgs</td><td class="module"><a href="Distribution-Simple-Utils.html#v:printRawCommandAndArgs">Distribution.Simple.Utils</a></td></tr><tr><td class="src">printRawCommandAndArgsAndEnv</td><td class="module"><a href="Distribution-Simple-Utils.html#v:printRawCommandAndArgsAndEnv">Distribution.Simple.Utils</a></td></tr><tr><td class="src">product</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:product">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Prof</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:Prof">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">ProfDetailAllFunctions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailAllFunctions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailDefault</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailDefault">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailExportedFunctions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailExportedFunctions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailNone</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailNone">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailOther</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailOther">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailToplevelFunctions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailToplevelFunctions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">profilingSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:profilingSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">profOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:profOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:profOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">ProgArg</td><td class="module"><a href="Distribution-Simple-Program-Types.html#t:ProgArg">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ProgArg">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeArgs</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeArgs">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeCwd</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeCwd">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeCwd">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeEnv</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeEnv">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeEnv">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeInput</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeInput">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeInput">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeInputEncoding</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeInputEncoding">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeInputEncoding">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeOutputEncoding</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeOutputEncoding">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeOutputEncoding">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokePath</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokePath">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokePath">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokePathEnv</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokePathEnv">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokePathEnv">Distribution.Simple.Program</a></td></tr><tr><td class="src">progPrefix</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:progPrefix">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:progPrefix">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">Program</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-Types.html#t:Program">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:Program">Distribution.Simple.Program</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:Program">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:Program">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramConfiguration</td><td class="module"><a href="Distribution-Simple-Program.html#t:ProgramConfiguration">Distribution.Simple.Program</a></td></tr><tr><td class="src">programConfigurationOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:programConfigurationOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">programConfigurationPaths'</td><td class="module"><a href="Distribution-Simple-Setup.html#v:programConfigurationPaths-39-">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ProgramDb</td><td class="module"><a href="Distribution-Simple-Program-Db.html#t:ProgramDb">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#t:ProgramDb">Distribution.Simple.Program</a></td></tr><tr><td class="src">programDbOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:programDbOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">programDbPaths'</td><td class="module"><a href="Distribution-Simple-Setup.html#v:programDbPaths-39-">Distribution.Simple.Setup</a></td></tr><tr><td class="src">programDefaultArgs</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programDefaultArgs">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programDefaultArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">programFindLocation</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programFindLocation">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programFindLocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">programFindVersion</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programFindVersion">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programFindVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">programId</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programId">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programId">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramInvocation</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#t:ProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:ProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:ProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">programInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:programInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:programInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramLocation</td><td class="module"><a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ProgramLocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">programLocation</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programLocation">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programLocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">programMonitorFiles</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programMonitorFiles">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programMonitorFiles">Distribution.Simple.Program</a></td></tr><tr><td class="src">programName</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programName">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programName">Distribution.Simple.Program</a></td></tr><tr><td class="src">programOverrideArgs</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programOverrideArgs">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programOverrideArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">programOverrideEnv</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programOverrideEnv">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programOverrideEnv">Distribution.Simple.Program</a></td></tr><tr><td class="src">programPath</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programPath">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">programPostConf</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programPostConf">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programPostConf">Distribution.Simple.Program</a></td></tr><tr><td class="src">programProperties</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programProperties">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programProperties">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPath">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">programSearchPathAsPATHVar</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:programSearchPathAsPATHVar">Distribution.Simple.Program.Find</a></td></tr><tr><td class="src">ProgramSearchPathDefault</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:ProgramSearchPathDefault">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program-Types.html#v:ProgramSearchPathDefault">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:ProgramSearchPathDefault">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramSearchPathDir</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:ProgramSearchPathDir">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program-Types.html#v:ProgramSearchPathDir">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:ProgramSearchPathDir">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramSearchPathEntry</td><td class="module"><a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">Distribution.Simple.Program</a></td></tr><tr><td class="src">programVersion</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programVersion">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">Progress</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-TestSuite.html#t:Progress">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-TestSuite.html#v:Progress">Distribution.TestSuite</a></td></tr><tr><td class="alt">3 (Type/Class)</td><td class="module"><a href="Distribution-Utils-Progress.html#t:Progress">Distribution.Utils.Progress</a></td></tr><tr><td class="src">progSuffix</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:progSuffix">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:progSuffix">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">properFraction</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">PublicDomain</td><td class="module"><a href="Distribution-License.html#v:PublicDomain">Distribution.License</a>, <a href="Distribution-Make.html#v:PublicDomain">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">pure</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Put</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">put</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#v:put">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">putChar</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">putList</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#v:putList">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">putStr</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">putStrLn</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">putWord8</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">PWarning</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:PWarning">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">QL1</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:QL1">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">QL2</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:QL2">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">QL3</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:QL3">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">qualifiedExeName</td><td class="module"><a href="Distribution-Types-ExeDependency.html#v:qualifiedExeName">Distribution.Types.ExeDependency</a></td></tr><tr><td class="src">QualLevel</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:QualLevel">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">QuasiQuotes</td><td class="module"><a href="Language-Haskell-Extension.html#v:QuasiQuotes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">quot</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">quotRem</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Rank2Types</td><td class="module"><a href="Language-Haskell-Extension.html#v:Rank2Types">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">RankNTypes</td><td class="module"><a href="Language-Haskell-Extension.html#v:RankNTypes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Rational</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">rawSystemExit</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemExit">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemExitCode</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemExitCode">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemExitWithEnv</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemExitWithEnv">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemIOWithEnv</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemIOWithEnv">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemProgram</td><td class="module"><a href="Distribution-Simple-Program.html#v:rawSystemProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">rawSystemProgramConf</td><td class="module"><a href="Distribution-Simple-Program.html#v:rawSystemProgramConf">Distribution.Simple.Program</a></td></tr><tr><td class="src">rawSystemProgramStdout</td><td class="module"><a href="Distribution-Simple-Program.html#v:rawSystemProgramStdout">Distribution.Simple.Program</a></td></tr><tr><td class="src">rawSystemProgramStdoutConf</td><td class="module"><a href="Distribution-Simple-Program.html#v:rawSystemProgramStdoutConf">Distribution.Simple.Program</a></td></tr><tr><td class="src">rawSystemStdInOut</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemStdInOut">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemStdout</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemStdout">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Read</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">read</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readBuildTargets</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:readBuildTargets">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">readDesc</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:readDesc">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:readDesc">Distribution.Simple</a></td></tr><tr><td class="src">ReadE</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-ReadE.html#t:ReadE">Distribution.ReadE</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-ReadE.html#v:ReadE">Distribution.ReadE</a></td></tr><tr><td class="src">readEOrFail</td><td class="module"><a href="Distribution-ReadE.html#v:readEOrFail">Distribution.ReadE</a></td></tr><tr><td class="src">readFile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readGenericPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:readGenericPackageDescription">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">readHookedBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:readHookedBuildInfo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">readIO</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readList</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readLn</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ReadP</td><td class="module"><a href="Distribution-Compat-ReadP.html#t:ReadP">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">readPackageDbList</td><td class="module"><a href="Distribution-Simple-Setup.html#v:readPackageDbList">Distribution.Simple.Setup</a></td></tr><tr><td class="src">readPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:readPackageDescription">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">readParen</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readPToMaybe</td><td class="module"><a href="Distribution-Simple-Setup.html#v:readPToMaybe">Distribution.Simple.Setup</a></td></tr><tr><td class="src">readP_to_E</td><td class="module"><a href="Distribution-ReadE.html#v:readP_to_E">Distribution.ReadE</a></td></tr><tr><td class="src">readP_to_S</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:readP_to_S">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">ReadS</td><td class="module"><a href="Distribution-Compat-ReadP.html#t:ReadS">Distribution.Compat.ReadP</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">reads</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readsPrec</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readS_to_P</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:readS_to_P">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">readTargetInfos</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:readTargetInfos">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">readUserBuildTargets</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:readUserBuildTargets">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">readUTF8File</td><td class="module"><a href="Distribution-Utils-Generic.html#v:readUTF8File">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:readUTF8File">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Real</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">RealFloat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">RealFrac</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">realToFrac</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">RebindableSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:RebindableSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">recache</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:recache">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">recacheInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:recacheInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">recacheMultiInstance</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:recacheMultiInstance">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">recip</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">reconfigurePrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:reconfigurePrograms">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:reconfigurePrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">RecordPuns</td><td class="module"><a href="Language-Haskell-Extension.html#v:RecordPuns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">RecordWildCards</td><td class="module"><a href="Language-Haskell-Extension.html#v:RecordWildCards">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">RecursiveDo</td><td class="module"><a href="Language-Haskell-Extension.html#v:RecursiveDo">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">reexportedModules</td><td class="module"><a href="Distribution-Types-Library.html#v:reexportedModules">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:reexportedModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">reexportedModulesSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:reexportedModulesSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">regArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regGenPkgConf</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regGenPkgConf">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regGenScript</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regGenScript">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:regHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:regHook">Distribution.Simple</a></td></tr><tr><td class="src">regInPlace</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regInPlace">Distribution.Simple.Setup</a></td></tr><tr><td class="src">register</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:register">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:register">Distribution.Simple.Register</a></td></tr><tr><td class="src">registerAllowOverwrite</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:registerAllowOverwrite">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:registerAllowOverwrite">Distribution.Simple.Register</a></td></tr><tr><td class="src">registerCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:registerCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RegisterFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:RegisterFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RegisterFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">registerInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:registerInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">registerMultiInstance</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:registerMultiInstance">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:registerMultiInstance">Distribution.Simple.Register</a></td></tr><tr><td class="src">RegisterOptions</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#t:RegisterOptions">Distribution.Simple.Register</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:RegisterOptions">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:RegisterOptions">Distribution.Simple.Register</a></td></tr><tr><td class="src">registerPackage</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:registerPackage">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:registerPackage">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:registerPackage">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:registerPackage">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:registerPackage">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:registerPackage">Distribution.Simple.Register</a></td></tr><tr><td class="src">registerSuppressFilesCheck</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:registerSuppressFilesCheck">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:registerSuppressFilesCheck">Distribution.Simple.Register</a></td></tr><tr><td class="src">registrationPackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:registrationPackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">regPackageDB</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regPackageDB">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regPrintId</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regPrintId">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RegularPatterns</td><td class="module"><a href="Language-Haskell-Extension.html#v:RegularPatterns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">regVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxDeps</td><td class="module"><a href="Distribution-Simple-Setup.html#t:RelaxDeps">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxDepsAll</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxDepsAll">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxDepsNone</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxDepsNone">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxDepsSome</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxDepsSome">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxedDep</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:RelaxedDep">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxedDep">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxedDepScoped</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxedDepScoped">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxedPolyRec</td><td class="module"><a href="Language-Haskell-Extension.html#v:RelaxedPolyRec">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">relaxPackageDeps</td><td class="module"><a href="Distribution-Simple-Configure.html#v:relaxPackageDeps">Distribution.Simple.Configure</a></td></tr><tr><td class="src">relocatable</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:relocatable">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:relocatable">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">rem</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">removeLowerBound</td><td class="module"><a href="Distribution-Version.html#v:removeLowerBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">removeUpperBound</td><td class="module"><a href="Distribution-Version.html#v:removeUpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">renamingPackageFlagsSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:renamingPackageFlagsSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">renderGhcOptions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:renderGhcOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">repeat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">repl</td><td class="module"><a href="Distribution-Simple-Build.html#v:repl">Distribution.Simple.Build</a></td></tr><tr><td class="src">replCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replExe</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:replExe">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:replExe">Distribution.Simple.GHC</a></td></tr><tr><td class="src">ReplFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:ReplFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:ReplFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replFLib</td><td class="module"><a href="Distribution-Simple-GHC.html#v:replFLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">replHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:replHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:replHook">Distribution.Simple</a></td></tr><tr><td class="src">replicate</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">replLib</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:replLib">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:replLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">replProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replReload</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replReload">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">repoBranch</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoBranch">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoBranch">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoHead</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:RepoHead">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:RepoHead">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoKind</td><td class="module"><a href="Distribution-Types-SourceRepo.html#t:RepoKind">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#t:RepoKind">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoKind</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoKind">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoKind">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoKindUnknown</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:RepoKindUnknown">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:RepoKindUnknown">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoLocation</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoLocation">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoLocation">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoModule</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoModule">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoModule">Distribution.PackageDescription</a></td></tr><tr><td class="src">reportBuildTargetProblems</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:reportBuildTargetProblems">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">reportsNoExt</td><td class="module"><a href="Distribution-Simple-GHC.html#v:reportsNoExt">Distribution.Simple.GHC</a></td></tr><tr><td class="src">reportUserBuildTargetProblems</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:reportUserBuildTargetProblems">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">repoSubdir</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoSubdir">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoSubdir">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoTag</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoTag">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoTag">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoThis</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:RepoThis">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:RepoThis">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoType</td><td class="module"><a href="Distribution-Types-SourceRepo.html#t:RepoType">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#t:RepoType">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoType</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoType">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoType">Distribution.PackageDescription</a></td></tr><tr><td class="src">ReqArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:ReqArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">reqArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:reqArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">reqArg'</td><td class="module"><a href="Distribution-Simple-Command.html#v:reqArg-39-">Distribution.Simple.Command</a></td></tr><tr><td class="src">requiredSignatures</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:requiredSignatures">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">requireProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:requireProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:requireProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">requireProgramVersion</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:requireProgramVersion">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:requireProgramVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">requiresDirDbs</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:requiresDirDbs">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">resolveBuildTargets</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:resolveBuildTargets">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">restoreProgramConfiguration</td><td class="module"><a href="Distribution-Simple-Program.html#v:restoreProgramConfiguration">Distribution.Simple.Program</a></td></tr><tr><td class="src">restoreProgramDb</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:restoreProgramDb">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:restoreProgramDb">Distribution.Simple.Program</a></td></tr><tr><td class="src">RestrictedTypeSynonyms</td><td class="module"><a href="Language-Haskell-Extension.html#v:RestrictedTypeSynonyms">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">restrictKeys</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Result</td><td class="module"><a href="Distribution-TestSuite.html#t:Result">Distribution.TestSuite</a></td></tr><tr><td class="src">return</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">revClosure</td><td class="module"><a href="Distribution-Compat-Graph.html#v:revClosure">Distribution.Compat.Graph</a></td></tr><tr><td class="src">reverse</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">reverseDependencyClosure</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:reverseDependencyClosure">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">reverseTopologicalOrder</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:reverseTopologicalOrder">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">revNeighbors</td><td class="module"><a href="Distribution-Compat-Graph.html#v:revNeighbors">Distribution.Compat.Graph</a></td></tr><tr><td class="src">revTopSort</td><td class="module"><a href="Distribution-Compat-Graph.html#v:revTopSort">Distribution.Compat.Graph</a></td></tr><tr><td class="src">rewriteFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rewriteFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rewriteFileEx</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rewriteFileEx">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Right</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">rnf</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:rnf">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">RoleAnnotations</td><td class="module"><a href="Language-Haskell-Extension.html#v:RoleAnnotations">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">round</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Rs6000</td><td class="module"><a href="Distribution-System.html#v:Rs6000">Distribution.System</a></td></tr><tr><td class="src">run</td><td class="module"><a href="Distribution-TestSuite.html#v:run">Distribution.TestSuite</a></td></tr><tr><td class="src">runCmd</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:runCmd">Distribution.Simple.GHCJS</a></td></tr><tr><td class="src">runDbProgram</td><td class="module"><a href="Distribution-Simple-Program.html#v:runDbProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">runDList</td><td class="module"><a href="Distribution-Compat-DList.html#v:runDList">Distribution.Compat.DList</a></td></tr><tr><td class="src">runGHC</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:runGHC">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">runghcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:runghcProgram">Distribution.Simple.Program.Builtin</a></td></tr><tr><td class="src">runLogProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:runLogProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">runPreProcessor</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:runPreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">runProgram</td><td class="module"><a href="Distribution-Simple-Program.html#v:runProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">runProgramInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:runProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:runProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">runReadE</td><td class="module"><a href="Distribution-ReadE.html#v:runReadE">Distribution.ReadE</a></td></tr><tr><td class="src">runSimplePreProcessor</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:runSimplePreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">runTest</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:runTest">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-ExeV10.html#v:runTest">Distribution.Simple.Test.ExeV10</a></td></tr><tr><td class="src">runTests</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:runTests">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:runTests">Distribution.Simple</a></td></tr><tr><td class="src">S390</td><td class="module"><a href="Distribution-System.html#v:S390">Distribution.System</a></td></tr><tr><td class="src">Safe</td><td class="module"><a href="Language-Haskell-Extension.html#v:Safe">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">SafeImports</td><td class="module"><a href="Language-Haskell-Extension.html#v:SafeImports">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">safeTail</td><td class="module"><a href="Distribution-Utils-Generic.html#v:safeTail">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:safeTail">Distribution.Simple.Utils</a></td></tr><tr><td class="src">satisfy</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:satisfy">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">scaleFloat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">scanl</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">scanl1</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">scanr</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">scanr1</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">SCC</td><td class="module"><a href="Distribution-Compat-Graph.html#t:SCC">Distribution.Compat.Graph</a></td></tr><tr><td class="src">ScopedTypeVariables</td><td class="module"><a href="Language-Haskell-Extension.html#v:ScopedTypeVariables">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">sdist</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:sdist">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">sdistCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sdistCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistDirectory</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistDirectory">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">SDistFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:SDistFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:SDistFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:sDistHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:sDistHook">Distribution.Simple</a></td></tr><tr><td class="src">sDistListSources</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistListSources">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistSnapshot</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistSnapshot">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">searchByName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:searchByName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">searchByNameSubstring</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:searchByNameSubstring">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">SearchResult</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#t:SearchResult">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">Semigroup</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:Semigroup">Distribution.Compat.Semigroup</a>, <a href="Distribution-Compat-Prelude-Internal.html#t:Semigroup">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sepBy</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:sepBy">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">sepBy1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:sepBy1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">seq</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">sequenceA</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:sequenceA">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sequence_</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">setFileExecutable</td><td class="module"><a href="Distribution-Simple-Utils.html#v:setFileExecutable">Distribution.Simple.Utils</a></td></tr><tr><td class="src">setFileOrdinary</td><td class="module"><a href="Distribution-Simple-Utils.html#v:setFileOrdinary">Distribution.Simple.Utils</a></td></tr><tr><td class="src">setOption</td><td class="module"><a href="Distribution-TestSuite.html#v:setOption">Distribution.TestSuite</a></td></tr><tr><td class="src">setProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:setProgramSearchPath">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:setProgramSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">SetupBuildInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">Distribution.Types.SetupBuildInfo</a>, <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-SetupBuildInfo.html#v:SetupBuildInfo">Distribution.Types.SetupBuildInfo</a>, <a href="Distribution-PackageDescription.html#v:SetupBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">setupBuildInfo</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:setupBuildInfo">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:setupBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">setupDepends</td><td class="module"><a href="Distribution-Types-SetupBuildInfo.html#v:setupDepends">Distribution.Types.SetupBuildInfo</a>, <a href="Distribution-PackageDescription.html#v:setupDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">setupMessage</td><td class="module"><a href="Distribution-Simple-Utils.html#v:setupMessage">Distribution.Simple.Utils</a></td></tr><tr><td class="src">setupMessage'</td><td class="module"><a href="Distribution-Backpack-DescribeUnitId.html#v:setupMessage-39-">Distribution.Backpack.DescribeUnitId</a></td></tr><tr><td class="src">SFlags</td><td class="module"><a href="Distribution-Simple-Command.html#t:SFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">SH</td><td class="module"><a href="Distribution-System.html#v:SH">Distribution.System</a></td></tr><tr><td class="src">shapeInstalledPackage</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:shapeInstalledPackage">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">sharedOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:sharedOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:sharedOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">shortRelativePath</td><td class="module"><a href="Distribution-Simple-Utils.html#v:shortRelativePath">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ShortText</td><td class="module"><a href="Distribution-Utils-ShortText.html#t:ShortText">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">Show</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">show</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ShowArgs</td><td class="module"><a href="Distribution-Simple-Command.html#v:ShowArgs">Distribution.Simple.Command</a></td></tr><tr><td class="src">showBuildTarget</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:showBuildTarget">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">showChar</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showCompilerId</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:showCompilerId">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">showCompilerIdWithAbi</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:showCompilerIdWithAbi">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">showComponentName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:showComponentName">Distribution.Types.ComponentName</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:showComponentName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">showFlagValue</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:showFlagValue">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:showFlagValue">Distribution.PackageDescription</a></td></tr><tr><td class="src">showForCabal</td><td class="module"><a href="Distribution-Verbosity.html#v:showForCabal">Distribution.Verbosity</a></td></tr><tr><td class="src">showForGHC</td><td class="module"><a href="Distribution-Verbosity.html#v:showForGHC">Distribution.Verbosity</a></td></tr><tr><td class="src">showGenericPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:showGenericPackageDescription">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">showHookedBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:showHookedBuildInfo">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">showInstalledPackageInfo</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:showInstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">showInstalledPackageInfoField</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:showInstalledPackageInfoField">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">showList</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ShowOrParseArgs</td><td class="module"><a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">Distribution.Simple.Command</a></td></tr><tr><td class="src">showPackageDbList</td><td class="module"><a href="Distribution-Simple-Setup.html#v:showPackageDbList">Distribution.Simple.Setup</a></td></tr><tr><td class="src">showPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:showPackageDescription">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">showParen</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showProfDetailLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:showProfDetailLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ShowS</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">shows</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showSimpleInstalledPackageInfoField</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:showSimpleInstalledPackageInfoField">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">showsPrec</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showString</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showTree</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">showTreeWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">showUserBuildTarget</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:showUserBuildTarget">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">showVersion</td><td class="module"><a href="Distribution-Version.html#v:showVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">signatures</td><td class="module"><a href="Distribution-Types-Library.html#v:signatures">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:signatures">Distribution.PackageDescription</a></td></tr><tr><td class="src">significand</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">signum</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">silent</td><td class="module"><a href="Distribution-Verbosity.html#v:silent">Distribution.Verbosity</a></td></tr><tr><td class="src">Simple</td><td class="module"><a href="Distribution-Types-BuildType.html#v:Simple">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:Simple">Distribution.PackageDescription</a></td></tr><tr><td class="src">simple</td><td class="module"><a href="Distribution-ModuleName.html#v:simple">Distribution.ModuleName</a></td></tr><tr><td class="src">simpleConfiguredProgram</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:simpleConfiguredProgram">Distribution.Simple.Program.Types</a></td></tr><tr><td class="src">simpleGhcEnvironmentFile</td><td class="module"><a href="Distribution-Simple-GHC.html#v:simpleGhcEnvironmentFile">Distribution.Simple.GHC</a></td></tr><tr><td class="src">simpleParse</td><td class="module"><a href="Distribution-Text.html#v:simpleParse">Distribution.Text</a></td></tr><tr><td class="src">simpleProgram</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:simpleProgram">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:simpleProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">simpleProgramInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:simpleProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:simpleProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">simpleTestStub</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:simpleTestStub">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">simpleUserHooks</td><td class="module"><a href="Distribution-Simple.html#v:simpleUserHooks">Distribution.Simple</a></td></tr><tr><td class="src">simplifyCondition</td><td class="module"><a href="Distribution-Types-Condition.html#v:simplifyCondition">Distribution.Types.Condition</a></td></tr><tr><td class="src">simplifyCondTree</td><td class="module"><a href="Distribution-Types-CondTree.html#v:simplifyCondTree">Distribution.Types.CondTree</a></td></tr><tr><td class="src">simplifyDependency</td><td class="module"><a href="Distribution-Types-Dependency.html#v:simplifyDependency">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">simplifyVersionRange</td><td class="module"><a href="Distribution-Version.html#v:simplifyVersionRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">sin</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">singleton</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-DList.html#v:singleton">Distribution.Compat.DList</a></td></tr><tr><td class="src">sinh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">size</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:size">Distribution.Compat.Graph</a></td></tr><tr><td class="src">skipMany</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:skipMany">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">skipMany1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:skipMany1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">skipSpaces</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:skipSpaces">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">skipSpaces1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:skipSpaces1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">smartCopySources</td><td class="module"><a href="Distribution-Simple-Utils.html#v:smartCopySources">Distribution.Simple.Utils</a></td></tr><tr><td class="src">snapshotPackage</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:snapshotPackage">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">snapshotVersion</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:snapshotVersion">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">snd</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">snoc</td><td class="module"><a href="Distribution-Compat-DList.html#v:snoc">Distribution.Compat.DList</a></td></tr><tr><td class="src">Solaris</td><td class="module"><a href="Distribution-System.html#v:Solaris">Distribution.System</a></td></tr><tr><td class="src">some</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:some">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sort</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:sort">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sortBy</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:sortBy">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sourceComponentName</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:sourceComponentName">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">sourceLibName</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:sourceLibName">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">sourcePackageId</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:sourcePackageId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">SourceRepo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-SourceRepo.html#t:SourceRepo">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#t:SourceRepo">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:SourceRepo">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:SourceRepo">Distribution.PackageDescription</a></td></tr><tr><td class="src">sourceRepoFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:sourceRepoFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">sourceRepos</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:sourceRepos">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:sourceRepos">Distribution.PackageDescription</a></td></tr><tr><td class="src">span</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">spanAntitone</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Sparc</td><td class="module"><a href="Distribution-System.html#v:Sparc">Distribution.System</a></td></tr><tr><td class="src">SpecificPackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:SpecificPackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">specVersion</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:specVersion">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:specVersion">Distribution.PackageDescription</a></td></tr><tr><td class="src">specVersionRaw</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:specVersionRaw">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:specVersionRaw">Distribution.PackageDescription</a></td></tr><tr><td class="src">split</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">splitArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:splitArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">splitAt</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">splitLookup</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">splitObjs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:splitObjs">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:splitObjs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">splitRoot</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">sqrt</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">srcPref</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:srcPref">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">stability</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:stability">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:stability">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:stability">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">StandaloneDeriving</td><td class="module"><a href="Language-Haskell-Extension.html#v:StandaloneDeriving">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">startInterpreter</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:startInterpreter">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:startInterpreter">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-Build.html#v:startInterpreter">Distribution.Simple.Build</a></td></tr><tr><td class="src">startsWithBOM</td><td class="module"><a href="Distribution-Utils-Generic.html#v:startsWithBOM">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:startsWithBOM">Distribution.Simple.Utils</a></td></tr><tr><td class="src">staticLibExtension</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:staticLibExtension">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">StaticPointers</td><td class="module"><a href="Language-Haskell-Extension.html#v:StaticPointers">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">stdParse</td><td class="module"><a href="Distribution-Text.html#v:stdParse">Distribution.Text</a></td></tr><tr><td class="src">stepProgress</td><td class="module"><a href="Distribution-Utils-Progress.html#v:stepProgress">Distribution.Utils.Progress</a></td></tr><tr><td class="src">Streaming</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Streaming">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Strict</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Distribution-System.html#v:Strict">Distribution.System</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Language-Haskell-Extension.html#v:Strict">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">StrictData</td><td class="module"><a href="Language-Haskell-Extension.html#v:StrictData">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">String</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">string</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:string">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">stripExe</td><td class="module"><a href="Distribution-Simple-Program-Strip.html#v:stripExe">Distribution.Simple.Program.Strip</a></td></tr><tr><td class="src">stripExes</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:stripExes">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:stripExes">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">stripExtractVersion</td><td class="module"><a href="Distribution-Simple-Program-Internal.html#v:stripExtractVersion">Distribution.Simple.Program.Internal</a></td></tr><tr><td class="src">stripLib</td><td class="module"><a href="Distribution-Simple-Program-Strip.html#v:stripLib">Distribution.Simple.Program.Strip</a></td></tr><tr><td class="src">stripLibs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:stripLibs">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:stripLibs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">stripProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:stripProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:stripProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">stronglyConnComp</td><td class="module"><a href="Distribution-Compat-Graph.html#v:stronglyConnComp">Distribution.Compat.Graph</a></td></tr><tr><td class="src">stubFilePath</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:stubFilePath">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">stubMain</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:stubMain">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">stubName</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:stubName">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">stubWriteLog</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:stubWriteLog">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">subLibraries</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:subLibraries">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:subLibraries">Distribution.PackageDescription</a></td></tr><tr><td class="src">substituteInstallDirTemplates</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:substituteInstallDirTemplates">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">substPathTemplate</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:substPathTemplate">Distribution.Simple.InstallDirs</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:substPathTemplate">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">subtract</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">succ</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">succeedReadE</td><td class="module"><a href="Distribution-ReadE.html#v:succeedReadE">Distribution.ReadE</a></td></tr><tr><td class="src">suiteError</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:suiteError">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">suiteFailed</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:suiteFailed">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">suitePassed</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:suitePassed">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">sum</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:sum">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">summarizePackage</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:summarizePackage">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">summarizeSuiteFinish</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:summarizeSuiteFinish">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">summarizeSuiteStart</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:summarizeSuiteStart">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">summarizeTest</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:summarizeTest">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">supportsDirDbs</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:supportsDirDbs">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">supportsHaskell2010</td><td class="module"><a href="Distribution-Simple-GHC.html#v:supportsHaskell2010">Distribution.Simple.GHC</a></td></tr><tr><td class="src">supportsPkgEnvFiles</td><td class="module"><a href="Distribution-Simple-GHC.html#v:supportsPkgEnvFiles">Distribution.Simple.GHC</a></td></tr><tr><td class="src">suppressFilesCheck</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:suppressFilesCheck">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">suppressOverrideArgs</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:suppressOverrideArgs">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:suppressOverrideArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">SVN</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:SVN">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:SVN">Distribution.PackageDescription</a></td></tr><tr><td class="src">synopsis</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:synopsis">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:synopsis">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:synopsis">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">sysconfdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:sysconfdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">TabsError</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:TabsError">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">tags</td><td class="module"><a href="Distribution-TestSuite.html#v:tags">Distribution.TestSuite</a></td></tr><tr><td class="src">tail</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">take</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">takeWhile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">takeWhileAntitone</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">takeWhileEndLE</td><td class="module"><a href="Distribution-Utils-Generic.html#v:takeWhileEndLE">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:takeWhileEndLE">Distribution.Simple.Utils</a></td></tr><tr><td class="src">tan</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">tanh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">targetBuildDepends</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:targetBuildDepends">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:targetBuildDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">targetCLBI</td><td class="module"><a href="Distribution-Types-TargetInfo.html#v:targetCLBI">Distribution.Types.TargetInfo</a></td></tr><tr><td class="src">targetComponent</td><td class="module"><a href="Distribution-Types-TargetInfo.html#v:targetComponent">Distribution.Types.TargetInfo</a></td></tr><tr><td class="src">TargetInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">Distribution.Types.TargetInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-TargetInfo.html#v:TargetInfo">Distribution.Types.TargetInfo</a></td></tr><tr><td class="src">tarProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:tarProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:tarProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">TempFileOptions</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Utils.html#t:TempFileOptions">Distribution.Simple.Utils</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Utils.html#v:TempFileOptions">Distribution.Simple.Utils</a></td></tr><tr><td class="src">TemplateHaskell</td><td class="module"><a href="Language-Haskell-Extension.html#v:TemplateHaskell">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TemplateHaskellQuotes</td><td class="module"><a href="Language-Haskell-Extension.html#v:TemplateHaskellQuotes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Test</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-TestSuite.html#t:Test">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-TestSuite.html#v:Test">Distribution.TestSuite</a></td></tr><tr><td class="src">test</td><td class="module"><a href="Distribution-Simple-Test.html#v:test">Distribution.Simple.Test</a></td></tr><tr><td class="src">testBuildInfo</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testBuildInfo">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">testCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">TestComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:TestComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:TestComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">testCoverage</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:testCoverage">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">testDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testedWith</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:testedWith">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:testedWith">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:TestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:TestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testGroup</td><td class="module"><a href="Distribution-TestSuite.html#v:testGroup">Distribution.TestSuite</a></td></tr><tr><td class="src">testHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:testHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:testHook">Distribution.Simple</a></td></tr><tr><td class="src">testHumanLog</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testHumanLog">Distribution.Simple.Setup</a></td></tr><tr><td class="src">TestInstance</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-TestSuite.html#t:TestInstance">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-TestSuite.html#v:TestInstance">Distribution.TestSuite</a></td></tr><tr><td class="src">testInterface</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testInterface">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testInterface">Distribution.PackageDescription</a></td></tr><tr><td class="src">testKeepTix</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testKeepTix">Distribution.Simple.Setup</a></td></tr><tr><td class="src">TestLog</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:TestLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">TestLogs</td><td class="module"><a href="Distribution-Simple-Test-Log.html#t:TestLogs">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testLogs</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testLogs">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testMachineLog</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testMachineLog">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testModules</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testModules">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">testModulesAutogen</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testModulesAutogen">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testModulesAutogen">Distribution.PackageDescription</a></td></tr><tr><td class="src">testName</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testName">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testName">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testName">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testOptionsReturned</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testOptionsReturned">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testResult</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testResult">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">TestShowDetails</td><td class="module"><a href="Distribution-Simple-Setup.html#t:TestShowDetails">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testShowDetails</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testShowDetails">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testsRequested</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:testsRequested">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">testStanzaBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testStanzaBuildInfo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">testStanzaMainIs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testStanzaMainIs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">testStanzaTestModule</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testStanzaTestModule">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">testStanzaTestType</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testStanzaTestType">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">TestSuite</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-TestSuite.html#t:TestSuite">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#t:TestSuite">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:TestSuite">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:TestSuite">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestSuiteExeV10</td><td class="module"><a href="Distribution-Types-TestSuiteInterface.html#v:TestSuiteExeV10">Distribution.Types.TestSuiteInterface</a>, <a href="Distribution-PackageDescription.html#v:TestSuiteExeV10">Distribution.PackageDescription</a></td></tr><tr><td class="src">testSuiteFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testSuiteFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">TestSuiteInterface</td><td class="module"><a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">Distribution.Types.TestSuiteInterface</a>, <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestSuiteLibV09</td><td class="module"><a href="Distribution-Types-TestSuiteInterface.html#v:TestSuiteLibV09">Distribution.Types.TestSuiteInterface</a>, <a href="Distribution-PackageDescription.html#v:TestSuiteLibV09">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestSuiteLog</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:TestSuiteLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testSuiteLogPath</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testSuiteLogPath">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testSuiteName</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testSuiteName">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">TestSuiteNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:TestSuiteNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">TestSuiteResultVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:TestSuiteResultVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">testSuites</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:testSuites">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:testSuites">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testSuites">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">TestSuiteStanza</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#t:TestSuiteStanza">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:TestSuiteStanza">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">TestSuiteUnsupported</td><td class="module"><a href="Distribution-Types-TestSuiteInterface.html#v:TestSuiteUnsupported">Distribution.Types.TestSuiteInterface</a>, <a href="Distribution-PackageDescription.html#v:TestSuiteUnsupported">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestType</td><td class="module"><a href="Distribution-Types-TestType.html#t:TestType">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#t:TestType">Distribution.PackageDescription</a></td></tr><tr><td class="src">testType</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testType">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testType">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestTypeExe</td><td class="module"><a href="Distribution-Types-TestType.html#v:TestTypeExe">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#v:TestTypeExe">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestTypeLib</td><td class="module"><a href="Distribution-Types-TestType.html#v:TestTypeLib">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#v:TestTypeLib">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestTypeUnknown</td><td class="module"><a href="Distribution-Types-TestType.html#v:TestTypeUnknown">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#v:TestTypeUnknown">Distribution.PackageDescription</a></td></tr><tr><td class="src">testVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Text</td><td class="module"><a href="Distribution-Text.html#t:Text">Distribution.Text</a></td></tr><tr><td class="src">thisPackageVersion</td><td class="module"><a href="Distribution-Types-Dependency.html#v:thisPackageVersion">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">ThisVersion</td><td class="module"><a href="Distribution-Version.html#v:ThisVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">thisVersion</td><td class="module"><a href="Distribution-Version.html#v:thisVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">tixDir</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:tixDir">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">tixFilePath</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:tixFilePath">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">toAscList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">toConfiguredComponent</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:toConfiguredComponent">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">toConfiguredComponents</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:toConfiguredComponents">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">toDepMap</td><td class="module"><a href="Distribution-Types-DependencyMap.html#v:toDepMap">Distribution.Types.DependencyMap</a></td></tr><tr><td class="src">toDescList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">toEnum</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">toFilePath</td><td class="module"><a href="Distribution-ModuleName.html#v:toFilePath">Distribution.ModuleName</a></td></tr><tr><td class="src">toFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#v:toFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">toGraph</td><td class="module"><a href="Distribution-Compat-Graph.html#v:toGraph">Distribution.Compat.Graph</a></td></tr><tr><td class="src">toInteger</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">toLinkedComponent</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:toLinkedComponent">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">toLinkedComponents</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:toLinkedComponents">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">toList</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:toList">Distribution.Compat.Graph</a></td></tr><tr><td class="src">toLower</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:toLower">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">toMap</td><td class="module"><a href="Distribution-Compat-Graph.html#v:toMap">Distribution.Compat.Graph</a></td></tr><tr><td class="src">toNubList</td><td class="module"><a href="Distribution-Utils-NubList.html#v:toNubList">Distribution.Utils.NubList</a></td></tr><tr><td class="src">toNubListR</td><td class="module"><a href="Distribution-Utils-NubList.html#v:toNubListR">Distribution.Utils.NubList</a></td></tr><tr><td class="src">toPathTemplate</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:toPathTemplate">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">topHandler</td><td class="module"><a href="Distribution-Simple-Utils.html#v:topHandler">Distribution.Simple.Utils</a></td></tr><tr><td class="src">topHandlerWith</td><td class="module"><a href="Distribution-Simple-Utils.html#v:topHandlerWith">Distribution.Simple.Utils</a></td></tr><tr><td class="src">topologicalOrder</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:topologicalOrder">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">topSort</td><td class="module"><a href="Distribution-Compat-Graph.html#v:topSort">Distribution.Compat.Graph</a></td></tr><tr><td class="src">toRational</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">toShortText</td><td class="module"><a href="Distribution-Utils-ShortText.html#v:toShortText">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">toUpper</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:toUpper">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">toUTF8</td><td class="module"><a href="Distribution-Utils-Generic.html#v:toUTF8">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:toUTF8">Distribution.Simple.Utils</a></td></tr><tr><td class="src">toVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:toVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">TraditionalRecordSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:TraditionalRecordSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">transformAllBuildDepends</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:transformAllBuildDepends">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">transformAllBuildInfos</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:transformAllBuildInfos">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">TransformListComp</td><td class="module"><a href="Language-Haskell-Extension.html#v:TransformListComp">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Traversable</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">traverse</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:traverse">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">traverseMaybeWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">traverseWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">traverse_</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:traverse_">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">True</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">trueArg</td><td class="module"><a href="Distribution-Simple-Setup.html#v:trueArg">Distribution.Simple.Setup</a></td></tr><tr><td class="src">truncate</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">trusted</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:trusted">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">Trustworthy</td><td class="module"><a href="Language-Haskell-Extension.html#v:Trustworthy">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">tryFindPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:tryFindPackageDesc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">tryGetConfigStateFile</td><td class="module"><a href="Distribution-Simple-Configure.html#v:tryGetConfigStateFile">Distribution.Simple.Configure</a></td></tr><tr><td class="src">tryGetPersistBuildConfig</td><td class="module"><a href="Distribution-Simple-Configure.html#v:tryGetPersistBuildConfig">Distribution.Simple.Configure</a></td></tr><tr><td class="src">tryIO</td><td class="module"><a href="Distribution-Compat-Exception.html#v:tryIO">Distribution.Compat.Exception</a></td></tr><tr><td class="src">TupleSections</td><td class="module"><a href="Language-Haskell-Extension.html#v:TupleSections">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Typeable</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">TypeApplications</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeApplications">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeFamilies</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeFamilies">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeFamilyDependencies</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeFamilyDependencies">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeInType</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeInType">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeOperators</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeOperators">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeSynonymInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeSynonymInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">UHC</td><td class="module"><a href="Distribution-Compiler.html#v:UHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">uhcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:uhcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:uhcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">unAbiHash</td><td class="module"><a href="Distribution-Types-AbiHash.html#v:unAbiHash">Distribution.Types.AbiHash</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unAllowNewer</td><td class="module"><a href="Distribution-Simple-Setup.html#v:unAllowNewer">Distribution.Simple.Setup</a></td></tr><tr><td class="src">unAllowOlder</td><td class="module"><a href="Distribution-Simple-Setup.html#v:unAllowOlder">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Unambiguous</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:Unambiguous">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">UnboxedTuples</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnboxedTuples">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">unComponentId</td><td class="module"><a href="Distribution-Types-ComponentId.html#v:unComponentId">Distribution.Types.ComponentId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unconfigureProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:unconfigureProgram">Distribution.Simple.Program.Db</a></td></tr><tr><td class="src">uncurry</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">UndecidableInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:UndecidableInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">UndecidableSuperClasses</td><td class="module"><a href="Language-Haskell-Extension.html#v:UndecidableSuperClasses">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">undefined</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unDefUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:unDefUnitId">Distribution.Types.UnitId</a>, <a href="Distribution-Backpack.html#v:unDefUnitId">Distribution.Backpack</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unFlagName</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:unFlagName">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:unFlagName">Distribution.PackageDescription</a></td></tr><tr><td class="src">unfoldr</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:unfoldr">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">UnicodeSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnicodeSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">unifiedIPIDRequired</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:unifiedIPIDRequired">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">unintersperse</td><td class="module"><a href="Distribution-Utils-Generic.html#v:unintersperse">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:unintersperse">Distribution.Simple.Utils</a></td></tr><tr><td class="src">union</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Program-Hpc.html#v:union">Distribution.Simple.Program.Hpc</a></td></tr><tr><td class="src">unionLeft</td><td class="module"><a href="Distribution-Compat-Graph.html#v:unionLeft">Distribution.Compat.Graph</a></td></tr><tr><td class="src">unionRight</td><td class="module"><a href="Distribution-Compat-Graph.html#v:unionRight">Distribution.Compat.Graph</a></td></tr><tr><td class="src">unions</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">unionsWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">unionVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:unionVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">UnionVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:UnionVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">unionVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:unionVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">unionWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">unionWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">UnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#t:UnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unitIdSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:unitIdSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">unitIdTarget</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:unitIdTarget">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">unitIdTarget'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:unitIdTarget-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">UnknownBuildType</td><td class="module"><a href="Distribution-Types-BuildType.html#v:UnknownBuildType">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:UnknownBuildType">Distribution.PackageDescription</a></td></tr><tr><td class="src">unknownCompilerInfo</td><td class="module"><a href="Distribution-Compiler.html#v:unknownCompilerInfo">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">UnknownExtension</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnknownExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">UnknownLanguage</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnknownLanguage">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">UnknownLicense</td><td class="module"><a href="Distribution-License.html#v:UnknownLicense">Distribution.License</a>, <a href="Distribution-Make.html#v:UnknownLicense">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">unless</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:unless">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">UnliftedFFITypes</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnliftedFFITypes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">unlines</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unlit</td><td class="module"><a href="Distribution-Simple-PreProcess-Unlit.html#v:unlit">Distribution.Simple.PreProcess.Unlit</a></td></tr><tr><td class="src">unMungedPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#v:unMungedPackageName">Distribution.Types.MungedPackageName</a></td></tr><tr><td class="src">unPackageName</td><td class="module"><a href="Distribution-Types-PackageName.html#v:unPackageName">Distribution.Types.PackageName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unPkgconfigName</td><td class="module"><a href="Distribution-Types-PkgconfigName.html#v:unPkgconfigName">Distribution.Types.PkgconfigName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">UnqualComponentName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">unqualComponentNameToPackageName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#v:unqualComponentNameToPackageName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">unregHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:unregHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:unregHook">Distribution.Simple</a></td></tr><tr><td class="src">unregister</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:unregister">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:unregister">Distribution.Simple.Register</a></td></tr><tr><td class="src">unregisterCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:unregisterCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">unregisterInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:unregisterInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">Unsafe</td><td class="module"><a href="Language-Haskell-Extension.html#v:Unsafe">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">unsafeMkDefUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:unsafeMkDefUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">UnspecifiedLicense</td><td class="module"><a href="Distribution-License.html#v:UnspecifiedLicense">Distribution.License</a>, <a href="Distribution-Make.html#v:UnspecifiedLicense">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">unsupportedExtensions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:unsupportedExtensions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">unsupportedLanguages</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:unsupportedLanguages">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">until</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:unUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unUnqualComponentName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#v:unUnqualComponentName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">unwords</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unzip</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unzip3</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">update</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateAt</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateLookupWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateMaxWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateMinWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updatePackageDescription</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:updatePackageDescription">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:updatePackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">updateProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:updateProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:updateProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">updateWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">UpperBound</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Version.html#t:UpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Version.html#v:UpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">usageAlternatives</td><td class="module"><a href="Distribution-Simple-Command.html#v:usageAlternatives">Distribution.Simple.Command</a></td></tr><tr><td class="src">usageDefault</td><td class="module"><a href="Distribution-Simple-Command.html#v:usageDefault">Distribution.Simple.Command</a></td></tr><tr><td class="src">usedExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:usedExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:usedExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">userBug</td><td class="module"><a href="Distribution-PackageDescription-Utils.html#v:userBug">Distribution.PackageDescription.Utils</a></td></tr><tr><td class="src">UserBuildTarget</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">UserBuildTargetProblem</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">UserBuildTargetUnrecognised</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:UserBuildTargetUnrecognised">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">userError</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">UserHooks</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-UserHooks.html#t:UserHooks">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#t:UserHooks">Distribution.Simple</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:UserHooks">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:UserHooks">Distribution.Simple</a></td></tr><tr><td class="src">userMaybeSpecifyPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userMaybeSpecifyPath">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userMaybeSpecifyPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">UserPackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:UserPackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">UserSpecified</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:UserSpecified">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:UserSpecified">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifiedArgs</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifiedArgs">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifiedArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifyArgs</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifyArgs">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifyArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifyArgss</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifyArgss">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifyArgss">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifyPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifyPath">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifyPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifyPaths</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifyPaths">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifyPaths">Distribution.Simple.Program</a></td></tr><tr><td class="src">valid</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">validModuleComponent</td><td class="module"><a href="Distribution-ModuleName.html#v:validModuleComponent">Distribution.ModuleName</a></td></tr><tr><td class="src">Vanilla</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:Vanilla">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">Var</td><td class="module"><a href="Distribution-Types-Condition.html#v:Var">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:Var">Distribution.PackageDescription</a></td></tr><tr><td class="src">Vax</td><td class="module"><a href="Distribution-System.html#v:Vax">Distribution.System</a></td></tr><tr><td class="src">verbose</td><td class="module"><a href="Distribution-Verbosity.html#v:verbose">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseCallSite</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseCallSite">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseCallStack</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseCallStack">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseHasFlags</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseHasFlags">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseMarkOutput</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseMarkOutput">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseNoFlags</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseNoFlags">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseNoWrap</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseNoWrap">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseUnmarkOutput</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseUnmarkOutput">Distribution.Verbosity</a></td></tr><tr><td class="src">Verbosity</td><td class="module"><a href="Distribution-Verbosity.html#t:Verbosity">Distribution.Verbosity</a></td></tr><tr><td class="src">Version</td><td class="module"><a href="Distribution-Version.html#t:Version">Distribution.Version</a>, <a href="Distribution-Make.html#t:Version">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">VersionInterval</td><td class="module"><a href="Distribution-Version.html#t:VersionInterval">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">VersionIntervals</td><td class="module"><a href="Distribution-Version.html#t:VersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">versionIntervals</td><td class="module"><a href="Distribution-Version.html#v:versionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">versionNumbers</td><td class="module"><a href="Distribution-Version.html#v:versionNumbers">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">VersionRange</td><td class="module"><a href="Distribution-Version.html#t:VersionRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">VersionRangeParens</td><td class="module"><a href="Distribution-Version.html#v:VersionRangeParens">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">viewAsFieldDescr</td><td class="module"><a href="Distribution-Simple-Command.html#v:viewAsFieldDescr">Distribution.Simple.Command</a></td></tr><tr><td class="src">ViewPatterns</td><td class="module"><a href="Language-Haskell-Extension.html#v:ViewPatterns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">void</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:void">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">warn</td><td class="module"><a href="Distribution-Simple-Utils.html#v:warn">Distribution.Simple.Utils</a></td></tr><tr><td class="src">warnProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:warnProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">Way</td><td class="module"><a href="Distribution-Simple-Hpc.html#t:Way">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">when</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:when">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">WildcardVersion</td><td class="module"><a href="Distribution-Version.html#v:WildcardVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Windows</td><td class="module"><a href="Distribution-System.html#v:Windows">Distribution.System</a></td></tr><tr><td class="src">withAllComponentsInBuildOrder</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withAllComponentsInBuildOrder">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withAllTargetsInBuildOrder</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withAllTargetsInBuildOrder">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">withAllTargetsInBuildOrder'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withAllTargetsInBuildOrder-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">withBenchLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withBenchLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withBenchmark</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withBenchmark">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:withBenchmark">Distribution.PackageDescription</a></td></tr><tr><td class="src">WithCallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#t:WithCallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">withComponentsInBuildOrder</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withComponentsInBuildOrder">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withComponentsLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withComponentsLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withDebugInfo</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withDebugInfo">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withDebugInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withDynExe</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withDynExe">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withDynExe">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withExe</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withExe">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:withExe">Distribution.PackageDescription</a></td></tr><tr><td class="src">withExeLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withExeLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withFileContents</td><td class="module"><a href="Distribution-Utils-Generic.html#v:withFileContents">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:withFileContents">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withForeignLib</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withForeignLib">Distribution.Types.PackageDescription</a></td></tr><tr><td class="src">withFrozenCallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#v:withFrozenCallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">withGHCiLib</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withGHCiLib">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withGHCiLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withinIntervals</td><td class="module"><a href="Distribution-Version.html#v:withinIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">withinRange</td><td class="module"><a href="Distribution-Version.html#v:withinRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">withinVersion</td><td class="module"><a href="Distribution-Version.html#v:withinVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">withLexicalCallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#v:withLexicalCallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">withLib</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withLib">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:withLib">Distribution.PackageDescription</a></td></tr><tr><td class="src">withLibLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withLibLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withNeededTargetsInBuildOrder</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withNeededTargetsInBuildOrder">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">withNeededTargetsInBuildOrder'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withNeededTargetsInBuildOrder-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">withOptimization</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withOptimization">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withOptimization">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withoutKeys</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">withPackageDB</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withPackageDB">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withPackageDB">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withProfExe</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withProfExe">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withProfExe">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withProfExeDetail</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withProfExeDetail">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withProfExeDetail">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withProfLib</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withProfLib">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withProfLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withProfLibDetail</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withProfLibDetail">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withProfLibDetail">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withPrograms</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withPrograms">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withPrograms">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withSharedLib</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withSharedLib">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withSharedLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withTempDirectory</td><td class="module"><a href="Distribution-Simple-Utils.html#v:withTempDirectory">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withTempDirectoryEx</td><td class="module"><a href="Distribution-Simple-Utils.html#v:withTempDirectoryEx">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withTempFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:withTempFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withTempFileEx</td><td class="module"><a href="Distribution-Simple-Utils.html#v:withTempFileEx">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withTest</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withTest">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:withTest">Distribution.PackageDescription</a></td></tr><tr><td class="src">withTestLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withTestLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withUTF8FileContents</td><td class="module"><a href="Distribution-Utils-Generic.html#v:withUTF8FileContents">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:withUTF8FileContents">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withVanillaLib</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withVanillaLib">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withVanillaLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">Word</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Word16</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word16">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Word32</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word32">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Word64</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word64">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Word8</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word8">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">words</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">wrapLine</td><td class="module"><a href="Distribution-Utils-Generic.html#v:wrapLine">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:wrapLine">Distribution.Simple.Utils</a></td></tr><tr><td class="src">wrapText</td><td class="module"><a href="Distribution-Utils-Generic.html#v:wrapText">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:wrapText">Distribution.Simple.Utils</a></td></tr><tr><td class="src">writeAutogenFiles</td><td class="module"><a href="Distribution-Simple-Build.html#v:writeAutogenFiles">Distribution.Simple.Build</a></td></tr><tr><td class="src">writeFile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">writeFileAtomic</td><td class="module"><a href="Distribution-Utils-Generic.html#v:writeFileAtomic">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:writeFileAtomic">Distribution.Simple.Utils</a></td></tr><tr><td class="src">writeGenericPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:writeGenericPackageDescription">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">writeGhcEnvironmentFile</td><td class="module"><a href="Distribution-Simple-GHC.html#v:writeGhcEnvironmentFile">Distribution.Simple.GHC</a></td></tr><tr><td class="src">writeHookedBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:writeHookedBuildInfo">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">writePackageDescription</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:writePackageDescription">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">writePersistBuildConfig</td><td class="module"><a href="Distribution-Simple-Configure.html#v:writePersistBuildConfig">Distribution.Simple.Configure</a></td></tr><tr><td class="src">writeSimpleTestStub</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:writeSimpleTestStub">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">writeUTF8File</td><td class="module"><a href="Distribution-Utils-Generic.html#v:writeUTF8File">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:writeUTF8File">Distribution.Simple.Utils</a></td></tr><tr><td class="src">X86_64</td><td class="module"><a href="Distribution-System.html#v:X86_64">Distribution.System</a></td></tr><tr><td class="src">xargs</td><td class="module"><a href="Distribution-Simple-Utils.html#v:xargs">Distribution.Simple.Utils</a></td></tr><tr><td class="src">XmlSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:XmlSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">YHC</td><td class="module"><a href="Distribution-Compiler.html#v:YHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">zip</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">zip3</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">zipWith</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">zipWith3</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">\\</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">^</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">^^</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">||</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-B.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - B)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - B</p><table><tr><td class="src">backpackSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:backpackSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">BangPatterns</td><td class="module"><a href="Language-Haskell-Extension.html#v:BangPatterns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Bazaar</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Bazaar">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Bazaar">Distribution.PackageDescription</a></td></tr><tr><td class="src">bench</td><td class="module"><a href="Distribution-Simple-Bench.html#v:bench">Distribution.Simple.Bench</a></td></tr><tr><td class="src">BenchComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:BenchComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:BenchComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">benchHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:benchHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:benchHook">Distribution.Simple</a></td></tr><tr><td class="src">Benchmark</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Benchmark.html#t:Benchmark">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#t:Benchmark">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:Benchmark">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:Benchmark">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkBuildInfo</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkBuildInfo">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:benchmarkCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">benchmarkDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:benchmarkDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">BenchmarkExeV10</td><td class="module"><a href="Distribution-Types-BenchmarkInterface.html#v:BenchmarkExeV10">Distribution.Types.BenchmarkInterface</a>, <a href="Distribution-PackageDescription.html#v:BenchmarkExeV10">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">BenchmarkFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:BenchmarkFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:BenchmarkFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">BenchmarkInterface</td><td class="module"><a href="Distribution-Types-BenchmarkInterface.html#t:BenchmarkInterface">Distribution.Types.BenchmarkInterface</a>, <a href="Distribution-PackageDescription.html#t:BenchmarkInterface">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkInterface</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkInterface">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkInterface">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkModules</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkModules">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkModulesAutogen</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkModulesAutogen">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkModulesAutogen">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkName</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkName">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkName">Distribution.PackageDescription</a></td></tr><tr><td class="src">BenchmarkNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:BenchmarkNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">benchmarkOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:benchmarkOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">benchmarks</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:benchmarks">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:benchmarks">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarksRequested</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:benchmarksRequested">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">BenchmarkStanza</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#t:BenchmarkStanza">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:BenchmarkStanza">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">benchmarkStanzaBenchmarkModule</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkStanzaBenchmarkModule">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">benchmarkStanzaBenchmarkType</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkStanzaBenchmarkType">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">benchmarkStanzaBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkStanzaBuildInfo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">benchmarkStanzaMainIs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:benchmarkStanzaMainIs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">BenchmarkType</td><td class="module"><a href="Distribution-Types-BenchmarkType.html#t:BenchmarkType">Distribution.Types.BenchmarkType</a>, <a href="Distribution-PackageDescription.html#t:BenchmarkType">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkType</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:benchmarkType">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:benchmarkType">Distribution.PackageDescription</a></td></tr><tr><td class="src">BenchmarkTypeExe</td><td class="module"><a href="Distribution-Types-BenchmarkType.html#v:BenchmarkTypeExe">Distribution.Types.BenchmarkType</a>, <a href="Distribution-PackageDescription.html#v:BenchmarkTypeExe">Distribution.PackageDescription</a></td></tr><tr><td class="src">BenchmarkTypeUnknown</td><td class="module"><a href="Distribution-Types-BenchmarkType.html#v:BenchmarkTypeUnknown">Distribution.Types.BenchmarkType</a>, <a href="Distribution-PackageDescription.html#v:BenchmarkTypeUnknown">Distribution.PackageDescription</a></td></tr><tr><td class="src">BenchmarkUnsupported</td><td class="module"><a href="Distribution-Types-BenchmarkInterface.html#v:BenchmarkUnsupported">Distribution.Types.BenchmarkInterface</a>, <a href="Distribution-PackageDescription.html#v:BenchmarkUnsupported">Distribution.PackageDescription</a></td></tr><tr><td class="src">benchmarkVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:benchmarkVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">between</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:between">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">betweenVersionsInclusive</td><td class="module"><a href="Distribution-Version.html#v:betweenVersionsInclusive">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Binary</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Binary">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">BinaryLiterals</td><td class="module"><a href="Language-Haskell-Extension.html#v:BinaryLiterals">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">bindir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:bindir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">BindirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:BindirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">binfoFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:binfoFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">Bool</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">BooleanFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#t:BooleanFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">BoolOpt</td><td class="module"><a href="Distribution-Simple-Command.html#v:BoolOpt">Distribution.Simple.Command</a></td></tr><tr><td class="src">boolOpt</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Command.html#v:boolOpt">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:boolOpt">Distribution.Simple.Setup</a></td></tr><tr><td class="src">boolOpt'</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Command.html#v:boolOpt-39-">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:boolOpt-39-">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Bound</td><td class="module"><a href="Distribution-Version.html#t:Bound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Bounded</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">break</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">broken</td><td class="module"><a href="Distribution-Compat-Graph.html#v:broken">Distribution.Compat.Graph</a></td></tr><tr><td class="src">brokenPackages</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:brokenPackages">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">BSD2</td><td class="module"><a href="Distribution-License.html#v:BSD2">Distribution.License</a>, <a href="Distribution-Make.html#v:BSD2">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">BSD3</td><td class="module"><a href="Distribution-License.html#v:BSD3">Distribution.License</a>, <a href="Distribution-Make.html#v:BSD3">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">BSD4</td><td class="module"><a href="Distribution-License.html#v:BSD4">Distribution.License</a>, <a href="Distribution-Make.html#v:BSD4">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">bugReports</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:bugReports">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:bugReports">Distribution.PackageDescription</a></td></tr><tr><td class="src">build</td><td class="module"><a href="Distribution-Simple-Build.html#v:build">Distribution.Simple.Build</a></td></tr><tr><td class="src">buildable</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:buildable">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:buildable">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildArch</td><td class="module"><a href="Distribution-System.html#v:buildArch">Distribution.System</a></td></tr><tr><td class="src">buildArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildCompilerFlavor</td><td class="module"><a href="Distribution-Compiler.html#v:buildCompilerFlavor">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">buildCompilerId</td><td class="module"><a href="Distribution-Compiler.html#v:buildCompilerId">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">buildDepends</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:buildDepends">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:buildDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildDir</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:buildDir">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:buildDir">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">buildDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildExe</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:buildExe">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:buildExe">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:buildExe">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:buildExe">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:buildExe">Distribution.Simple.GHC</a></td></tr><tr><td class="src">BuildFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:BuildFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:BuildFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildFLib</td><td class="module"><a href="Distribution-Simple-GHC.html#v:buildFLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">buildHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:buildHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:buildHook">Distribution.Simple</a></td></tr><tr><td class="src">BuildInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#t:BuildInfo">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#t:BuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:BuildInfo">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:BuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildInfo</td><td class="module"><a href="Distribution-Types-Executable.html#v:buildInfo">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:buildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildLib</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:buildLib">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:buildLib">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:buildLib">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:buildLib">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:buildLib">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:buildLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">buildNumJobs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildNumJobs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildOS</td><td class="module"><a href="Distribution-System.html#v:buildOS">Distribution.System</a></td></tr><tr><td class="src">buildPlatform</td><td class="module"><a href="Distribution-System.html#v:buildPlatform">Distribution.System</a></td></tr><tr><td class="src">buildProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">BuildTarget</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:BuildTarget">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetAmbiguous</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetAmbiguous">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetComponent</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetComponent">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">buildTargetComponentName</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:buildTargetComponentName">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetExpected</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetExpected">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetFile</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetFile">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetModule</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetModule">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetNoSuch</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:BuildTargetNoSuch">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">BuildTargetProblem</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:BuildTargetProblem">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">buildToolDepends</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:buildToolDepends">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:buildToolDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildTools</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:buildTools">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:buildTools">Distribution.PackageDescription</a></td></tr><tr><td class="src">BuildType</td><td class="module"><a href="Distribution-Types-BuildType.html#t:BuildType">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#t:BuildType">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildType</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:buildType">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:buildType">Distribution.PackageDescription</a></td></tr><tr><td class="src">buildVerbose</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildVerbose">Distribution.Simple.Setup</a></td></tr><tr><td class="src">buildVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:buildVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">builtinPrograms</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:builtinPrograms">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:builtinPrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">byteSwap16</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">byteSwap32</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">byteSwap64</td><td class="module">Distribution.Compat.Binary</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-C.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - C)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - C</p><table><tr><td class="src">C</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:C">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">c2hsProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:c2hsProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:c2hsProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">cabalBug</td><td class="module"><a href="Distribution-PackageDescription-Utils.html#v:cabalBug">Distribution.PackageDescription.Utils</a></td></tr><tr><td class="src">cabalVersion</td><td class="module"><a href="Distribution-Simple-Utils.html#v:cabalVersion">Distribution.Simple.Utils</a></td></tr><tr><td class="src">calibrateMtimeChangeDelay</td><td class="module"><a href="Distribution-Compat-Time.html#v:calibrateMtimeChangeDelay">Distribution.Compat.Time</a></td></tr><tr><td class="src">CallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#t:CallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">callStack</td><td class="module"><a href="Distribution-Compat-Stack.html#v:callStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">CAnd</td><td class="module"><a href="Distribution-Types-Condition.html#v:CAnd">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:CAnd">Distribution.PackageDescription</a></td></tr><tr><td class="src">cAnd</td><td class="module"><a href="Distribution-Types-Condition.html#v:cAnd">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:cAnd">Distribution.PackageDescription</a></td></tr><tr><td class="src">CApiFFI</td><td class="module"><a href="Language-Haskell-Extension.html#v:CApiFFI">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">catchExit</td><td class="module"><a href="Distribution-Compat-Exception.html#v:catchExit">Distribution.Compat.Exception</a></td></tr><tr><td class="src">catchIO</td><td class="module"><a href="Distribution-Compat-Exception.html#v:catchIO">Distribution.Compat.Exception</a></td></tr><tr><td class="src">category</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:category">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:category">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:category">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">catMaybes</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:catMaybes">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">CBench</td><td class="module"><a href="Distribution-Types-Component.html#v:CBench">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CBench">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CBenchName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CBenchName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CBenchName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CBenchName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ccLdOptionsBuildInfo</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ccLdOptionsBuildInfo">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ccOptions</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:ccOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:ccOptions">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ccOptions">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">cc_ann_id</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_ann_id">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_cid</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_cid">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_component</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_component">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_exe_deps</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_exe_deps">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_includes</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_includes">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_name</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_name">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_pkgid</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_pkgid">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">cc_public</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:cc_public">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">CDialect</td><td class="module"><a href="Distribution-Simple-CCompiler.html#t:CDialect">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">cDialectFilenameExtension</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:cDialectFilenameExtension">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">ceiling</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">CExe</td><td class="module"><a href="Distribution-Types-Component.html#v:CExe">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CExe">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CExeName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CExeName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CExeName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CExeName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CFLib</td><td class="module"><a href="Distribution-Types-Component.html#v:CFLib">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CFLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CFLibName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CFLibName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CFLibName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CFLibName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">chainl</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:chainl">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">chainl1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:chainl1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">chainr</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:chainr">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">chainr1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:chainr1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">Char</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">char</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:char">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">chattyTry</td><td class="module"><a href="Distribution-Simple-Utils.html#v:chattyTry">Distribution.Simple.Utils</a></td></tr><tr><td class="src">checkConfiguredPackage</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkConfiguredPackage">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkForeignDeps</td><td class="module"><a href="Distribution-Simple-Configure.html#v:checkForeignDeps">Distribution.Simple.Configure</a></td></tr><tr><td class="src">checkPackage</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkPackage">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkPackageContent</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkPackageContent">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">CheckPackageContentOps</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-PackageDescription-Check.html#t:CheckPackageContentOps">Distribution.PackageDescription.Check</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:CheckPackageContentOps">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkPackageFileNames</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkPackageFileNames">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkPackageFiles</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:checkPackageFiles">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">checkPersistBuildConfigOutdated</td><td class="module"><a href="Distribution-Simple-Configure.html#v:checkPersistBuildConfigOutdated">Distribution.Simple.Configure</a></td></tr><tr><td class="src">choice</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:choice">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">ChoiceOpt</td><td class="module"><a href="Distribution-Simple-Command.html#v:ChoiceOpt">Distribution.Simple.Command</a></td></tr><tr><td class="src">choiceOpt</td><td class="module"><a href="Distribution-Simple-Command.html#v:choiceOpt">Distribution.Simple.Command</a></td></tr><tr><td class="src">choiceOptFromEnum</td><td class="module"><a href="Distribution-Simple-Command.html#v:choiceOptFromEnum">Distribution.Simple.Command</a></td></tr><tr><td class="src">chr</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:chr">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">ci_ann_id</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_ann_id">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_cname</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_cname">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_id</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_id">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_implicit</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_implicit">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_pkgid</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_pkgid">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ci_renaming</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ci_renaming">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">ClassificationStrictness</td><td class="module"><a href="Distribution-System.html#t:ClassificationStrictness">Distribution.System</a></td></tr><tr><td class="src">classifyArch</td><td class="module"><a href="Distribution-System.html#v:classifyArch">Distribution.System</a></td></tr><tr><td class="src">classifyCompilerFlavor</td><td class="module"><a href="Distribution-Compiler.html#v:classifyCompilerFlavor">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">classifyExtension</td><td class="module"><a href="Language-Haskell-Extension.html#v:classifyExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">classifyLanguage</td><td class="module"><a href="Language-Haskell-Extension.html#v:classifyLanguage">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">classifyOS</td><td class="module"><a href="Distribution-System.html#v:classifyOS">Distribution.System</a></td></tr><tr><td class="src">classifyRepoKind</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:classifyRepoKind">Distribution.Types.SourceRepo</a></td></tr><tr><td class="src">classifyRepoType</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:classifyRepoType">Distribution.Types.SourceRepo</a></td></tr><tr><td class="src">cleanCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:cleanCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">cleanDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:cleanDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">CleanFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:CleanFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:CleanFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">cleanHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:cleanHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:cleanHook">Distribution.Simple</a></td></tr><tr><td class="src">cleanSaveConf</td><td class="module"><a href="Distribution-Simple-Setup.html#v:cleanSaveConf">Distribution.Simple.Setup</a></td></tr><tr><td class="src">cleanVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:cleanVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">CLib</td><td class="module"><a href="Distribution-Types-Component.html#v:CLib">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CLibName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CLibName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CLibName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CLibName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">closure</td><td class="module"><a href="Distribution-Compat-Graph.html#v:closure">Distribution.Compat.Graph</a></td></tr><tr><td class="src">CNot</td><td class="module"><a href="Distribution-Types-Condition.html#v:CNot">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:CNot">Distribution.PackageDescription</a></td></tr><tr><td class="src">cNot</td><td class="module"><a href="Distribution-Types-Condition.html#v:cNot">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:cNot">Distribution.PackageDescription</a></td></tr><tr><td class="src">combineInstallDirs</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:combineInstallDirs">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">combineObjectFiles</td><td class="module"><a href="Distribution-Simple-Program-Ld.html#v:combineObjectFiles">Distribution.Simple.Program.Ld</a></td></tr><tr><td class="src">combinePathTemplate</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:combinePathTemplate">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">Command</td><td class="module"><a href="Distribution-Simple-Command.html#t:Command">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandAddAction</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandAddAction">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandDefaultFlags</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandDefaultFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandDescription</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandDescription">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandErrors</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandErrors">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandFromSpec</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandFromSpec">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandHelp</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandHelp">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandList</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandList">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandName</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandName">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandNotes</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandNotes">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandOptions</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandOptions">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandParse</td><td class="module"><a href="Distribution-Simple-Command.html#t:CommandParse">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandParseArgs</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandParseArgs">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandReadyToGo</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandReadyToGo">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandShowOptions</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandShowOptions">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandSpec</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Command.html#t:CommandSpec">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandSpec">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandsRun</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandsRun">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandSynopsis</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandSynopsis">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandType</td><td class="module"><a href="Distribution-Simple-Command.html#t:CommandType">Distribution.Simple.Command</a></td></tr><tr><td class="src">CommandUI</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Command.html#t:CommandUI">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Command.html#v:CommandUI">Distribution.Simple.Command</a></td></tr><tr><td class="src">commandUsage</td><td class="module"><a href="Distribution-Simple-Command.html#v:commandUsage">Distribution.Simple.Command</a></td></tr><tr><td class="src">compare</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">comparing</td><td class="module"><a href="Distribution-Utils-Generic.html#v:comparing">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:comparing">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Compat</td><td class="module"><a href="Distribution-System.html#v:Compat">Distribution.System</a></td></tr><tr><td class="src">compatPackageKey</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:compatPackageKey">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">Compiler</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:Compiler">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:Compiler">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compiler</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:compiler">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:compiler">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:compiler">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">compilerAbiTag</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerAbiTag">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerCompat</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerCompat">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerCompatFlavor</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerCompatFlavor">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerCompatVersion</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerCompatVersion">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerExtensions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerExtensions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">CompilerFlavor</td><td class="module"><a href="Distribution-Compiler.html#t:CompilerFlavor">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerFlavor</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerFlavor">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">CompilerId</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compiler.html#t:CompilerId">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compiler.html#v:CompilerId">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerId</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerId">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">CompilerInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compiler.html#t:CompilerInfo">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compiler.html#v:CompilerInfo">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerInfoAbiTag</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoAbiTag">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfoCompat</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoCompat">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfoExtensions</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoExtensions">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfoId</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoId">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerInfoLanguages</td><td class="module"><a href="Distribution-Compiler.html#v:compilerInfoLanguages">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">compilerLanguages</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerLanguages">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerProperties</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerProperties">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">compilerTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:compilerTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">CompilerVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:CompilerVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">compilerVersion</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:compilerVersion">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">Component</td><td class="module"><a href="Distribution-Types-Component.html#t:Component">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentBuildable</td><td class="module"><a href="Distribution-Types-Component.html#v:componentBuildable">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentBuildable">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentBuildDir</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:componentBuildDir">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentBuildInfo</td><td class="module"><a href="Distribution-Types-Component.html#v:componentBuildInfo">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentCcGhcOptions</td><td class="module"><a href="Distribution-Simple-GHC.html#v:componentCcGhcOptions">Distribution.Simple.GHC</a></td></tr><tr><td class="src">componentCompatPackageKey</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentCompatPackageKey">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentCompatPackageKey">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentCompatPackageName</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentCompatPackageName">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentCompatPackageName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentComponentId</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentComponentId">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentComponentId">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentCycleMsg</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#v:componentCycleMsg">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">ComponentDisabledReason</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentDisabledReason">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">componentDisabledReason</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:componentDisabledReason">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">componentEnabled</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:componentEnabled">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">componentEnabledSpec</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentEnabledSpec">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentEnabledSpec">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentExeDeps</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentExeDeps">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentExeDeps">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentExposedModules</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentExposedModules">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentExposedModules">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentGhcOptions</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:componentGhcOptions">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:componentGhcOptions">Distribution.Simple.GHC</a></td></tr><tr><td class="src">componentGraph</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentGraph">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentGraph">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentId</td><td class="module"><a href="Distribution-Types-ComponentId.html#t:ComponentId">Distribution.Types.ComponentId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">ComponentInclude</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#t:ComponentInclude">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ComponentInclude.html#v:ComponentInclude">Distribution.Types.ComponentInclude</a></td></tr><tr><td class="src">componentIncludes</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentIncludes">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentIncludes">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentInitialBuildSteps</td><td class="module"><a href="Distribution-Simple-Build.html#v:componentInitialBuildSteps">Distribution.Simple.Build</a></td></tr><tr><td class="src">componentInstantiatedWith</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentInstantiatedWith">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentInstantiatedWith">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentInternalDeps</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentInternalDeps">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentInternalDeps">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentIsIndefinite</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentIsIndefinite">Distribution.Types.ComponentLocalBuildInfo</a></td></tr><tr><td class="src">componentIsIndefinite_</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentIsIndefinite_">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentIsIndefinite_">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentIsPublic</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentIsPublic">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentIsPublic">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#t:ComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentLocalName</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentLocalName">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentLocalName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentName</td><td class="module"><a href="Distribution-Types-ComponentName.html#t:ComponentName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#t:ComponentName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentName</td><td class="module"><a href="Distribution-Types-Component.html#v:componentName">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameCLBIs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentNameCLBIs">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameMap</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentNameMap">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentNameMap">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameRequested</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:componentNameRequested">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">componentNameStanza</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:componentNameStanza">Distribution.Types.ComponentName</a></td></tr><tr><td class="src">componentNameString</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:componentNameString">Distribution.Types.ComponentName</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentNameString">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameTargets</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentNameTargets">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">componentNameTargets'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentNameTargets-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">componentPackageDeps</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentPackageDeps">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentRequestedSpec</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#t:ComponentRequestedSpec">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:ComponentRequestedSpec">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">components</td><td class="module"><a href="Distribution-ModuleName.html#v:components">Distribution.ModuleName</a></td></tr><tr><td class="src">componentsConfigs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:componentsConfigs">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentsGraph</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsGraph">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">componentsGraphToList</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#v:componentsGraphToList">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">componentsInBuildOrder</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:componentsInBuildOrder">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">ComponentsWithDeps</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#t:ComponentsWithDeps">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">componentUnitId</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:componentUnitId">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:componentUnitId">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">computeCompatPackageId</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#v:computeCompatPackageId">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="src">computeCompatPackageKey</td><td class="module"><a href="Distribution-Simple-Configure.html#v:computeCompatPackageKey">Distribution.Simple.Configure</a></td></tr><tr><td class="src">computeCompatPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#v:computeCompatPackageName">Distribution.Types.MungedPackageName</a>, <a href="Distribution-Simple-Configure.html#v:computeCompatPackageName">Distribution.Simple.Configure</a></td></tr><tr><td class="src">computeComponentId</td><td class="module"><a href="Distribution-Simple-Configure.html#v:computeComponentId">Distribution.Simple.Configure</a></td></tr><tr><td class="src">computeEffectiveProfiling</td><td class="module"><a href="Distribution-Simple-Configure.html#v:computeEffectiveProfiling">Distribution.Simple.Configure</a></td></tr><tr><td class="src">concat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">concatMap</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">concurrently</td><td class="module"><a href="Distribution-TestSuite.html#v:concurrently">Distribution.TestSuite</a></td></tr><tr><td class="src">condBenchmarks</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condBenchmarks">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condBenchmarks">Distribution.PackageDescription</a></td></tr><tr><td class="src">CondBranch</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-CondTree.html#t:CondBranch">Distribution.Types.CondTree</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-CondTree.html#v:CondBranch">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condBranchCondition</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condBranchCondition">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condBranchIfFalse</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condBranchIfFalse">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condBranchIfTrue</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condBranchIfTrue">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condExecutables</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condExecutables">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condExecutables">Distribution.PackageDescription</a></td></tr><tr><td class="src">condForeignLibs</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condForeignLibs">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condForeignLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">condIfThen</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condIfThen">Distribution.Types.CondTree</a></td></tr><tr><td class="src">condIfThenElse</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condIfThenElse">Distribution.Types.CondTree</a></td></tr><tr><td class="src">Condition</td><td class="module"><a href="Distribution-Types-Condition.html#t:Condition">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#t:Condition">Distribution.PackageDescription</a></td></tr><tr><td class="src">condLibrary</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condLibrary">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condLibrary">Distribution.PackageDescription</a></td></tr><tr><td class="src">CondNode</td><td class="module"><a href="Distribution-Types-CondTree.html#v:CondNode">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#v:CondNode">Distribution.PackageDescription</a></td></tr><tr><td class="src">condSubLibraries</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condSubLibraries">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condSubLibraries">Distribution.PackageDescription</a></td></tr><tr><td class="src">condTestSuites</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:condTestSuites">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:condTestSuites">Distribution.PackageDescription</a></td></tr><tr><td class="src">CondTree</td><td class="module"><a href="Distribution-Types-CondTree.html#t:CondTree">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#t:CondTree">Distribution.PackageDescription</a></td></tr><tr><td class="src">condTreeComponents</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condTreeComponents">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#v:condTreeComponents">Distribution.PackageDescription</a></td></tr><tr><td class="src">condTreeConstraints</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condTreeConstraints">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#v:condTreeConstraints">Distribution.PackageDescription</a></td></tr><tr><td class="src">condTreeData</td><td class="module"><a href="Distribution-Types-CondTree.html#v:condTreeData">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription.html#v:condTreeData">Distribution.PackageDescription</a></td></tr><tr><td class="src">confHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:confHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:confHook">Distribution.Simple</a></td></tr><tr><td class="src">configAbsolutePaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configAbsolutePaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configAllowNewer</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configAllowNewer">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configAllowOlder</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configAllowOlder">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configBenchmarks</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configBenchmarks">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configCabalFilePath</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configCabalFilePath">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configCID</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configCID">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configCompiler</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configCompiler">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configCompilerAux</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configCompilerAux">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configCompilerAuxEx</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configCompilerAuxEx">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configCompilerEx</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configCompilerEx">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configConfigurationsFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configConfigurationsFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configConfigureArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configConfigureArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configConstraints</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configConstraints">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configCoverage</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configCoverage">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDebugInfo</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDebugInfo">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDependencies</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDependencies">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDeterministic</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDeterministic">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configDynExe</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configDynExe">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configExactConfiguration</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configExactConfiguration">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configExtraFrameworkDirs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configExtraFrameworkDirs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configExtraIncludeDirs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configExtraIncludeDirs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configExtraLibDirs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configExtraLibDirs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configFlagError</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configFlagError">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ConfigFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:ConfigFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:ConfigFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configFlags</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:configFlags">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:configFlags">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">configGHCiLib</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configGHCiLib">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configHcFlavor</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configHcFlavor">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configHcPath</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configHcPath">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configHcPkg</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configHcPkg">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configInstallDirs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configInstallDirs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configInstantiateWith</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configInstantiateWith">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configIPID</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configIPID">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configLibCoverage</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configLibCoverage">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configOptimization</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configOptimization">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configPackageDBs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configPackageDBs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProf</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProf">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProfDetail</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProfDetail">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProfExe</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProfExe">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProfLib</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProfLib">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProfLibDetail</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProfLibDetail">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgPrefix</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgPrefix">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgramPathExtra</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgramPathExtra">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configPrograms</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configPrograms">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configPrograms_</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configPrograms_">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configProgSuffix</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configProgSuffix">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configRelocatable</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configRelocatable">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configScratchDir</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configScratchDir">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configSharedLib</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configSharedLib">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configSplitObjs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configSplitObjs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ConfigStateFileBadHeader</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileBadHeader">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileBadVersion</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileBadVersion">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileError</td><td class="module"><a href="Distribution-Simple-Configure.html#t:ConfigStateFileError">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileMissing</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileMissing">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileNoHeader</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileNoHeader">Distribution.Simple.Configure</a></td></tr><tr><td class="src">ConfigStateFileNoParse</td><td class="module"><a href="Distribution-Simple-Configure.html#v:ConfigStateFileNoParse">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configStripExes</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configStripExes">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configStripLibs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configStripLibs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configTests</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configTests">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Configure</td><td class="module"><a href="Distribution-Types-BuildType.html#v:Configure">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:Configure">Distribution.PackageDescription</a></td></tr><tr><td class="src">configure</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:configure">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:configure">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:configure">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:configure">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:configure">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:configure">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">7 (Function)</td><td class="module"><a href="Distribution-Simple-Configure.html#v:configure">Distribution.Simple.Configure</a></td></tr><tr><td class="src">configureAllKnownPrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:configureAllKnownPrograms">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:configureAllKnownPrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">configureArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureCCompiler</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureCCompiler">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureComponentLocalBuildInfos</td><td class="module"><a href="Distribution-Backpack-Configure.html#v:configureComponentLocalBuildInfos">Distribution.Backpack.Configure</a></td></tr><tr><td class="src">ConfiguredComponent</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponent">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:ConfiguredComponent">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">ConfiguredComponentMap</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#t:ConfiguredComponentMap">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">ConfiguredProgram</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ConfiguredProgram">Distribution.Simple.Program</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:ConfiguredProgram">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:ConfiguredProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">configuredPrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:configuredPrograms">Distribution.Simple.Program.Db</a></td></tr><tr><td class="src">configureLinker</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureLinker">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configureOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configureProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:configureProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:configureProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">configUserInstall</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configUserInstall">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configVanillaLib</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configVanillaLib">Distribution.Simple.Setup</a></td></tr><tr><td class="src">configVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:configVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ConfVar</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:ConfVar">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:ConfVar">Distribution.PackageDescription</a></td></tr><tr><td class="src">const</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">constrainBy</td><td class="module"><a href="Distribution-Types-DependencyMap.html#v:constrainBy">Distribution.Types.DependencyMap</a></td></tr><tr><td class="src">ConstrainedClassMethods</td><td class="module"><a href="Language-Haskell-Extension.html#v:ConstrainedClassMethods">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">ConstraintKinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:ConstraintKinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">copyArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">copyCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">CopyDest</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:CopyDest">Distribution.Simple.InstallDirs</a>, <a href="Distribution-Simple-Setup.html#t:CopyDest">Distribution.Simple.Setup</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">copyDest</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyDest">Distribution.Simple.Setup</a></td></tr><tr><td class="src">copyDirectoryRecursive</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyDirectoryRecursive">Distribution.Simple.Utils</a></td></tr><tr><td class="src">copyDirectoryRecursiveVerbose</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyDirectoryRecursiveVerbose">Distribution.Simple.Utils</a></td></tr><tr><td class="src">copyDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">copyFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">copyFileTo</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyFileTo">Distribution.Simple.Utils</a></td></tr><tr><td class="src">copyFileVerbose</td><td class="module"><a href="Distribution-Simple-Utils.html#v:copyFileVerbose">Distribution.Simple.Utils</a></td></tr><tr><td class="src">CopyFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:CopyFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:CopyFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">copyHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:copyHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:copyHook">Distribution.Simple</a></td></tr><tr><td class="src">copyright</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:copyright">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:copyright">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:copyright">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">CopyTo</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:CopyTo">Distribution.Simple.InstallDirs</a>, <a href="Distribution-Simple-Setup.html#v:CopyTo">Distribution.Simple.Setup</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">copyVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:copyVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">COr</td><td class="module"><a href="Distribution-Types-Condition.html#v:COr">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:COr">Distribution.PackageDescription</a></td></tr><tr><td class="src">cOr</td><td class="module"><a href="Distribution-Types-Condition.html#v:cOr">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:cOr">Distribution.PackageDescription</a></td></tr><tr><td class="src">cos</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">cosh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">count</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:count">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">countTestResults</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:countTestResults">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">coverageSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:coverageSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">CPlusPlus</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:CPlusPlus">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">CPP</td><td class="module"><a href="Language-Haskell-Extension.html#v:CPP">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">cppHeaderName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:cppHeaderName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">cpphsProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:cpphsProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:cpphsProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">cppOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:cppOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:cppOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">cppProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:cppProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:cppProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">createArchive</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:createArchive">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">createArLibArchive</td><td class="module"><a href="Distribution-Simple-Program-Ar.html#v:createArLibArchive">Distribution.Simple.Program.Ar</a></td></tr><tr><td class="src">createDirectoryIfMissingVerbose</td><td class="module"><a href="Distribution-Simple-Utils.html#v:createDirectoryIfMissingVerbose">Distribution.Simple.Utils</a></td></tr><tr><td class="src">createPackageDB</td><td class="module"><a href="Distribution-Simple-Register.html#v:createPackageDB">Distribution.Simple.Register</a></td></tr><tr><td class="src">createPipe</td><td class="module"><a href="Distribution-Compat-CreatePipe.html#v:createPipe">Distribution.Compat.CreatePipe</a></td></tr><tr><td class="src">createProcessWithEnv</td><td class="module"><a href="Distribution-Simple-Utils.html#v:createProcessWithEnv">Distribution.Simple.Utils</a></td></tr><tr><td class="src">cSourceExtensions</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:cSourceExtensions">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">cSources</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:cSources">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:cSources">Distribution.PackageDescription</a></td></tr><tr><td class="src">CSubLibName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CSubLibName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CSubLibName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CSubLibName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CTest</td><td class="module"><a href="Distribution-Types-Component.html#v:CTest">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CTest">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">CTestName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:CTestName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:CTestName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:CTestName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">currentDir</td><td class="module"><a href="Distribution-Simple-Utils.html#v:currentDir">Distribution.Simple.Utils</a></td></tr><tr><td class="src">curry</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Custom</td><td class="module"><a href="Distribution-Types-BuildType.html#v:Custom">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:Custom">Distribution.PackageDescription</a></td></tr><tr><td class="src">customFieldsBI</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:customFieldsBI">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:customFieldsBI">Distribution.PackageDescription</a></td></tr><tr><td class="src">customFieldsPD</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:customFieldsPD">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:customFieldsPD">Distribution.PackageDescription</a></td></tr><tr><td class="src">CVS</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:CVS">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:CVS">Distribution.PackageDescription</a></td></tr><tr><td class="src">cycle</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">cycles</td><td class="module"><a href="Distribution-Compat-Graph.html#v:cycles">Distribution.Compat.Graph</a></td></tr><tr><td class="src">CyclicSCC</td><td class="module"><a href="Distribution-Compat-Graph.html#v:CyclicSCC">Distribution.Compat.Graph</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-D.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - D)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - D</p><table><tr><td class="src">Darcs</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Darcs">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Darcs">Distribution.PackageDescription</a></td></tr><tr><td class="src">Data</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Data">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">dataDir</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:dataDir">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:dataDir">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:dataDir">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">datadir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:datadir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DatadirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:DatadirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">dataFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:dataFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:dataFiles">Distribution.PackageDescription</a></td></tr><tr><td class="src">DataKinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:DataKinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">datasubdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:datasubdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DatasubdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:DatasubdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DatatypeContexts</td><td class="module"><a href="Language-Haskell-Extension.html#v:DatatypeContexts">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">dateToSnapshotNumber</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:dateToSnapshotNumber">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">deafening</td><td class="module"><a href="Distribution-Verbosity.html#v:deafening">Distribution.Verbosity</a></td></tr><tr><td class="src">debug</td><td class="module"><a href="Distribution-Simple-Utils.html#v:debug">Distribution.Simple.Utils</a></td></tr><tr><td class="src">DebugInfoLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:DebugInfoLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">debugNoWrap</td><td class="module"><a href="Distribution-Simple-Utils.html#v:debugNoWrap">Distribution.Simple.Utils</a></td></tr><tr><td class="src">decode</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">decodeCompatPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#v:decodeCompatPackageName">Distribution.Types.MungedPackageName</a></td></tr><tr><td class="src">decodeFile</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">decodeFileOrFail</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">decodeFileOrFail'</td><td class="module"><a href="Distribution-Compat-Binary.html#v:decodeFileOrFail-39-">Distribution.Compat.Binary</a></td></tr><tr><td class="src">decodeFloat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">decodeOrFail</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">decodeOrFailIO</td><td class="module"><a href="Distribution-Compat-Binary.html#v:decodeOrFailIO">Distribution.Compat.Binary</a></td></tr><tr><td class="src">decodeStringUtf8</td><td class="module"><a href="Distribution-Utils-ShortText.html#v:decodeStringUtf8">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">defaultBenchmarkFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultBenchmarkFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultBuildFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultBuildFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultCleanFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultCleanFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultCompilerFlavor</td><td class="module"><a href="Distribution-Compiler.html#v:defaultCompilerFlavor">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">defaultComponentRequestedSpec</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:defaultComponentRequestedSpec">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">defaultConfigFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultConfigFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultCopyFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultCopyFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultDistPref">Distribution.Simple.Setup</a>, <a href="Distribution-Simple-BuildPaths.html#v:defaultDistPref">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">defaultDoctestFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultDoctestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:defaultExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:defaultExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">defaultGlobalFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultGlobalFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultHaddockFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultHaddockFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultHookedPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:defaultHookedPackageDesc">Distribution.Simple.Utils</a>, <a href="Distribution-Simple.html#v:defaultHookedPackageDesc">Distribution.Simple</a></td></tr><tr><td class="src">defaultHscolourFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultHscolourFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultIncludeRenaming</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:defaultIncludeRenaming">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">defaultInstallDirs</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:defaultInstallDirs">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">defaultInstallDirs'</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:defaultInstallDirs-39-">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">defaultInstallFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultInstallFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultLanguage</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:defaultLanguage">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:defaultLanguage">Distribution.PackageDescription</a></td></tr><tr><td class="src">defaultLibName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:defaultLibName">Distribution.Types.ComponentName</a>, <a href="Distribution-PackageDescription.html#v:defaultLibName">Distribution.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:defaultLibName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">defaultMain</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Make.html#v:defaultMain">Distribution.Make</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple.html#v:defaultMain">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainArgs</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Make.html#v:defaultMainArgs">Distribution.Make</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainArgs">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainNoRead</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Make.html#v:defaultMainNoRead">Distribution.Make</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainNoRead">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainWithHooks</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainWithHooks">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainWithHooksArgs</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainWithHooksArgs">Distribution.Simple</a></td></tr><tr><td class="src">defaultMainWithHooksNoRead</td><td class="module"><a href="Distribution-Simple.html#v:defaultMainWithHooksNoRead">Distribution.Simple</a></td></tr><tr><td class="src">defaultPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:defaultPackageDesc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">defaultProgramConfiguration</td><td class="module"><a href="Distribution-Simple-Program.html#v:defaultProgramConfiguration">Distribution.Simple.Program</a></td></tr><tr><td class="src">defaultProgramDb</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:defaultProgramDb">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:defaultProgramDb">Distribution.Simple.Program</a></td></tr><tr><td class="src">defaultProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:defaultProgramSearchPath">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program.html#v:defaultProgramSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">defaultRegisterFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultRegisterFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultRegisterOptions</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:defaultRegisterOptions">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:defaultRegisterOptions">Distribution.Simple.Register</a></td></tr><tr><td class="src">DefaultRenaming</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:DefaultRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#v:DefaultRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="src">defaultRenaming</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:defaultRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#v:defaultRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="src">defaultReplFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultReplFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultSDistFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultSDistFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultSetupDepends</td><td class="module"><a href="Distribution-Types-SetupBuildInfo.html#v:defaultSetupDepends">Distribution.Types.SetupBuildInfo</a>, <a href="Distribution-PackageDescription.html#v:defaultSetupDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">DefaultSignatures</td><td class="module"><a href="Language-Haskell-Extension.html#v:DefaultSignatures">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">defaultStyle</td><td class="module"><a href="Distribution-Text.html#v:defaultStyle">Distribution.Text</a></td></tr><tr><td class="src">defaultTempFileOptions</td><td class="module"><a href="Distribution-Simple-Utils.html#v:defaultTempFileOptions">Distribution.Simple.Utils</a></td></tr><tr><td class="src">defaultTestFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:defaultTestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">defaultUserHooks</td><td class="module"><a href="Distribution-Simple.html#v:defaultUserHooks">Distribution.Simple</a></td></tr><tr><td class="src">DefiniteUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:DefiniteUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">DefUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#t:DefUnitId">Distribution.Types.UnitId</a>, <a href="Distribution-Backpack.html#t:DefUnitId">Distribution.Backpack</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">delete</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteAt</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteFindMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteFindMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteInstalledPackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:deleteInstalledPackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">deleteKey</td><td class="module"><a href="Distribution-Compat-Graph.html#v:deleteKey">Distribution.Compat.Graph</a></td></tr><tr><td class="src">deleteLookup</td><td class="module"><a href="Distribution-Compat-Graph.html#v:deleteLookup">Distribution.Compat.Graph</a></td></tr><tr><td class="src">deleteMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deleteMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">deletePackageDB</td><td class="module"><a href="Distribution-Simple-Register.html#v:deletePackageDB">Distribution.Simple.Register</a></td></tr><tr><td class="src">deletePackageName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:deletePackageName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">deleteSourcePackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:deleteSourcePackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">deleteUnitId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:deleteUnitId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">depAbiHash</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:depAbiHash">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">Dependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Dependency.html#t:Dependency">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Dependency.html#v:Dependency">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">dependencyClosure</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:dependencyClosure">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">dependencyCycles</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:dependencyCycles">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">dependencyGraph</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:dependencyGraph">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">dependencyInconsistencies</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:dependencyInconsistencies">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">DependencyMap</td><td class="module"><a href="Distribution-Types-DependencyMap.html#t:DependencyMap">Distribution.Types.DependencyMap</a></td></tr><tr><td class="src">depends</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:depends">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">depLibraryPaths</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:depLibraryPaths">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">depPkgName</td><td class="module"><a href="Distribution-Types-Dependency.html#v:depPkgName">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">deprecatedExtensions</td><td class="module"><a href="Language-Haskell-Extension.html#v:deprecatedExtensions">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">depUnitId</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:depUnitId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">depVerRange</td><td class="module"><a href="Distribution-Types-Dependency.html#v:depVerRange">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">DeriveAnyClass</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveAnyClass">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveDataTypeable</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveDataTypeable">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveFoldable</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveFoldable">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveFunctor</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveFunctor">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveGeneric</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveGeneric">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveLift</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveLift">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DeriveTraversable</td><td class="module"><a href="Language-Haskell-Extension.html#v:DeriveTraversable">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">descCabalVersion</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:descCabalVersion">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:descCabalVersion">Distribution.PackageDescription</a></td></tr><tr><td class="src">describe</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:describe">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">describeInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:describeInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">Description</td><td class="module"><a href="Distribution-Simple-Command.html#t:Description">Distribution.Simple.Command</a></td></tr><tr><td class="src">description</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:description">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:description">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:description">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">desugarBuildTool</td><td class="module"><a href="Distribution-Simple-BuildToolDepends.html#v:desugarBuildTool">Distribution.Simple.BuildToolDepends</a></td></tr><tr><td class="src">die</td><td class="module"><a href="Distribution-Simple-Utils.html#v:die">Distribution.Simple.Utils</a></td></tr><tr><td class="src">die'</td><td class="module"><a href="Distribution-Simple-Utils.html#v:die-39-">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dieNoVerbosity</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dieNoVerbosity">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dieNoWrap</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dieNoWrap">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dieProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:dieProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">dieWithLocation</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dieWithLocation">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dieWithLocation'</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dieWithLocation-39-">Distribution.Simple.Utils</a></td></tr><tr><td class="src">difference</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">differenceVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:differenceVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">differenceWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">differenceWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Direct</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Direct">Distribution.Simple.Setup</a></td></tr><tr><td class="src">DisabledAllBenchmarks</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:DisabledAllBenchmarks">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">DisabledAllButOne</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:DisabledAllButOne">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">DisabledAllTests</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:DisabledAllTests">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">DisabledComponent</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:DisabledComponent">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">DisableExtension</td><td class="module"><a href="Language-Haskell-Extension.html#v:DisableExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">DisambiguateRecordFields</td><td class="module"><a href="Language-Haskell-Extension.html#v:DisambiguateRecordFields">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">disp</td><td class="module"><a href="Distribution-Text.html#v:disp">Distribution.Text</a></td></tr><tr><td class="src">dispComponentsWithDeps</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#v:dispComponentsWithDeps">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">dispConfiguredComponent</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:dispConfiguredComponent">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">dispFlagAssignment</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:dispFlagAssignment">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:dispFlagAssignment">Distribution.PackageDescription</a></td></tr><tr><td class="src">display</td><td class="module"><a href="Distribution-Text.html#v:display">Distribution.Text</a></td></tr><tr><td class="src">displayException</td><td class="module"><a href="Distribution-Compat-Exception.html#v:displayException">Distribution.Compat.Exception</a></td></tr><tr><td class="src">dispLinkedComponent</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:dispLinkedComponent">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">dispOpenModuleSubst</td><td class="module"><a href="Distribution-Backpack.html#v:dispOpenModuleSubst">Distribution.Backpack</a></td></tr><tr><td class="src">dispOpenModuleSubstEntry</td><td class="module"><a href="Distribution-Backpack.html#v:dispOpenModuleSubstEntry">Distribution.Backpack</a></td></tr><tr><td class="src">div</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">divMod</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">DList</td><td class="module"><a href="Distribution-Compat-DList.html#t:DList">Distribution.Compat.DList</a></td></tr><tr><td class="src">dllExtension</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:dllExtension">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">DoAndIfThenElse</td><td class="module"><a href="Language-Haskell-Extension.html#v:DoAndIfThenElse">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">docdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:docdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DocdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:DocdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">doctest</td><td class="module"><a href="Distribution-Simple-Doctest.html#v:doctest">Distribution.Simple.Doctest</a></td></tr><tr><td class="src">doctestCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doctestDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">DoctestFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:DoctestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:DoctestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doctestHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:doctestHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:doctestHook">Distribution.Simple</a></td></tr><tr><td class="src">doctestProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:doctestProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:doctestProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">doctestProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doctestProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doctestVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:doctestVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">doesDirectoryExist</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:doesDirectoryExist">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">doesExecutableExist</td><td class="module"><a href="Distribution-Simple-Utils.html#v:doesExecutableExist">Distribution.Simple.Utils</a></td></tr><tr><td class="src">doesFileExist</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:doesFileExist">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">doesPackageDBExist</td><td class="module"><a href="Distribution-Simple-Register.html#v:doesPackageDBExist">Distribution.Simple.Register</a></td></tr><tr><td class="src">DoRec</td><td class="module"><a href="Language-Haskell-Extension.html#v:DoRec">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Double</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">DragonFly</td><td class="module"><a href="Distribution-System.html#v:DragonFly">Distribution.System</a></td></tr><tr><td class="src">drop</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">dropExeExtension</td><td class="module"><a href="Distribution-Simple-Utils.html#v:dropExeExtension">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dropWhile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">dropWhileAntitone</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">dropWhileEndLE</td><td class="module"><a href="Distribution-Utils-Generic.html#v:dropWhileEndLE">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:dropWhileEndLE">Distribution.Simple.Utils</a></td></tr><tr><td class="src">dump</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:dump">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">dumpInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:dumpInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">DuplicateRecordFields</td><td class="module"><a href="Language-Haskell-Extension.html#v:DuplicateRecordFields">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Dyn</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:Dyn">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">dynlibdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:dynlibdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">DynlibdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:DynlibdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-E.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - E)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - E</p><table><tr><td class="src">EarlierVersion</td><td class="module"><a href="Distribution-Version.html#v:EarlierVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">earlierVersion</td><td class="module"><a href="Distribution-Version.html#v:earlierVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Either</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">either</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">elem</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:elem">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">elemAt</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">elems</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">empty</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:empty">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:empty">Distribution.Compat.Graph</a></td></tr><tr><td class="src">emptyBenchmark</td><td class="module"><a href="Distribution-Types-Benchmark.html#v:emptyBenchmark">Distribution.Types.Benchmark</a>, <a href="Distribution-PackageDescription.html#v:emptyBenchmark">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyBenchmarkFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyBenchmarkFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyBuildFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyBuildFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyBuildInfo</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:emptyBuildInfo">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:emptyBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">EmptyCase</td><td class="module"><a href="Language-Haskell-Extension.html#v:EmptyCase">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">emptyCleanFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyCleanFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyConfigFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyConfigFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyCopyFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyCopyFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">EmptyDataDecls</td><td class="module"><a href="Language-Haskell-Extension.html#v:EmptyDataDecls">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">emptyDoctestFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyDoctestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyExecutable</td><td class="module"><a href="Distribution-Types-Executable.html#v:emptyExecutable">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:emptyExecutable">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyFlag</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:emptyFlag">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:emptyFlag">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyForeignLib</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:emptyForeignLib">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">emptyGlobalFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyGlobalFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyHaddockFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyHaddockFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyHookedBuildInfo</td><td class="module"><a href="Distribution-Types-HookedBuildInfo.html#v:emptyHookedBuildInfo">Distribution.Types.HookedBuildInfo</a>, <a href="Distribution-PackageDescription.html#v:emptyHookedBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyHscolourFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyHscolourFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyInstalledPackageInfo</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:emptyInstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">emptyInstallFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyInstallFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyLibrary</td><td class="module"><a href="Distribution-Types-Library.html#v:emptyLibrary">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:emptyLibrary">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyModuleShape</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:emptyModuleShape">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">emptyPackageDescription</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:emptyPackageDescription">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:emptyPackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyProgramConfiguration</td><td class="module"><a href="Distribution-Simple-Program.html#v:emptyProgramConfiguration">Distribution.Simple.Program</a></td></tr><tr><td class="src">emptyProgramDb</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:emptyProgramDb">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:emptyProgramDb">Distribution.Simple.Program</a></td></tr><tr><td class="src">emptyProgramInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:emptyProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:emptyProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">emptyRegisterFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyRegisterFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptySDistFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptySDistFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptySourceRepo</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:emptySourceRepo">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:emptySourceRepo">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyTestFlags</td><td class="module"><a href="Distribution-Simple-Setup.html#v:emptyTestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">emptyTestSuite</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:emptyTestSuite">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:emptyTestSuite">Distribution.PackageDescription</a></td></tr><tr><td class="src">emptyUserHooks</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:emptyUserHooks">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:emptyUserHooks">Distribution.Simple</a></td></tr><tr><td class="src">enabledBenchLBIs</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:enabledBenchLBIs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">enabledBuildInfos</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:enabledBuildInfos">Distribution.Types.PackageDescription</a></td></tr><tr><td class="src">enabledComponents</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:enabledComponents">Distribution.Types.PackageDescription</a></td></tr><tr><td class="src">enabledTestLBIs</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:enabledTestLBIs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">EnableExtension</td><td class="module"><a href="Language-Haskell-Extension.html#v:EnableExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">encode</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">encodeFile</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">encodeFloat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">encodeStringUtf8</td><td class="module"><a href="Distribution-Utils-ShortText.html#v:encodeStringUtf8">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">endBy</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:endBy">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">endBy1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:endBy1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">Enum</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">enumFrom</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">enumFromThen</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">enumFromThenTo</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">enumFromTo</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">eof</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:eof">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">EQ</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Eq</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">equating</td><td class="module"><a href="Distribution-Utils-Generic.html#v:equating">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:equating">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Error</td><td class="module"><a href="Distribution-TestSuite.html#v:Error">Distribution.TestSuite</a></td></tr><tr><td class="src">error</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">errorWithoutStackTrace</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">even</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ExclusiveBound</td><td class="module"><a href="Distribution-Version.html#v:ExclusiveBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">exeBuildDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:exeBuildDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">ExeComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:ExeComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:ExeComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">exeCoverage</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:exeCoverage">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:exeCoverage">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">Executable</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Executable.html#t:Executable">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#t:Executable">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Executable.html#v:Executable">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:Executable">Distribution.PackageDescription</a></td></tr><tr><td class="src">executableFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:executableFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">ExecutableNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:ExecutableNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">ExecutablePrivate</td><td class="module"><a href="Distribution-Types-ExecutableScope.html#v:ExecutablePrivate">Distribution.Types.ExecutableScope</a></td></tr><tr><td class="src">ExecutablePublic</td><td class="module"><a href="Distribution-Types-ExecutableScope.html#v:ExecutablePublic">Distribution.Types.ExecutableScope</a></td></tr><tr><td class="src">executables</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:executables">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:executables">Distribution.PackageDescription</a></td></tr><tr><td class="src">ExecutableScope</td><td class="module"><a href="Distribution-Types-ExecutableScope.html#t:ExecutableScope">Distribution.Types.ExecutableScope</a></td></tr><tr><td class="src">ExecutableScopeUnknown</td><td class="module"><a href="Distribution-Types-ExecutableScope.html#v:ExecutableScopeUnknown">Distribution.Types.ExecutableScope</a></td></tr><tr><td class="src">ExeDependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ExeDependency.html#t:ExeDependency">Distribution.Types.ExeDependency</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ExeDependency.html#v:ExeDependency">Distribution.Types.ExeDependency</a></td></tr><tr><td class="src">exeExtension</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:exeExtension">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">exeExtensions</td><td class="module"><a href="Distribution-Simple-Utils.html#v:exeExtensions">Distribution.Simple.Utils</a></td></tr><tr><td class="src">exeModules</td><td class="module"><a href="Distribution-Types-Executable.html#v:exeModules">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:exeModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">exeModulesAutogen</td><td class="module"><a href="Distribution-Types-Executable.html#v:exeModulesAutogen">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:exeModulesAutogen">Distribution.PackageDescription</a></td></tr><tr><td class="src">exeName</td><td class="module"><a href="Distribution-Types-Executable.html#v:exeName">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:exeName">Distribution.PackageDescription</a></td></tr><tr><td class="src">exeScope</td><td class="module"><a href="Distribution-Types-Executable.html#v:exeScope">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:exeScope">Distribution.PackageDescription</a></td></tr><tr><td class="src">ExistentialQuantification</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExistentialQuantification">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">existsAndIsMoreRecentThan</td><td class="module"><a href="Distribution-Simple-Utils.html#v:existsAndIsMoreRecentThan">Distribution.Simple.Utils</a></td></tr><tr><td class="src">exp</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">expandOpenUnitId</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#v:expandOpenUnitId">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="src">expandUnitId</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#v:expandUnitId">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="src">explanation</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:explanation">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">ExplicitForAll</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExplicitForAll">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">explicitLibModules</td><td class="module"><a href="Distribution-Types-Library.html#v:explicitLibModules">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:explicitLibModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">ExplicitNamespaces</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExplicitNamespaces">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">exponent</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">expose</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:expose">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">exposed</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:exposed">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">ExposedModule</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:ExposedModule">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ExposedModule">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">exposedModules</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-Library.html#v:exposedModules">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:exposedModules">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:exposedModules">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">exposedName</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:exposedName">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">exposedReexport</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:exposedReexport">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">exposeInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:exposeInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">extendConfiguredComponentMap</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:extendConfiguredComponentMap">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">ExtendedDefaultRules</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExtendedDefaultRules">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">extendLinkedComponentMap</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:extendLinkedComponentMap">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">ExtensibleRecords</td><td class="module"><a href="Language-Haskell-Extension.html#v:ExtensibleRecords">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Extension</td><td class="module"><a href="Language-Haskell-Extension.html#t:Extension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">extensionsToFlags</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:extensionsToFlags">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">externalPackageDeps</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:externalPackageDeps">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:externalPackageDeps">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">extraConfigArgs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:extraConfigArgs">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:extraConfigArgs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">extractCondition</td><td class="module"><a href="Distribution-Types-CondTree.html#v:extractCondition">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:extractCondition">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">extractConditions</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:extractConditions">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">extraDocFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:extraDocFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:extraDocFiles">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraFrameworkDirs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:extraFrameworkDirs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:extraFrameworkDirs">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraGHCiLibraries</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:extraGHCiLibraries">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">extraGHCiLibs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:extraGHCiLibs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:extraGHCiLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraLibDirs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:extraLibDirs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:extraLibDirs">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraLibraries</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:extraLibraries">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">extraLibs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:extraLibs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:extraLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">ExtraOptions</td><td class="module"><a href="Distribution-TestSuite.html#v:ExtraOptions">Distribution.TestSuite</a></td></tr><tr><td class="src">extraSrcFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:extraSrcFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:extraSrcFiles">Distribution.PackageDescription</a></td></tr><tr><td class="src">extraTmpFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:extraTmpFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:extraTmpFiles">Distribution.PackageDescription</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-F.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - F)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - F</p><table><tr><td class="src">Fail</td><td class="module"><a href="Distribution-TestSuite.html#v:Fail">Distribution.TestSuite</a></td></tr><tr><td class="src">fail</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">failProgress</td><td class="module"><a href="Distribution-Utils-Progress.html#v:failProgress">Distribution.Utils.Progress</a></td></tr><tr><td class="src">failReadE</td><td class="module"><a href="Distribution-ReadE.html#v:failReadE">Distribution.ReadE</a></td></tr><tr><td class="src">Failures</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Failures">Distribution.Simple.Setup</a></td></tr><tr><td class="src">False</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">falseArg</td><td class="module"><a href="Distribution-Simple-Setup.html#v:falseArg">Distribution.Simple.Setup</a></td></tr><tr><td class="src">FieldDescr</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#t:FieldDescr">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:FieldDescr">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">fieldGet</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:fieldGet">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">fieldName</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:fieldName">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">fieldSet</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:fieldSet">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">fieldsInstalledPackageInfo</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:fieldsInstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">FileGlob</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Utils.html#t:FileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Utils.html#v:FileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">fileHasBOM</td><td class="module"><a href="Distribution-Utils-Generic.html#v:fileHasBOM">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:fileHasBOM">Distribution.Simple.Utils</a></td></tr><tr><td class="src">filenameCDialect</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:filenameCDialect">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">FilePath</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">filter</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">filterM</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:filterM">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">filterWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">finalizePackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:finalizePackageDescription">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">finalizePD</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:finalizePD">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">find</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:find">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">findAllFilesWithExtension</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findAllFilesWithExtension">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findDistPref</td><td class="module"><a href="Distribution-Simple-Configure.html#v:findDistPref">Distribution.Simple.Configure</a></td></tr><tr><td class="src">findDistPrefOrDefault</td><td class="module"><a href="Distribution-Simple-Configure.html#v:findDistPrefOrDefault">Distribution.Simple.Configure</a></td></tr><tr><td class="src">findFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findFileWithExtension</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findFileWithExtension">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findFileWithExtension'</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findFileWithExtension-39-">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findFirstFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findFirstFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findHookedPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findHookedPackageDesc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findIndex</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">findMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">findMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">findModuleFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findModuleFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findModuleFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findModuleFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findPackageDesc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">findProgramLocation</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findProgramLocation">Distribution.Simple.Utils</a>, <a href="Distribution-Simple-Program.html#v:findProgramLocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">findProgramOnPath</td><td class="module"><a href="Distribution-Simple-Program.html#v:findProgramOnPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">findProgramOnSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:findProgramOnSearchPath">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program.html#v:findProgramOnSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">findProgramVersion</td><td class="module"><a href="Distribution-Simple-Utils.html#v:findProgramVersion">Distribution.Simple.Utils</a>, <a href="Distribution-Simple-Program.html#v:findProgramVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">findWithDefault</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Finished</td><td class="module"><a href="Distribution-TestSuite.html#v:Finished">Distribution.TestSuite</a></td></tr><tr><td class="src">first</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:first">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Flag</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:Flag">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:Flag">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Type/Class)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:Flag">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:Flag">Distribution.PackageDescription</a></td></tr><tr><td class="alt">3 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:Flag">Distribution.Simple.Compiler</a></td></tr><tr><td class="alt">4 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:Flag">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">5 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Flag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">FlagAssignment</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:FlagAssignment">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:FlagAssignment">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagAssignment</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:flagAssignment">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:flagAssignment">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">flagDebugInfo</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagDebugInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flagDefault</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:flagDefault">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:flagDefault">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagDescription</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:flagDescription">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:flagDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:flagFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">flagGhciScript</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagGhciScript">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flagManual</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:flagManual">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:flagManual">Distribution.PackageDescription</a></td></tr><tr><td class="src">FlagName</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:FlagName">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:FlagName">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagName</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:flagName">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:flagName">Distribution.PackageDescription</a></td></tr><tr><td class="src">flagPackageConf</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:flagPackageConf">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagPackageConf">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flagProfAuto</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagProfAuto">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flagToDebugInfoLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:flagToDebugInfoLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">flagToList</td><td class="module"><a href="Distribution-Simple-Setup.html#v:flagToList">Distribution.Simple.Setup</a></td></tr><tr><td class="src">flagToMaybe</td><td class="module"><a href="Distribution-Simple-Setup.html#v:flagToMaybe">Distribution.Simple.Setup</a></td></tr><tr><td class="src">flagToOptimisationLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:flagToOptimisationLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">flagToProfDetailLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:flagToProfDetailLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">flagToVerbosity</td><td class="module"><a href="Distribution-Verbosity.html#v:flagToVerbosity">Distribution.Verbosity</a></td></tr><tr><td class="src">flagWarnMissingHomeModules</td><td class="module"><a href="Distribution-Simple-GHC.html#v:flagWarnMissingHomeModules">Distribution.Simple.GHC</a></td></tr><tr><td class="src">flatStyle</td><td class="module"><a href="Distribution-Text.html#v:flatStyle">Distribution.Text</a></td></tr><tr><td class="src">flattenPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:flattenPackageDescription">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">FlexibleContexts</td><td class="module"><a href="Language-Haskell-Extension.html#v:FlexibleContexts">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">FlexibleInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:FlexibleInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">flibBuildDir</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:flibBuildDir">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">FLibComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:FLibComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:FLibComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">flibdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:flibdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">flip</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Float</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">floatDigits</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Floating</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">floatRadix</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">floatRange</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">floor</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fmap</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Foldable</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Foldable">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldComponent</td><td class="module"><a href="Distribution-Types-Component.html#v:foldComponent">Distribution.Types.Component</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:foldComponent">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">foldl</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldl">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldl'</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldl-39-">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldl1</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldl1">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldlWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldlWithKey'</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldM</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldM">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldMap</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldMap">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldMapWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldProgress</td><td class="module"><a href="Distribution-Utils-Progress.html#v:foldProgress">Distribution.Utils.Progress</a></td></tr><tr><td class="src">foldr</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldr">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldr'</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldr1</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:foldr1">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">foldrWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldrWithKey'</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">foldVersionRange</td><td class="module"><a href="Distribution-Version.html#v:foldVersionRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">foldVersionRange'</td><td class="module"><a href="Distribution-Version.html#v:foldVersionRange-39-">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">for</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:for">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">ForDevelopment</td><td class="module"><a href="Distribution-Simple-Setup.html#v:ForDevelopment">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ForeignFunctionInterface</td><td class="module"><a href="Language-Haskell-Extension.html#v:ForeignFunctionInterface">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">ForeignLib</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ForeignLib.html#t:ForeignLib">Distribution.Types.ForeignLib</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:ForeignLib">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibBuildInfo</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibBuildInfo">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:foreignLibFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">foreignLibIsShared</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibIsShared">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibModDefFile</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibModDefFile">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibModules</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibModules">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibName</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibName">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">ForeignLibNativeShared</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:ForeignLibNativeShared">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">ForeignLibNativeStatic</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:ForeignLibNativeStatic">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">ForeignLibOption</td><td class="module"><a href="Distribution-Types-ForeignLibOption.html#t:ForeignLibOption">Distribution.Types.ForeignLibOption</a></td></tr><tr><td class="src">foreignLibOptions</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibOptions">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibs</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:foreignLibs">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:foreignLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">ForeignLibStandalone</td><td class="module"><a href="Distribution-Types-ForeignLibOption.html#v:ForeignLibStandalone">Distribution.Types.ForeignLibOption</a></td></tr><tr><td class="src">ForeignLibType</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#t:ForeignLibType">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">foreignLibType</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibType">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibTypeIsShared</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:foreignLibTypeIsShared">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">ForeignLibTypeUnknown</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:ForeignLibTypeUnknown">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">foreignLibVersion</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibVersion">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibVersionInfo</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibVersionInfo">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">foreignLibVersionLinux</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:foreignLibVersionLinux">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">ForHackage</td><td class="module"><a href="Distribution-Simple-Setup.html#v:ForHackage">Distribution.Simple.Setup</a></td></tr><tr><td class="src">for_</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:for_">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">FoundOnSystem</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:FoundOnSystem">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:FoundOnSystem">Distribution.Simple.Program</a></td></tr><tr><td class="src">Fractional</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">frameworkDirs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:frameworkDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">frameworks</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:frameworks">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:frameworks">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:frameworks">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">FreeBSD</td><td class="module"><a href="Distribution-System.html#v:FreeBSD">Distribution.System</a></td></tr><tr><td class="src">freeVars</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:freeVars">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">fromAscList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromAscListWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromAscListWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromComponents</td><td class="module"><a href="Distribution-ModuleName.html#v:fromComponents">Distribution.ModuleName</a></td></tr><tr><td class="src">fromDepMap</td><td class="module"><a href="Distribution-Types-DependencyMap.html#v:fromDepMap">Distribution.Types.DependencyMap</a></td></tr><tr><td class="src">fromDescList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDescListWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDescListWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDistinctAscList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDistinctDescList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromDistinctList</td><td class="module"><a href="Distribution-Compat-Graph.html#v:fromDistinctList">Distribution.Compat.Graph</a></td></tr><tr><td class="src">fromEnum</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fromFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#v:fromFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">fromFlagOrDefault</td><td class="module"><a href="Distribution-Simple-Setup.html#v:fromFlagOrDefault">Distribution.Simple.Setup</a></td></tr><tr><td class="src">fromInteger</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fromIntegral</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fromList</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:fromList">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">fromListWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromListWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromMaybe</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:fromMaybe">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">fromNubList</td><td class="module"><a href="Distribution-Utils-NubList.html#v:fromNubList">Distribution.Utils.NubList</a></td></tr><tr><td class="src">fromNubListR</td><td class="module"><a href="Distribution-Utils-NubList.html#v:fromNubListR">Distribution.Utils.NubList</a></td></tr><tr><td class="src">fromPathTemplate</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:fromPathTemplate">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">fromRational</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">fromSet</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">fromShortText</td><td class="module"><a href="Distribution-Utils-ShortText.html#v:fromShortText">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">FromString</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:FromString">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">fromString</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:fromString">Distribution.Compat.Prelude.Internal</a>, <a href="Distribution-ModuleName.html#v:fromString">Distribution.ModuleName</a></td></tr><tr><td class="src">fromUTF8</td><td class="module"><a href="Distribution-Utils-Generic.html#v:fromUTF8">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:fromUTF8">Distribution.Simple.Utils</a></td></tr><tr><td class="src">fromUTF8BS</td><td class="module"><a href="Distribution-Utils-Generic.html#v:fromUTF8BS">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:fromUTF8BS">Distribution.Simple.Utils</a></td></tr><tr><td class="src">fromUTF8LBS</td><td class="module"><a href="Distribution-Utils-Generic.html#v:fromUTF8LBS">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:fromUTF8LBS">Distribution.Simple.Utils</a></td></tr><tr><td class="src">fromVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:fromVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">fst</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">FullDb</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#t:FullDb">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="src">FullUnitId</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#t:FullUnitId">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack-FullUnitId.html#v:FullUnitId">Distribution.Backpack.FullUnitId</a></td></tr><tr><td class="src">FunctionalDependencies</td><td class="module"><a href="Language-Haskell-Extension.html#v:FunctionalDependencies">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Functor</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-G.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - G)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - G</p><table><tr><td class="src">GADTs</td><td class="module"><a href="Language-Haskell-Extension.html#v:GADTs">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">GADTSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:GADTSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">gather</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:gather">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">GBinaryGet</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">GBinaryPut</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">gccProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:gccProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:gccProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">gcd</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">generalInstalledPackageInfo</td><td class="module"><a href="Distribution-Simple-Register.html#v:generalInstalledPackageInfo">Distribution.Simple.Register</a></td></tr><tr><td class="src">GeneralizedNewtypeDeriving</td><td class="module"><a href="Language-Haskell-Extension.html#v:GeneralizedNewtypeDeriving">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">generate</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Build-Macros.html#v:generate">Distribution.Simple.Build.Macros</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Build-PathsModule.html#v:generate">Distribution.Simple.Build.PathsModule</a></td></tr><tr><td class="src">generatePackageVersionMacros</td><td class="module"><a href="Distribution-Simple-Build-Macros.html#v:generatePackageVersionMacros">Distribution.Simple.Build.Macros</a></td></tr><tr><td class="src">generateRegistrationInfo</td><td class="module"><a href="Distribution-Simple-Register.html#v:generateRegistrationInfo">Distribution.Simple.Register</a></td></tr><tr><td class="src">Generic</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Generic">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">GenericPackageDescription</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#t:GenericPackageDescription">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#t:GenericPackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:GenericPackageDescription">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:GenericPackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">genericRnf</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:genericRnf">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Generics</td><td class="module"><a href="Language-Haskell-Extension.html#v:Generics">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">genPackageFlags</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:genPackageFlags">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:genPackageFlags">Distribution.PackageDescription</a></td></tr><tr><td class="src">Get</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">get</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#v:get">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:get">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">getAll</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:getAll">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">getAllInternalToolDependencies</td><td class="module"><a href="Distribution-Simple-BuildToolDepends.html#v:getAllInternalToolDependencies">Distribution.Simple.BuildToolDepends</a></td></tr><tr><td class="src">getAllToolDependencies</td><td class="module"><a href="Distribution-Simple-BuildToolDepends.html#v:getAllToolDependencies">Distribution.Simple.BuildToolDepends</a></td></tr><tr><td class="src">getAny</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:getAny">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">getChar</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">getCompilerVersion</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:getCompilerVersion">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">getComponent</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:getComponent">Distribution.Types.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:getComponent">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">getComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:getComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">getConfigStateFile</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getConfigStateFile">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getContents</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">getCurTime</td><td class="module"><a href="Distribution-Compat-Time.html#v:getCurTime">Distribution.Compat.Time</a></td></tr><tr><td class="src">getDbProgramOutput</td><td class="module"><a href="Distribution-Simple-Program.html#v:getDbProgramOutput">Distribution.Simple.Program</a></td></tr><tr><td class="src">getDirectoryContents</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:getDirectoryContents">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">getDirectoryContentsRecursive</td><td class="module"><a href="Distribution-Simple-Utils.html#v:getDirectoryContentsRecursive">Distribution.Simple.Utils</a></td></tr><tr><td class="src">getEffectiveEnvironment</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:getEffectiveEnvironment">Distribution.Simple.Program.Run</a></td></tr><tr><td class="src">getExeSourceFiles</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:getExeSourceFiles">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">getExtensions</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:getExtensions">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">getFileAge</td><td class="module"><a href="Distribution-Compat-Time.html#v:getFileAge">Distribution.Compat.Time</a></td></tr><tr><td class="src">getFileContents</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:getFileContents">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">getFLibSourceFiles</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:getFLibSourceFiles">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">getGhcInfo</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getGhcInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">getGlobalPackageDB</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:getGlobalPackageDB">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getGlobalPackageDB">Distribution.Simple.GHC</a></td></tr><tr><td class="src">getHSLibraryName</td><td class="module"><a href="Distribution-Types-UnitId.html#v:getHSLibraryName">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">getImplInfo</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getImplInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">getInstalledPackages</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:getInstalledPackages">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:getInstalledPackages">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:getInstalledPackages">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:getInstalledPackages">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:getInstalledPackages">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getInstalledPackages">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">7 (Function)</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getInstalledPackages">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getInstalledPackagesMonitorFiles</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getInstalledPackagesMonitorFiles">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getInstalledPackagesMonitorFiles">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getInternalPackages</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getInternalPackages">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getLanguages</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:getLanguages">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">getLast'</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:getLast-39-">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">getLibDir</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:getLibDir">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getLibDir">Distribution.Simple.GHC</a></td></tr><tr><td class="src">getLibSourceFiles</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:getLibSourceFiles">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">getLine</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">getModTime</td><td class="module"><a href="Distribution-Compat-Time.html#v:getModTime">Distribution.Compat.Time</a></td></tr><tr><td class="src">getNormalCommandDescriptions</td><td class="module"><a href="Distribution-Simple-Command.html#v:getNormalCommandDescriptions">Distribution.Simple.Command</a></td></tr><tr><td class="src">getPackageDBContents</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:getPackageDBContents">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:getPackageDBContents">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getPackageDBContents">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getPersistBuildConfig</td><td class="module"><a href="Distribution-Simple-Configure.html#v:getPersistBuildConfig">Distribution.Simple.Configure</a></td></tr><tr><td class="src">getProgramInvocationOutput</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:getProgramInvocationOutput">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:getProgramInvocationOutput">Distribution.Simple.Program</a></td></tr><tr><td class="src">getProgramOutput</td><td class="module"><a href="Distribution-Simple-Program.html#v:getProgramOutput">Distribution.Simple.Program</a></td></tr><tr><td class="src">getProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:getProgramSearchPath">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:getProgramSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">getSourceFiles</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:getSourceFiles">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">getSystemSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:getSystemSearchPath">Distribution.Simple.Program.Find</a></td></tr><tr><td class="src">getWord8</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">gget</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">GHC</td><td class="module"><a href="Distribution-Compiler.html#v:GHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">GhcDynamicOnly</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcDynamicOnly">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcDynLinkMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcDynLinkMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcEnvFileClearPackageDbStack</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcEnvFileClearPackageDbStack">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GhcEnvFileComment</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcEnvFileComment">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GhcEnvFilePackageDb</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcEnvFilePackageDb">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GhcEnvFilePackageId</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcEnvFilePackageId">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GhcEnvironmentFileEntry</td><td class="module"><a href="Distribution-Simple-GHC.html#t:GhcEnvironmentFileEntry">Distribution.Simple.GHC</a></td></tr><tr><td class="src">GHCForeignImportPrim</td><td class="module"><a href="Language-Haskell-Extension.html#v:GHCForeignImportPrim">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">GhcImplInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-GHC.html#t:GhcImplInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:GhcImplInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">ghcInvocation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcInvocation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GHCJS</td><td class="module"><a href="Distribution-Compiler.html#v:GHCJS">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">Ghcjs</td><td class="module"><a href="Distribution-System.html#v:Ghcjs">Distribution.System</a></td></tr><tr><td class="src">ghcjsPkgProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ghcjsPkgProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ghcjsPkgProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">ghcjsProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ghcjsProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ghcjsProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">GhcMaximumOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcMaximumOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeAbiHash</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeAbiHash">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeCompile</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeCompile">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeInteractive</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeInteractive">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeLink</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeLink">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcModeMake</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcModeMake">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcNoOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcNoOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcNormalOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcNormalOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCabal</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCabal">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCcOptions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCcOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCppIncludePath</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCppIncludePath">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCppIncludes</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCppIncludes">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptCppOptions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptCppOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDebugInfo</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDebugInfo">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDylibName</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDylibName">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDynHiSuffix</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDynHiSuffix">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDynLinkMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDynLinkMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptDynObjSuffix</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptDynObjSuffix">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtensionMap</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtensionMap">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtensions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtensions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtra</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtra">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtraDefault</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtraDefault">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptExtraPath</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptExtraPath">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptFfiIncludes</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptFfiIncludes">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptFPic</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptFPic">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptGHCiScripts</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptGHCiScripts">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptHideAllPackages</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptHideAllPackages">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptHiDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptHiDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptHiSuffix</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptHiSuffix">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptHPCDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptHPCDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptInputFiles</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptInputFiles">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptInputModules</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptInputModules">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptInstantiatedWith</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptInstantiatedWith">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcOptions</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptions</td><td class="module"><a href="Distribution-Simple-LHC.html#v:ghcOptions">Distribution.Simple.LHC</a></td></tr><tr><td class="src">ghcOptLanguage</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLanguage">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkFrameworkDirs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkFrameworkDirs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkFrameworks</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkFrameworks">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkLibPath</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkLibPath">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkLibs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkLibs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkModDefFiles</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkModDefFiles">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkNoHsMain</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkNoHsMain">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptLinkOptions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptLinkOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptNoAutoLinkPackages</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptNoAutoLinkPackages">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptNoCode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptNoCode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptNoLink</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptNoLink">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptNumJobs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptNumJobs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptObjDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptObjDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptObjSuffix</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptObjSuffix">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptOutputDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptOutputDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptOutputDynFile</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptOutputDynFile">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptOutputFile</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptOutputFile">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptPackageDBs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptPackageDBs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptPackages</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptPackages">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptProfilingAuto</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptProfilingAuto">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptProfilingMode</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptProfilingMode">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptRPaths</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptRPaths">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptShared</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptShared">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptSourcePath</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptSourcePath">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptSourcePathClear</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptSourcePathClear">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptSplitObjs</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptSplitObjs">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptStaticLib</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptStaticLib">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptStubDir</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptStubDir">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptThisComponentId</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptThisComponentId">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptThisUnitId</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptThisUnitId">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptVerbosity</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptVerbosity">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcOptWarnMissingHomeModules</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:ghcOptWarnMissingHomeModules">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcPkgProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ghcPkgProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ghcPkgProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">GhcProfAuto</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#t:GhcProfAuto">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcProfAutoAll</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcProfAutoAll">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcProfAutoExported</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcProfAutoExported">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcProfAutoToplevel</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcProfAutoToplevel">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ghcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ghcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">GhcSpecialOptimisation</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcSpecialOptimisation">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcStaticAndDynamic</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticAndDynamic">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">GhcStaticOnly</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:GhcStaticOnly">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">ghcVerbosityOptions</td><td class="module"><a href="Distribution-Simple-LHC.html#v:ghcVerbosityOptions">Distribution.Simple.LHC</a></td></tr><tr><td class="src">Git</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Git">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Git">Distribution.PackageDescription</a></td></tr><tr><td class="src">globalCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:globalCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">GlobalFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:GlobalFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:GlobalFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">globalNumericVersion</td><td class="module"><a href="Distribution-Simple-Setup.html#v:globalNumericVersion">Distribution.Simple.Setup</a></td></tr><tr><td class="src">GlobalPackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:GlobalPackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">globalVersion</td><td class="module"><a href="Distribution-Simple-Setup.html#v:globalVersion">Distribution.Simple.Setup</a></td></tr><tr><td class="src">gmappend</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:gmappend">Distribution.Compat.Semigroup</a>, <a href="Distribution-Compat-Prelude-Internal.html#v:gmappend">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">gmempty</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:gmempty">Distribution.Compat.Semigroup</a>, <a href="Distribution-Compat-Prelude-Internal.html#v:gmempty">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">GnuArch</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:GnuArch">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:GnuArch">Distribution.PackageDescription</a></td></tr><tr><td class="src">GPL</td><td class="module"><a href="Distribution-License.html#v:GPL">Distribution.License</a>, <a href="Distribution-Make.html#v:GPL">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">gput</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">Graph</td><td class="module"><a href="Distribution-Compat-Graph.html#t:Graph">Distribution.Compat.Graph</a></td></tr><tr><td class="src">greencardProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:greencardProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:greencardProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">Group</td><td class="module"><a href="Distribution-TestSuite.html#v:Group">Distribution.TestSuite</a></td></tr><tr><td class="src">GroupLogs</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:GroupLogs">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">groupName</td><td class="module"><a href="Distribution-TestSuite.html#v:groupName">Distribution.TestSuite</a></td></tr><tr><td class="src">groupTests</td><td class="module"><a href="Distribution-TestSuite.html#v:groupTests">Distribution.TestSuite</a></td></tr><tr><td class="src">GT</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">guessWay</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:guessWay">Distribution.Simple.Hpc</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-H.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - H)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - H</p><table><tr><td class="src">haddock</td><td class="module"><a href="Distribution-Simple-Haddock.html#v:haddock">Distribution.Simple.Haddock</a></td></tr><tr><td class="src">haddockBenchmarks</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockBenchmarks">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockContents</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockContents">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockCss</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockCss">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:haddockdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">haddockDirName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:haddockDirName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">haddockDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockExecutables</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockExecutables">Distribution.Simple.Setup</a></td></tr><tr><td class="src">HaddockFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:HaddockFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:HaddockFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockForeignLibs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockForeignLibs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockForHackage</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockForHackage">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHoogle</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHoogle">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:haddockHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:haddockHook">Distribution.Simple</a></td></tr><tr><td class="src">haddockHscolour</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHscolour">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHscolourCss</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHscolourCss">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHtml</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHtml">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHtmlLocation</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockHtmlLocation">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockHTMLs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:haddockHTMLs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">haddockInterfaces</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:haddockInterfaces">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">haddockInternal</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockInternal">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockKeepTempFiles</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockKeepTempFiles">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:haddockName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">haddockOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockPackagePaths</td><td class="module"><a href="Distribution-Simple-Haddock.html#v:haddockPackagePaths">Distribution.Simple.Haddock</a></td></tr><tr><td class="src">haddockPref</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:haddockPref">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">haddockProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:haddockProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:haddockProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">haddockProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">HaddockTarget</td><td class="module"><a href="Distribution-Simple-Setup.html#t:HaddockTarget">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockTestSuites</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockTestSuites">Distribution.Simple.Setup</a></td></tr><tr><td class="src">haddockVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:haddockVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">HaLVM</td><td class="module"><a href="Distribution-System.html#v:HaLVM">Distribution.System</a></td></tr><tr><td class="src">handleDoesNotExist</td><td class="module"><a href="Distribution-Simple-Utils.html#v:handleDoesNotExist">Distribution.Simple.Utils</a></td></tr><tr><td class="src">happyProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:happyProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:happyProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">hasBenchmarks</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasBenchmarks">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasBenchmarks">Distribution.PackageDescription</a></td></tr><tr><td class="src">hasExes</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasExes">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasExes">Distribution.PackageDescription</a></td></tr><tr><td class="src">hasForeignLibs</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasForeignLibs">Distribution.Types.PackageDescription</a></td></tr><tr><td class="src">hashModuleSubst</td><td class="module"><a href="Distribution-Backpack.html#v:hashModuleSubst">Distribution.Backpack</a></td></tr><tr><td class="src">Haskell2010</td><td class="module"><a href="Language-Haskell-Extension.html#v:Haskell2010">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Haskell98</td><td class="module"><a href="Language-Haskell-Extension.html#v:Haskell98">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">HaskellSuite</td><td class="module"><a href="Distribution-Compiler.html#v:HaskellSuite">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">haskellSuitePkgProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:haskellSuitePkgProgram">Distribution.Simple.Program.Builtin</a></td></tr><tr><td class="src">haskellSuiteProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:haskellSuiteProgram">Distribution.Simple.Program.Builtin</a></td></tr><tr><td class="src">hasLibs</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasLibs">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasLibs">Distribution.PackageDescription</a></td></tr><tr><td class="src">hasLowerBound</td><td class="module"><a href="Distribution-Version.html#v:hasLowerBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">HasMungedPackageId</td><td class="module"><a href="Distribution-Package.html#t:HasMungedPackageId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">hasPublicLib</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasPublicLib">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasPublicLib">Distribution.PackageDescription</a></td></tr><tr><td class="src">hasTests</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:hasTests">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:hasTests">Distribution.PackageDescription</a></td></tr><tr><td class="src">HasUnitId</td><td class="module"><a href="Distribution-Package.html#t:HasUnitId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">hasUpperBound</td><td class="module"><a href="Distribution-Version.html#v:hasUpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">HBC</td><td class="module"><a href="Distribution-Compiler.html#v:HBC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">hcOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:hcOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:hcOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">HcPkgInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#t:HcPkgInfo">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:HcPkgInfo">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">hcPkgInfo</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:hcPkgInfo">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:hcPkgInfo">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:hcPkgInfo">Distribution.Simple.GHC</a></td></tr><tr><td class="src">hcPkgProgram</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:hcPkgProgram">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">hcProfOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:hcProfOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:hcProfOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">hcSharedOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:hcSharedOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:hcSharedOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">head</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Helium</td><td class="module"><a href="Distribution-Compiler.html#v:Helium">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">helpCommandUI</td><td class="module"><a href="Distribution-Simple-Command.html#v:helpCommandUI">Distribution.Simple.Command</a></td></tr><tr><td class="src">HereDocuments</td><td class="module"><a href="Language-Haskell-Extension.html#v:HereDocuments">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">HiddenCommand</td><td class="module"><a href="Distribution-Simple-Command.html#v:HiddenCommand">Distribution.Simple.Command</a></td></tr><tr><td class="src">hiddenCommand</td><td class="module"><a href="Distribution-Simple-Command.html#v:hiddenCommand">Distribution.Simple.Command</a></td></tr><tr><td class="src">hiddenModules</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:hiddenModules">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">hide</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:hide">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">hideInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:hideInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">HidingRenaming</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:HidingRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#v:HidingRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="src">hmakeProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:hmakeProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:hmakeProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">homepage</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:homepage">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:homepage">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:homepage">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">HookedBuildInfo</td><td class="module"><a href="Distribution-Types-HookedBuildInfo.html#t:HookedBuildInfo">Distribution.Types.HookedBuildInfo</a>, <a href="Distribution-PackageDescription.html#t:HookedBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">hookedPreProcessors</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:hookedPreProcessors">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:hookedPreProcessors">Distribution.Simple</a></td></tr><tr><td class="src">hookedPrograms</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:hookedPrograms">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:hookedPrograms">Distribution.Simple</a></td></tr><tr><td class="src">hostPlatform</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:hostPlatform">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:hostPlatform">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">hpcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:hpcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:hpcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">Hppa</td><td class="module"><a href="Distribution-System.html#v:Hppa">Distribution.System</a></td></tr><tr><td class="src">HPUX</td><td class="module"><a href="Distribution-System.html#v:HPUX">Distribution.System</a></td></tr><tr><td class="src">hsc2hsProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:hsc2hsProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:hsc2hsProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">hscolour</td><td class="module"><a href="Distribution-Simple-Haddock.html#v:hscolour">Distribution.Simple.Haddock</a></td></tr><tr><td class="src">hscolourBenchmarks</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourBenchmarks">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourCSS</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourCSS">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourExecutables</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourExecutables">Distribution.Simple.Setup</a></td></tr><tr><td class="src">HscolourFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:HscolourFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:HscolourFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourForeignLibs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourForeignLibs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:hscolourHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:hscolourHook">Distribution.Simple</a></td></tr><tr><td class="src">hscolourPref</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:hscolourPref">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">hscolourProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:hscolourProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:hscolourProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">hscolourTestSuites</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourTestSuites">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hscolourVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:hscolourVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">hsLibraries</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:hsLibraries">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">hsSourceDirs</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:hsSourceDirs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:hsSourceDirs">Distribution.PackageDescription</a></td></tr><tr><td class="src">hstoolVersion</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:hstoolVersion">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">htmlDir</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:htmlDir">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">htmldir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:htmldir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">HtmldirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:HtmldirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">Hugs</td><td class="module"><a href="Distribution-Compiler.html#v:Hugs">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">Hurd</td><td class="module"><a href="Distribution-System.html#v:Hurd">Distribution.System</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-I.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - I)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - I</p><table><tr><td class="src">I386</td><td class="module"><a href="Distribution-System.html#v:I386">Distribution.System</a></td></tr><tr><td class="src">IA64</td><td class="module"><a href="Distribution-System.html#v:IA64">Distribution.System</a></td></tr><tr><td class="src">id</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ignoreBOM</td><td class="module"><a href="Distribution-Utils-Generic.html#v:ignoreBOM">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:ignoreBOM">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ignoreConditions</td><td class="module"><a href="Distribution-Types-CondTree.html#v:ignoreConditions">Distribution.Types.CondTree</a></td></tr><tr><td class="src">Impl</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:Impl">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:Impl">Distribution.PackageDescription</a></td></tr><tr><td class="src">ImplicitParams</td><td class="module"><a href="Language-Haskell-Extension.html#v:ImplicitParams">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">ImplicitPrelude</td><td class="module"><a href="Language-Haskell-Extension.html#v:ImplicitPrelude">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">importDirs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:importDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">ImpredicativeTypes</td><td class="module"><a href="Language-Haskell-Extension.html#v:ImpredicativeTypes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">includedir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:includedir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">includeDirs</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:includeDirs">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:includeDirs">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:includeDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">includeProvidesRn</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:includeProvidesRn">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">IncludeRenaming</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#t:IncludeRenaming">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:IncludeRenaming">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">includeRequiresRn</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:includeRequiresRn">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">includes</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:includes">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:includes">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:includes">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">InclusiveBound</td><td class="module"><a href="Distribution-Version.html#v:InclusiveBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">IncoherentInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:IncoherentInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">IndefFullUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:IndefFullUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">indefinite</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:indefinite">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">info</td><td class="module"><a href="Distribution-Simple-Utils.html#v:info">Distribution.Simple.Utils</a></td></tr><tr><td class="src">infoNoWrap</td><td class="module"><a href="Distribution-Simple-Utils.html#v:infoNoWrap">Distribution.Simple.Utils</a></td></tr><tr><td class="src">infoProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:infoProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">init</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:init">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">initialBuildSteps</td><td class="module"><a href="Distribution-Simple-Build.html#v:initialBuildSteps">Distribution.Simple.Build</a></td></tr><tr><td class="src">initialPathTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:initialPathTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">initInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:initInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">initPackageDB</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:initPackageDB">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:initPackageDB">Distribution.Simple.Register</a></td></tr><tr><td class="src">inplaceInstalledPackageInfo</td><td class="module"><a href="Distribution-Simple-Register.html#v:inplaceInstalledPackageInfo">Distribution.Simple.Register</a></td></tr><tr><td class="src">inplacePackageDbPath</td><td class="module"><a href="Distribution-Simple-UHC.html#v:inplacePackageDbPath">Distribution.Simple.UHC</a></td></tr><tr><td class="src">insert</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:insert">Distribution.Compat.Graph</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:insert">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">insertLookupWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">insertWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">insertWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">install</td><td class="module"><a href="Distribution-Simple-Install.html#v:install">Distribution.Simple.Install</a></td></tr><tr><td class="src">installCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installDirectoryContents</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installDirectoryContents">Distribution.Simple.Utils</a></td></tr><tr><td class="src">InstallDirs</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:InstallDirs">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">installDirsOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installDirsOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installDirsTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:installDirsTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">InstallDirTemplates</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">installDirTemplates</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:installDirTemplates">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:installDirTemplates">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">installDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installedComponentId</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedComponentId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">installedComponentId_</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedComponentId_">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">installedDepends</td><td class="module"><a href="Distribution-Package.html#v:installedDepends">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">installedOpenUnitId</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedOpenUnitId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">InstalledPackageId</td><td class="module"><a href="Distribution-Types-UnitId.html#t:InstalledPackageId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">installedPackageId</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Package.html#v:installedPackageId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedPackageId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">InstalledPackageIndex</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#t:InstalledPackageIndex">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">InstalledPackageInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:InstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:InstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">installedPkgs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:installedPkgs">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:installedPkgs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">installedUnitId</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Package.html#v:installedUnitId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:installedUnitId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">installExe</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:installExe">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:installExe">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:installExe">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:installExe">Distribution.Simple.GHC</a></td></tr><tr><td class="src">installExecutableFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installExecutableFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installExecutableFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installExecutableFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">InstallFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:InstallFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:InstallFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installFLib</td><td class="module"><a href="Distribution-Simple-GHC.html#v:installFLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">installIncludes</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:installIncludes">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:installIncludes">Distribution.PackageDescription</a></td></tr><tr><td class="src">installInPlace</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installInPlace">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installLib</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:installLib">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:installLib">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-JHC.html#v:installLib">Distribution.Simple.JHC</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:installLib">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:installLib">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:installLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">installMaybeExecutableFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installMaybeExecutableFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installMaybeExecutableFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installMaybeExecutableFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installOrdinaryFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installOrdinaryFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installOrdinaryFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:installOrdinaryFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">installPackageDB</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installPackageDB">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installUseWrapper</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installUseWrapper">Distribution.Simple.Setup</a></td></tr><tr><td class="src">installVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:installVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">InstanceSigs</td><td class="module"><a href="Language-Haskell-Extension.html#v:InstanceSigs">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">instantiatedWith</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:instantiatedWith">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">instHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:instHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:instHook">Distribution.Simple</a></td></tr><tr><td class="src">Int</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Int16</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Int16">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Int32</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Int32">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Int64</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Int64">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Int8</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Int8">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Integer</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Integral</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">interact</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">intercalate</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:intercalate">Distribution.Compat.Prelude.Internal</a>, <a href="Distribution-Utils-Generic.html#v:intercalate">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:intercalate">Distribution.Simple.Utils</a></td></tr><tr><td class="src">internalPackageDBPath</td><td class="module"><a href="Distribution-Simple-Register.html#v:internalPackageDBPath">Distribution.Simple.Register</a></td></tr><tr><td class="src">interpretPackageDbFlags</td><td class="module"><a href="Distribution-Simple-Configure.html#v:interpretPackageDbFlags">Distribution.Simple.Configure</a></td></tr><tr><td class="src">InterruptibleFFI</td><td class="module"><a href="Language-Haskell-Extension.html#v:InterruptibleFFI">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">intersection</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">intersectionWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">intersectionWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">intersectVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:intersectVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">IntersectVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:IntersectVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">intersectVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:intersectVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">intersperse</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:intersperse">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">intToVerbosity</td><td class="module"><a href="Distribution-Verbosity.html#v:intToVerbosity">Distribution.Verbosity</a></td></tr><tr><td class="src">invertVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:invertVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">invertVersionRange</td><td class="module"><a href="Distribution-Version.html#v:invertVersionRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">invocationAsBatchFile</td><td class="module"><a href="Distribution-Simple-Program-Script.html#v:invocationAsBatchFile">Distribution.Simple.Program.Script</a></td></tr><tr><td class="src">invocationAsShellScript</td><td class="module"><a href="Distribution-Simple-Program-Script.html#v:invocationAsShellScript">Distribution.Simple.Program.Script</a></td></tr><tr><td class="src">invocationAsSystemScript</td><td class="module"><a href="Distribution-Simple-Program-Script.html#v:invocationAsSystemScript">Distribution.Simple.Program.Script</a></td></tr><tr><td class="src">invoke</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:invoke">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">invokeHcPkg</td><td class="module"><a href="Distribution-Simple-Register.html#v:invokeHcPkg">Distribution.Simple.Register</a></td></tr><tr><td class="src">IO</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:IO">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">IOEncoding</td><td class="module"><a href="Distribution-Simple-Program-Run.html#t:IOEncoding">Distribution.Simple.Program.Run</a></td></tr><tr><td class="src">IOEncodingText</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:IOEncodingText">Distribution.Simple.Program.Run</a></td></tr><tr><td class="src">IOEncodingUTF8</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:IOEncodingUTF8">Distribution.Simple.Program.Run</a></td></tr><tr><td class="src">IOError</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ioError</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">IOS</td><td class="module"><a href="Distribution-System.html#v:IOS">Distribution.System</a></td></tr><tr><td class="src">IRIX</td><td class="module"><a href="Distribution-System.html#v:IRIX">Distribution.System</a></td></tr><tr><td class="src">isAbsoluteOnAnyPlatform</td><td class="module"><a href="Distribution-Utils-Generic.html#v:isAbsoluteOnAnyPlatform">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:isAbsoluteOnAnyPlatform">Distribution.Simple.Utils</a></td></tr><tr><td class="src">isAlpha</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isAlpha">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isAlphaNum</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isAlphaNum">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isAnyVersion</td><td class="module"><a href="Distribution-Version.html#v:isAnyVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">ISC</td><td class="module"><a href="Distribution-License.html#v:ISC">Distribution.License</a>, <a href="Distribution-Make.html#v:ISC">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">isDefaultIncludeRenaming</td><td class="module"><a href="Distribution-Types-IncludeRenaming.html#v:isDefaultIncludeRenaming">Distribution.Types.IncludeRenaming</a></td></tr><tr><td class="src">isDefaultRenaming</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:isDefaultRenaming">Distribution.Types.ModuleRenaming</a></td></tr><tr><td class="src">isDenormalized</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">isDigit</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isDigit">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isDynamic</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:isDynamic">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:isDynamic">Distribution.Simple.GHC</a></td></tr><tr><td class="src">isIEEE</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">isInfinite</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">isInfixOf</td><td class="module"><a href="Distribution-Utils-Generic.html#v:isInfixOf">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:isInfixOf">Distribution.Simple.Utils</a></td></tr><tr><td class="src">isInSearchPath</td><td class="module"><a href="Distribution-Simple-Utils.html#v:isInSearchPath">Distribution.Simple.Utils</a></td></tr><tr><td class="src">isInternal</td><td class="module"><a href="Distribution-Simple-BuildToolDepends.html#v:isInternal">Distribution.Simple.BuildToolDepends</a></td></tr><tr><td class="src">isJust</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isJust">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isNaN</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">isNegativeZero</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">IsNode</td><td class="module"><a href="Distribution-Compat-Graph.html#t:IsNode">Distribution.Compat.Graph</a></td></tr><tr><td class="src">isNothing</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isNothing">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isNoVersion</td><td class="module"><a href="Distribution-Version.html#v:isNoVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">isPrefixOf</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isPrefixOf">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isProperSubmapOf</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">isProperSubmapOfBy</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">isRelativeOnAnyPlatform</td><td class="module"><a href="Distribution-Utils-Generic.html#v:isRelativeOnAnyPlatform">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:isRelativeOnAnyPlatform">Distribution.Simple.Utils</a></td></tr><tr><td class="src">isRelaxDeps</td><td class="module"><a href="Distribution-Simple-Setup.html#v:isRelaxDeps">Distribution.Simple.Setup</a></td></tr><tr><td class="src">isSpace</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isSpace">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isSpecificVersion</td><td class="module"><a href="Distribution-Version.html#v:isSpecificVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">IsString</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:IsString">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isSubmapOf</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">isSubmapOfBy</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">isSuffixOf</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isSuffixOf">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isUpper</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:isUpper">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">isVerboseCallSite</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseCallSite">Distribution.Verbosity</a></td></tr><tr><td class="src">isVerboseCallStack</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseCallStack">Distribution.Verbosity</a></td></tr><tr><td class="src">isVerboseMarkOutput</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseMarkOutput">Distribution.Verbosity</a></td></tr><tr><td class="src">isVerboseNoWrap</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseNoWrap">Distribution.Verbosity</a></td></tr><tr><td class="src">isVerboseQuiet</td><td class="module"><a href="Distribution-Verbosity.html#v:isVerboseQuiet">Distribution.Verbosity</a></td></tr><tr><td class="src">iterate</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-J.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - J)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - J</p><table><tr><td class="src">JavaScript</td><td class="module"><a href="Distribution-System.html#v:JavaScript">Distribution.System</a></td></tr><tr><td class="src">JavaScriptFFI</td><td class="module"><a href="Language-Haskell-Extension.html#v:JavaScriptFFI">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">JHC</td><td class="module"><a href="Distribution-Compiler.html#v:JHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">jhcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:jhcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:jhcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">jsSources</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:jsSources">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:jsSources">Distribution.PackageDescription</a></td></tr><tr><td class="src">Just</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-K.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - K)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - K</p><table><tr><td class="src">Key</td><td class="module"><a href="Distribution-Compat-Graph.html#t:Key">Distribution.Compat.Graph</a></td></tr><tr><td class="src">keys</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:keys">Distribution.Compat.Graph</a></td></tr><tr><td class="src">keysSet</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:keysSet">Distribution.Compat.Graph</a></td></tr><tr><td class="src">KindSignatures</td><td class="module"><a href="Language-Haskell-Extension.html#v:KindSignatures">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">knownArches</td><td class="module"><a href="Distribution-System.html#v:knownArches">Distribution.System</a></td></tr><tr><td class="src">knownBenchmarkTypes</td><td class="module"><a href="Distribution-Types-BenchmarkType.html#v:knownBenchmarkTypes">Distribution.Types.BenchmarkType</a>, <a href="Distribution-PackageDescription.html#v:knownBenchmarkTypes">Distribution.PackageDescription</a></td></tr><tr><td class="src">knownBuildTypes</td><td class="module"><a href="Distribution-Types-BuildType.html#v:knownBuildTypes">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:knownBuildTypes">Distribution.PackageDescription</a></td></tr><tr><td class="src">KnownExtension</td><td class="module"><a href="Language-Haskell-Extension.html#t:KnownExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">knownExtensions</td><td class="module"><a href="Language-Haskell-Extension.html#v:knownExtensions">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">knownForeignLibTypes</td><td class="module"><a href="Distribution-Types-ForeignLibType.html#v:knownForeignLibTypes">Distribution.Types.ForeignLibType</a></td></tr><tr><td class="src">knownLanguages</td><td class="module"><a href="Language-Haskell-Extension.html#v:knownLanguages">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">knownLicenses</td><td class="module"><a href="Distribution-License.html#v:knownLicenses">Distribution.License</a>, Distribution.Simple</td></tr><tr><td class="src">knownOSs</td><td class="module"><a href="Distribution-System.html#v:knownOSs">Distribution.System</a></td></tr><tr><td class="src">knownProfDetailLevels</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:knownProfDetailLevels">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">knownPrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:knownPrograms">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:knownPrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">knownRepoTypes</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:knownRepoTypes">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:knownRepoTypes">Distribution.PackageDescription</a></td></tr><tr><td class="src">knownSuffixHandlers</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:knownSuffixHandlers">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">knownTestTypes</td><td class="module"><a href="Distribution-Types-TestType.html#v:knownTestTypes">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#v:knownTestTypes">Distribution.PackageDescription</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-L.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - L)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - L</p><table><tr><td class="src">LambdaCase</td><td class="module"><a href="Language-Haskell-Extension.html#v:LambdaCase">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Language</td><td class="module"><a href="Language-Haskell-Extension.html#t:Language">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">languageToFlags</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:languageToFlags">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">last</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Last'</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:Last-39-">Distribution.Compat.Semigroup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:Last-39-">Distribution.Compat.Semigroup</a></td></tr><tr><td class="src">LaterVersion</td><td class="module"><a href="Distribution-Version.html#v:LaterVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">laterVersion</td><td class="module"><a href="Distribution-Version.html#v:laterVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">lcm</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">lc_ann_id</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_ann_id">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_cid</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_cid">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_component</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_component">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_exe_deps</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_exe_deps">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_includes</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_includes">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_insts</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_insts">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_pkgid</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_pkgid">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_public</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_public">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_shape</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_shape">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_sig_includes</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_sig_includes">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">lc_uid</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:lc_uid">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">ldOptions</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:ldOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:ldOptions">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ldOptions">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">ldProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:ldProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:ldProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">Left</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">LegacyExeDependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-LegacyExeDependency.html#t:LegacyExeDependency">Distribution.Types.LegacyExeDependency</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-LegacyExeDependency.html#v:LegacyExeDependency">Distribution.Types.LegacyExeDependency</a></td></tr><tr><td class="src">length</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:length">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">lessVerbose</td><td class="module"><a href="Distribution-Verbosity.html#v:lessVerbose">Distribution.Verbosity</a></td></tr><tr><td class="src">lex</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">LFlags</td><td class="module"><a href="Distribution-Simple-Command.html#t:LFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">LGPL</td><td class="module"><a href="Distribution-License.html#v:LGPL">Distribution.License</a>, <a href="Distribution-Make.html#v:LGPL">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">LHC</td><td class="module"><a href="Distribution-Compiler.html#v:LHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">lhcPkgProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:lhcPkgProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:lhcPkgProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">lhcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:lhcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:lhcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">libAbiHash</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:libAbiHash">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:libAbiHash">Distribution.Simple.GHC</a></td></tr><tr><td class="src">libBuildInfo</td><td class="module"><a href="Distribution-Types-Library.html#v:libBuildInfo">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">LibComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:LibComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:LibComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">libCoverage</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:libCoverage">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:libCoverage">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">libdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:libdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">LibdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:LibdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">LiberalTypeSynonyms</td><td class="module"><a href="Language-Haskell-Extension.html#v:LiberalTypeSynonyms">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">libexecdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:libexecdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">libexecsubdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:libexecsubdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">libExposed</td><td class="module"><a href="Distribution-Types-Library.html#v:libExposed">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libExposed">Distribution.PackageDescription</a></td></tr><tr><td class="src">libFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:libFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">libModules</td><td class="module"><a href="Distribution-Types-Library.html#v:libModules">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">libModulesAutogen</td><td class="module"><a href="Distribution-Types-Library.html#v:libModulesAutogen">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libModulesAutogen">Distribution.PackageDescription</a></td></tr><tr><td class="src">libName</td><td class="module"><a href="Distribution-Types-Library.html#v:libName">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:libName">Distribution.PackageDescription</a></td></tr><tr><td class="src">LibNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:LibNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">Library</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Library.html#t:Library">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#t:Library">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Library.html#v:Library">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:Library">Distribution.PackageDescription</a></td></tr><tr><td class="src">library</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:library">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:library">Distribution.PackageDescription</a></td></tr><tr><td class="src">libraryComponentName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:libraryComponentName">Distribution.Types.ComponentName</a></td></tr><tr><td class="src">libraryDirs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:libraryDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">libraryDynDirs</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:libraryDynDirs">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">libraryDynDirSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:libraryDynDirSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">libsubdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:libsubdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">LibsubdirVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:LibsubdirVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">LibVersionInfo</td><td class="module"><a href="Distribution-Types-ForeignLib.html#t:LibVersionInfo">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">libVersionInfoCRA</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:libVersionInfoCRA">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">libVersionMajor</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:libVersionMajor">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">libVersionNumber</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:libVersionNumber">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">libVersionNumberShow</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:libVersionNumberShow">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">License</td><td class="module"><a href="Distribution-License.html#t:License">Distribution.License</a>, <a href="Distribution-Make.html#t:License">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">license</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:license">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:license">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:license">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">licenseFiles</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:licenseFiles">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:licenseFiles">Distribution.PackageDescription</a></td></tr><tr><td class="src">liftM</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:liftM">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">liftM2</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:liftM2">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">liftOption</td><td class="module"><a href="Distribution-Simple-Command.html#v:liftOption">Distribution.Simple.Command</a></td></tr><tr><td class="src">LineNo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#t:LineNo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">lines</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">LinkedComponent</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponent">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:LinkedComponent">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">LinkedComponentMap</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#t:LinkedComponentMap">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">Linux</td><td class="module"><a href="Distribution-System.html#v:Linux">Distribution.System</a></td></tr><tr><td class="src">list</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:list">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">listInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:listInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">listPackageSources</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:listPackageSources">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">listToMaybe</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:listToMaybe">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">listUnion</td><td class="module"><a href="Distribution-Utils-Generic.html#v:listUnion">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:listUnion">Distribution.Simple.Utils</a></td></tr><tr><td class="src">listUnionRight</td><td class="module"><a href="Distribution-Utils-Generic.html#v:listUnionRight">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:listUnionRight">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Lit</td><td class="module"><a href="Distribution-Types-Condition.html#v:Lit">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:Lit">Distribution.PackageDescription</a></td></tr><tr><td class="src">LocalBuildInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#t:LocalBuildInfo">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:LocalBuildInfo">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:LocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">localBuildInfoFile</td><td class="module"><a href="Distribution-Simple-Configure.html#v:localBuildInfoFile">Distribution.Simple.Configure</a></td></tr><tr><td class="src">localCompatPackageKey</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localCompatPackageKey">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:localCompatPackageKey">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">localComponentId</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localComponentId">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:localComponentId">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">localPackage</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localPackage">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">localPackageLog</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:localPackageLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">localPkgDescr</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localPkgDescr">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:localPkgDescr">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">localUnitId</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:localUnitId">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:localUnitId">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">locationPath</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:locationPath">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:locationPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">log</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">logBase</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">logFile</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:logFile">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">LogProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#t:LogProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">look</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:look">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">lookup</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:lookup">Distribution.Compat.Graph</a></td></tr><tr><td class="src">lookupComponent</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:lookupComponent">Distribution.Types.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:lookupComponent">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">lookupComponentId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupComponentId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupDependency</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupDependency">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupGE</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupGT</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupIndex</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupInstalledPackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupInstalledPackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupInternalDependency</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupInternalDependency">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupKnownProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:lookupKnownProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:lookupKnownProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">lookupLE</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupLT</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">lookupPackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupPackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupPackageName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupPackageName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:lookupProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:lookupProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">lookupProgramVersion</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:lookupProgramVersion">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:lookupProgramVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">lookupSourcePackageId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupSourcePackageId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">lookupUnitId</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:lookupUnitId">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">LowerBound</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Version.html#t:LowerBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Version.html#v:LowerBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">lowercase</td><td class="module"><a href="Distribution-Utils-Generic.html#v:lowercase">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:lowercase">Distribution.Simple.Utils</a></td></tr><tr><td class="src">LT</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-M.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - M)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - M</p><table><tr><td class="src">M68k</td><td class="module"><a href="Distribution-System.html#v:M68k">Distribution.System</a></td></tr><tr><td class="src">MagicHash</td><td class="module"><a href="Language-Haskell-Extension.html#v:MagicHash">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">main</td><td class="module"><a href="Distribution-ModuleName.html#v:main">Distribution.ModuleName</a></td></tr><tr><td class="src">maintainer</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:maintainer">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:maintainer">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:maintainer">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">MajorBoundVersion</td><td class="module"><a href="Distribution-Version.html#v:MajorBoundVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">majorBoundVersion</td><td class="module"><a href="Distribution-Version.html#v:majorBoundVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Make</td><td class="module"><a href="Distribution-Types-BuildType.html#v:Make">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:Make">Distribution.PackageDescription</a></td></tr><tr><td class="src">mandir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:mandir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">many</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:many">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:many">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">many1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:many1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">manyTill</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:manyTill">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">Map</td><td class="module">Distribution.Compat.Map.Strict, <a href="Distribution-Compat-Prelude-Internal.html#t:Map">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">map</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapAccum</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapAccumM</td><td class="module"><a href="Distribution-Utils-MapAccum.html#v:mapAccumM">Distribution.Utils.MapAccum</a></td></tr><tr><td class="src">mapAccumRWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapAccumWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapCondTree</td><td class="module"><a href="Distribution-Types-CondTree.html#v:mapCondTree">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:mapCondTree">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">mapEither</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapEitherWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapKeys</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapKeysMonotonic</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapKeysWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapMaybe</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:mapMaybe">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mapMaybeWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">mappend</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:mappend">Distribution.Compat.Semigroup</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">mapTreeConds</td><td class="module"><a href="Distribution-Types-CondTree.html#v:mapTreeConds">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:mapTreeConds">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">mapTreeConstrs</td><td class="module"><a href="Distribution-Types-CondTree.html#v:mapTreeConstrs">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:mapTreeConstrs">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">mapTreeData</td><td class="module"><a href="Distribution-Types-CondTree.html#v:mapTreeData">Distribution.Types.CondTree</a>, <a href="Distribution-PackageDescription-Configuration.html#v:mapTreeData">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">mapWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">markup</td><td class="module"><a href="Distribution-Simple-Program-Hpc.html#v:markup">Distribution.Simple.Program.Hpc</a></td></tr><tr><td class="src">markupPackage</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:markupPackage">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">markupTest</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:markupTest">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">matchDirFileGlob</td><td class="module"><a href="Distribution-Simple-Utils.html#v:matchDirFileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">matchFileGlob</td><td class="module"><a href="Distribution-Simple-Utils.html#v:matchFileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">max</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">maxBound</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">MaximalDebugInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:MaximalDebugInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">maximum</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:maximum">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">MaximumOptimisation</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:MaximumOptimisation">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">maxView</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">maxViewWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Maybe</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">maybe</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">maybeComponentInstantiatedWith</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:maybeComponentInstantiatedWith">Distribution.Types.ComponentLocalBuildInfo</a></td></tr><tr><td class="src">maybeExit</td><td class="module"><a href="Distribution-Simple-Utils.html#v:maybeExit">Distribution.Simple.Utils</a></td></tr><tr><td class="src">maybeGetPersistBuildConfig</td><td class="module"><a href="Distribution-Simple-Configure.html#v:maybeGetPersistBuildConfig">Distribution.Simple.Configure</a></td></tr><tr><td class="src">maybeToFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#v:maybeToFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">maybeToList</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:maybeToList">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">mconcat</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:mconcat">Distribution.Compat.Semigroup</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">member</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:member">Distribution.Compat.Graph</a></td></tr><tr><td class="src">mempty</td><td class="module"><a href="Distribution-Compat-Semigroup.html#v:mempty">Distribution.Compat.Semigroup</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Mercurial</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Mercurial">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Mercurial">Distribution.PackageDescription</a></td></tr><tr><td class="src">merge</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:merge">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">mergeWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">min</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">minBound</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">MinimalDebugInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:MinimalDebugInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">minimum</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:minimum">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">minView</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">minViewWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Mips</td><td class="module"><a href="Distribution-System.html#v:Mips">Distribution.System</a></td></tr><tr><td class="src">MIT</td><td class="module"><a href="Distribution-License.html#v:MIT">Distribution.License</a>, <a href="Distribution-Make.html#v:MIT">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">mixDir</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:mixDir">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">Mixin</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Mixin.html#t:Mixin">Distribution.Types.Mixin</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Mixin.html#v:Mixin">Distribution.Types.Mixin</a></td></tr><tr><td class="src">mixinIncludeRenaming</td><td class="module"><a href="Distribution-Types-Mixin.html#v:mixinIncludeRenaming">Distribution.Types.Mixin</a></td></tr><tr><td class="src">mixinPackageName</td><td class="module"><a href="Distribution-Types-Mixin.html#v:mixinPackageName">Distribution.Types.Mixin</a></td></tr><tr><td class="src">mixins</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:mixins">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:mixins">Distribution.PackageDescription</a></td></tr><tr><td class="src">mkAbiHash</td><td class="module"><a href="Distribution-Types-AbiHash.html#v:mkAbiHash">Distribution.Types.AbiHash</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkCommandUI</td><td class="module"><a href="Distribution-Simple-Command.html#v:mkCommandUI">Distribution.Simple.Command</a></td></tr><tr><td class="src">mkComponentId</td><td class="module"><a href="Distribution-Types-ComponentId.html#v:mkComponentId">Distribution.Types.ComponentId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkComponentsGraph</td><td class="module"><a href="Distribution-Backpack-ComponentsGraph.html#v:mkComponentsGraph">Distribution.Backpack.ComponentsGraph</a></td></tr><tr><td class="src">mkDefUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:mkDefUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">MkFlag</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:MkFlag">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:MkFlag">Distribution.PackageDescription</a></td></tr><tr><td class="src">mkFlagName</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:mkFlagName">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:mkFlagName">Distribution.PackageDescription</a></td></tr><tr><td class="src">mkLegacyUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:mkLegacyUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkLibName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:mkLibName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">mkLibVersionInfo</td><td class="module"><a href="Distribution-Types-ForeignLib.html#v:mkLibVersionInfo">Distribution.Types.ForeignLib</a></td></tr><tr><td class="src">mkMungedPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#v:mkMungedPackageName">Distribution.Types.MungedPackageName</a></td></tr><tr><td class="src">mkOpenUnitId</td><td class="module"><a href="Distribution-Backpack.html#v:mkOpenUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">MkOptDescr</td><td class="module"><a href="Distribution-Simple-Command.html#t:MkOptDescr">Distribution.Simple.Command</a></td></tr><tr><td class="src">mkPackageName</td><td class="module"><a href="Distribution-Types-PackageName.html#v:mkPackageName">Distribution.Types.PackageName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkPkgconfigName</td><td class="module"><a href="Distribution-Types-PkgconfigName.html#v:mkPkgconfigName">Distribution.Types.PkgconfigName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkProfLibName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:mkProfLibName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">mkSharedLibName</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:mkSharedLibName">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">mkSimplePreProcessor</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:mkSimplePreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">mkUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:mkUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mkUnqualComponentName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#v:mkUnqualComponentName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">mkVersion</td><td class="module"><a href="Distribution-Version.html#v:mkVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">mkVersion'</td><td class="module"><a href="Distribution-Version.html#v:mkVersion-39-">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">mkVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:mkVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">mod</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">modifyProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:modifyProgramSearchPath">Distribution.Simple.Program.Db</a></td></tr><tr><td class="src">modShapeProvides</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:modShapeProvides">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">modShapeRequires</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:modShapeRequires">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">ModSubst</td><td class="module"><a href="Distribution-Backpack-ModSubst.html#t:ModSubst">Distribution.Backpack.ModSubst</a></td></tr><tr><td class="src">modSubst</td><td class="module"><a href="Distribution-Backpack-ModSubst.html#v:modSubst">Distribution.Backpack.ModSubst</a></td></tr><tr><td class="src">ModTime</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Compat-Time.html#t:ModTime">Distribution.Compat.Time</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Compat-Time.html#v:ModTime">Distribution.Compat.Time</a></td></tr><tr><td class="src">Module</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-Module.html#t:Module">Distribution.Types.Module</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-Module.html#v:Module">Distribution.Types.Module</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">ModuleName</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-ModuleName.html#t:ModuleName">Distribution.ModuleName</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-ModuleName.html#v:ModuleName">Distribution.ModuleName</a></td></tr><tr><td class="src">moduleNameIndex</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:moduleNameIndex">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">modulePath</td><td class="module"><a href="Distribution-Types-Executable.html#v:modulePath">Distribution.Types.Executable</a>, <a href="Distribution-PackageDescription.html#v:modulePath">Distribution.PackageDescription</a></td></tr><tr><td class="src">ModuleReexport</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#t:ModuleReexport">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#t:ModuleReexport">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#v:ModuleReexport">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#v:ModuleReexport">Distribution.PackageDescription</a></td></tr><tr><td class="src">moduleReexportName</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#v:moduleReexportName">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#v:moduleReexportName">Distribution.PackageDescription</a></td></tr><tr><td class="src">moduleReexportOriginalName</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#v:moduleReexportOriginalName">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#v:moduleReexportOriginalName">Distribution.PackageDescription</a></td></tr><tr><td class="src">moduleReexportOriginalPackage</td><td class="module"><a href="Distribution-Types-ModuleReexport.html#v:moduleReexportOriginalPackage">Distribution.Types.ModuleReexport</a>, <a href="Distribution-PackageDescription.html#v:moduleReexportOriginalPackage">Distribution.PackageDescription</a></td></tr><tr><td class="src">ModuleRenaming</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#t:ModuleRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#t:ModuleRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-ModuleRenaming.html#v:ModuleRenaming">Distribution.Types.ModuleRenaming</a>, <a href="Distribution-PackageDescription.html#v:ModuleRenaming">Distribution.PackageDescription</a></td></tr><tr><td class="src">ModuleShape</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#t:ModuleShape">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:ModuleShape">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">Monad</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">MonadComprehensions</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonadComprehensions">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">MonadFailDesugaring</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonadFailDesugaring">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">MonadPlus</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:MonadPlus">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Monoid</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:Monoid">Distribution.Compat.Semigroup</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">MonoLocalBinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonoLocalBinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">MonomorphismRestriction</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonomorphismRestriction">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">MonoPatBinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:MonoPatBinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Monotone</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:Monotone">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:Monotone">Distribution.PackageDescription</a></td></tr><tr><td class="src">moreRecentFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:moreRecentFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">moreVerbose</td><td class="module"><a href="Distribution-Verbosity.html#v:moreVerbose">Distribution.Verbosity</a></td></tr><tr><td class="src">MPL</td><td class="module"><a href="Distribution-License.html#v:MPL">Distribution.License</a>, <a href="Distribution-Make.html#v:MPL">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">mplus</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:mplus">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">multiOption</td><td class="module"><a href="Distribution-Simple-Command.html#v:multiOption">Distribution.Simple.Command</a></td></tr><tr><td class="src">MultiParamTypeClasses</td><td class="module"><a href="Language-Haskell-Extension.html#v:MultiParamTypeClasses">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">multiStageProgramInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:multiStageProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program-Ar.html#v:multiStageProgramInvocation">Distribution.Simple.Program.Ar</a></td></tr><tr><td class="src">MultiWayIf</td><td class="module"><a href="Language-Haskell-Extension.html#v:MultiWayIf">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">munch</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:munch">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">munch1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:munch1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">mungedId</td><td class="module"><a href="Distribution-Package.html#v:mungedId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mungedName</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#v:mungedName">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="src">mungedName'</td><td class="module"><a href="Distribution-Package.html#v:mungedName-39-">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">MungedPackageId</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#t:MungedPackageId">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#v:MungedPackageId">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="src">MungedPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#t:MungedPackageName">Distribution.Types.MungedPackageName</a></td></tr><tr><td class="src">mungedVersion</td><td class="module"><a href="Distribution-Types-MungedPackageId.html#v:mungedVersion">Distribution.Types.MungedPackageId</a></td></tr><tr><td class="src">mungedVersion'</td><td class="module"><a href="Distribution-Package.html#v:mungedVersion-39-">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">mzero</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:mzero">Distribution.Compat.Prelude.Internal</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-N.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - N)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - N</p><table><tr><td class="src">N</td><td class="module"><a href="Distribution-Compat-Graph.html#v:N">Distribution.Compat.Graph</a></td></tr><tr><td class="src">Name</td><td class="module"><a href="Distribution-Simple-Command.html#t:Name">Distribution.Simple.Command</a></td></tr><tr><td class="src">name</td><td class="module"><a href="Distribution-TestSuite.html#v:name">Distribution.TestSuite</a></td></tr><tr><td class="src">NamedFieldPuns</td><td class="module"><a href="Language-Haskell-Extension.html#v:NamedFieldPuns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">NamedWildCards</td><td class="module"><a href="Language-Haskell-Extension.html#v:NamedWildCards">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">nativeMultiInstance</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:nativeMultiInstance">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">neededTargetsInBuildOrder</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:neededTargetsInBuildOrder">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">neededTargetsInBuildOrder'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:neededTargetsInBuildOrder-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">negate</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">NegativeLiterals</td><td class="module"><a href="Language-Haskell-Extension.html#v:NegativeLiterals">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">neighbors</td><td class="module"><a href="Distribution-Compat-Graph.html#v:neighbors">Distribution.Compat.Graph</a></td></tr><tr><td class="src">NetBSD</td><td class="module"><a href="Distribution-System.html#v:NetBSD">Distribution.System</a></td></tr><tr><td class="src">Never</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Never">Distribution.Simple.Setup</a></td></tr><tr><td class="src">newPackageDepsBehaviour</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:newPackageDepsBehaviour">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">NewQualifiedOperators</td><td class="module"><a href="Language-Haskell-Extension.html#v:NewQualifiedOperators">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">newSimpleUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:newSimpleUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">NFData</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:NFData">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">NHC</td><td class="module"><a href="Distribution-Compiler.html#v:NHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">NoAbiTag</td><td class="module"><a href="Distribution-Compiler.html#v:NoAbiTag">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">noArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:noArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">NoCallStackIO</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:NoCallStackIO">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">NoCopyDest</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:NoCopyDest">Distribution.Simple.InstallDirs</a>, <a href="Distribution-Simple-Setup.html#v:NoCopyDest">Distribution.Simple.Setup</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">Node</td><td class="module"><a href="Distribution-Compat-Graph.html#t:Node">Distribution.Compat.Graph</a></td></tr><tr><td class="src">NoDebugInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:NoDebugInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">nodeKey</td><td class="module"><a href="Distribution-Compat-Graph.html#v:nodeKey">Distribution.Compat.Graph</a></td></tr><tr><td class="src">nodeNeighbors</td><td class="module"><a href="Distribution-Compat-Graph.html#v:nodeNeighbors">Distribution.Compat.Graph</a></td></tr><tr><td class="src">nodeValue</td><td class="module"><a href="Distribution-Compat-Graph.html#v:nodeValue">Distribution.Compat.Graph</a></td></tr><tr><td class="src">noExtraFlags</td><td class="module"><a href="Distribution-Simple-Command.html#v:noExtraFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">NoFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#v:NoFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">NoGlob</td><td class="module"><a href="Distribution-Simple-Utils.html#v:NoGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">NondecreasingIndentation</td><td class="module"><a href="Language-Haskell-Extension.html#v:NondecreasingIndentation">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">None</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:None">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">NoOptimisation</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:NoOptimisation">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">NoParse</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:NoParse">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">noPkgDbStack</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:noPkgDbStack">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">normal</td><td class="module"><a href="Distribution-Verbosity.html#v:normal">Distribution.Verbosity</a></td></tr><tr><td class="src">NormalCommand</td><td class="module"><a href="Distribution-Simple-Command.html#v:NormalCommand">Distribution.Simple.Command</a></td></tr><tr><td class="src">NormalDebugInfo</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:NormalDebugInfo">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">normaliseLineEndings</td><td class="module"><a href="Distribution-Utils-Generic.html#v:normaliseLineEndings">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:normaliseLineEndings">Distribution.Simple.Utils</a></td></tr><tr><td class="src">NormalOptimisation</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:NormalOptimisation">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">not</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">notElem</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Nothing</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">notice</td><td class="module"><a href="Distribution-Simple-Utils.html#v:notice">Distribution.Simple.Utils</a></td></tr><tr><td class="src">noticeDoc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:noticeDoc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">noticeNoWrap</td><td class="module"><a href="Distribution-Simple-Utils.html#v:noticeNoWrap">Distribution.Simple.Utils</a></td></tr><tr><td class="src">notMember</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">notThisPackageVersion</td><td class="module"><a href="Distribution-Types-Dependency.html#v:notThisPackageVersion">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">notThisVersion</td><td class="module"><a href="Distribution-Version.html#v:notThisVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">NoUpperBound</td><td class="module"><a href="Distribution-Version.html#v:NoUpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">noVerboseFlag</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:noVerboseFlag">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">noVersion</td><td class="module"><a href="Distribution-Version.html#v:noVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">NPlusKPatterns</td><td class="module"><a href="Language-Haskell-Extension.html#v:NPlusKPatterns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">nub</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:nub">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">nubBy</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:nubBy">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">NubList</td><td class="module"><a href="Distribution-Utils-NubList.html#t:NubList">Distribution.Utils.NubList</a></td></tr><tr><td class="src">NubListR</td><td class="module"><a href="Distribution-Utils-NubList.html#t:NubListR">Distribution.Utils.NubList</a></td></tr><tr><td class="src">null</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:null">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:null">Distribution.Compat.Graph</a></td></tr><tr><td class="src">NullaryTypeClasses</td><td class="module"><a href="Language-Haskell-Extension.html#v:NullaryTypeClasses">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">nullVersion</td><td class="module"><a href="Distribution-Version.html#v:nullVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Num</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">NumDecimals</td><td class="module"><a href="Language-Haskell-Extension.html#v:NumDecimals">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">numericVersion</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:numericVersion">Distribution.Simple.HaskellSuite</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-O.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - O)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - O</p><table><tr><td class="src">ObjectiveC</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:ObjectiveC">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">ObjectiveCPlusPlus</td><td class="module"><a href="Distribution-Simple-CCompiler.html#v:ObjectiveCPlusPlus">Distribution.Simple.CCompiler</a></td></tr><tr><td class="src">objExtension</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:objExtension">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">odd</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">oldExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:oldExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:oldExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">OneComponentRequestedSpec</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:OneComponentRequestedSpec">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">OpenBSD</td><td class="module"><a href="Distribution-System.html#v:OpenBSD">Distribution.System</a></td></tr><tr><td class="src">OpenModule</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Backpack.html#t:OpenModule">Distribution.Backpack</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Backpack.html#v:OpenModule">Distribution.Backpack</a></td></tr><tr><td class="src">openModuleFreeHoles</td><td class="module"><a href="Distribution-Backpack.html#v:openModuleFreeHoles">Distribution.Backpack</a></td></tr><tr><td class="src">OpenModuleSubst</td><td class="module"><a href="Distribution-Backpack.html#t:OpenModuleSubst">Distribution.Backpack</a></td></tr><tr><td class="src">openModuleSubstFreeHoles</td><td class="module"><a href="Distribution-Backpack.html#v:openModuleSubstFreeHoles">Distribution.Backpack</a></td></tr><tr><td class="src">OpenModuleVar</td><td class="module"><a href="Distribution-Backpack.html#v:OpenModuleVar">Distribution.Backpack</a></td></tr><tr><td class="src">OpenUnitId</td><td class="module"><a href="Distribution-Backpack.html#t:OpenUnitId">Distribution.Backpack</a></td></tr><tr><td class="src">openUnitIdFreeHoles</td><td class="module"><a href="Distribution-Backpack.html#v:openUnitIdFreeHoles">Distribution.Backpack</a></td></tr><tr><td class="src">OptArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:OptArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">optArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:optArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">optArg'</td><td class="module"><a href="Distribution-Simple-Command.html#v:optArg-39-">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptDescr</td><td class="module"><a href="Distribution-Simple-Command.html#t:OptDescr">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptFlags</td><td class="module"><a href="Distribution-Simple-Command.html#t:OptFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptimisationLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">option</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:option">Distribution.Compat.ReadP</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Command.html#v:option">Distribution.Simple.Command</a></td></tr><tr><td class="src">optional</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:optional">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">OptionBool</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionBool">Distribution.TestSuite</a></td></tr><tr><td class="src">optionDefault</td><td class="module"><a href="Distribution-TestSuite.html#v:optionDefault">Distribution.TestSuite</a></td></tr><tr><td class="src">OptionDescr</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-TestSuite.html#t:OptionDescr">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionDescr">Distribution.TestSuite</a></td></tr><tr><td class="src">optionDescr</td><td class="module"><a href="Distribution-Simple-Command.html#v:optionDescr">Distribution.Simple.Command</a></td></tr><tr><td class="src">optionDescription</td><td class="module"><a href="Distribution-TestSuite.html#v:optionDescription">Distribution.TestSuite</a></td></tr><tr><td class="src">optionDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:optionDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">OptionEnum</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionEnum">Distribution.TestSuite</a></td></tr><tr><td class="src">OptionField</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Command.html#t:OptionField">Distribution.Simple.Command</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Command.html#v:OptionField">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptionFile</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionFile">Distribution.TestSuite</a></td></tr><tr><td class="src">optionFileExtensions</td><td class="module"><a href="Distribution-TestSuite.html#v:optionFileExtensions">Distribution.TestSuite</a></td></tr><tr><td class="src">optionFileIsDir</td><td class="module"><a href="Distribution-TestSuite.html#v:optionFileIsDir">Distribution.TestSuite</a></td></tr><tr><td class="src">optionFileMustExist</td><td class="module"><a href="Distribution-TestSuite.html#v:optionFileMustExist">Distribution.TestSuite</a></td></tr><tr><td class="src">optionName</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-TestSuite.html#v:optionName">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Command.html#v:optionName">Distribution.Simple.Command</a></td></tr><tr><td class="src">OptionNumber</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionNumber">Distribution.TestSuite</a></td></tr><tr><td class="src">optionNumberBounds</td><td class="module"><a href="Distribution-TestSuite.html#v:optionNumberBounds">Distribution.TestSuite</a></td></tr><tr><td class="src">optionNumberIsInt</td><td class="module"><a href="Distribution-TestSuite.html#v:optionNumberIsInt">Distribution.TestSuite</a></td></tr><tr><td class="src">optionNumJobs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:optionNumJobs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">OptionRngSeed</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionRngSeed">Distribution.TestSuite</a></td></tr><tr><td class="src">Options</td><td class="module"><a href="Distribution-TestSuite.html#t:Options">Distribution.TestSuite</a></td></tr><tr><td class="src">options</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-TestSuite.html#v:options">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:options">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:options">Distribution.PackageDescription</a></td></tr><tr><td class="src">OptionSet</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionSet">Distribution.TestSuite</a></td></tr><tr><td class="src">OptionString</td><td class="module"><a href="Distribution-TestSuite.html#v:OptionString">Distribution.TestSuite</a></td></tr><tr><td class="src">optionStringMultiline</td><td class="module"><a href="Distribution-TestSuite.html#v:optionStringMultiline">Distribution.TestSuite</a></td></tr><tr><td class="src">OptionType</td><td class="module"><a href="Distribution-TestSuite.html#t:OptionType">Distribution.TestSuite</a></td></tr><tr><td class="src">optionType</td><td class="module"><a href="Distribution-TestSuite.html#v:optionType">Distribution.TestSuite</a></td></tr><tr><td class="src">optionVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:optionVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">optKeepTempFiles</td><td class="module"><a href="Distribution-Simple-Utils.html#v:optKeepTempFiles">Distribution.Simple.Utils</a></td></tr><tr><td class="src">or</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Ord</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ord</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:ord">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Ordering</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ordNub</td><td class="module"><a href="Distribution-Utils-Generic.html#v:ordNub">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:ordNub">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ordNubBy</td><td class="module"><a href="Distribution-Utils-Generic.html#v:ordNubBy">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:ordNubBy">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ordNubRight</td><td class="module"><a href="Distribution-Utils-Generic.html#v:ordNubRight">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:ordNubRight">Distribution.Simple.Utils</a></td></tr><tr><td class="src">orEarlierVersion</td><td class="module"><a href="Distribution-Version.html#v:orEarlierVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">orLaterVersion</td><td class="module"><a href="Distribution-Version.html#v:orLaterVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">OS</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-System.html#t:OS">Distribution.System</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:OS">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:OS">Distribution.PackageDescription</a></td></tr><tr><td class="src">OSVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:OSVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">OSX</td><td class="module"><a href="Distribution-System.html#v:OSX">Distribution.System</a></td></tr><tr><td class="src">OtherArch</td><td class="module"><a href="Distribution-System.html#v:OtherArch">Distribution.System</a></td></tr><tr><td class="src">OtherCompiler</td><td class="module"><a href="Distribution-Compiler.html#v:OtherCompiler">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">otherExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:otherExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:otherExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">otherLanguages</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:otherLanguages">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:otherLanguages">Distribution.PackageDescription</a></td></tr><tr><td class="src">OtherLicense</td><td class="module"><a href="Distribution-License.html#v:OtherLicense">Distribution.License</a>, <a href="Distribution-Make.html#v:OtherLicense">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">otherModules</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:otherModules">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:otherModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">OtherOS</td><td class="module"><a href="Distribution-System.html#v:OtherOS">Distribution.System</a></td></tr><tr><td class="src">OtherRepoType</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:OtherRepoType">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:OtherRepoType">Distribution.PackageDescription</a></td></tr><tr><td class="src">otherwise</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">OverlappingInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:OverlappingInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">OverloadedLabels</td><td class="module"><a href="Language-Haskell-Extension.html#v:OverloadedLabels">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">OverloadedLists</td><td class="module"><a href="Language-Haskell-Extension.html#v:OverloadedLists">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">OverloadedStrings</td><td class="module"><a href="Language-Haskell-Extension.html#v:OverloadedStrings">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">overNubList</td><td class="module"><a href="Distribution-Utils-NubList.html#v:overNubList">Distribution.Utils.NubList</a></td></tr><tr><td class="src">overNubListR</td><td class="module"><a href="Distribution-Utils-NubList.html#v:overNubListR">Distribution.Utils.NubList</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-P.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - P)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - P</p><table><tr><td class="src">Package</td><td class="module"><a href="Distribution-Package.html#t:Package">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">package</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:package">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:package">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:package">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">PackageBuildImpossible</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageBuildImpossible">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageBuildWarning</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageBuildWarning">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageCheck</td><td class="module"><a href="Distribution-PackageDescription-Check.html#t:PackageCheck">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:PackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">packageDbOpt</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:packageDbOpt">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="src">PackageDBStack</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:PackageDBStack">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">PackageDescription</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#t:PackageDescription">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#t:PackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:PackageDescription">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:PackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">packageDescription</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:packageDescription">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:packageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">PackageDistInexcusable</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageDistInexcusable">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageDistSuspicious</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageDistSuspicious">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageDistSuspiciousWarn</td><td class="module"><a href="Distribution-PackageDescription-Check.html#v:PackageDistSuspiciousWarn">Distribution.PackageDescription.Check</a></td></tr><tr><td class="src">PackageId</td><td class="module"><a href="Distribution-Types-PackageId.html#t:PackageId">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">packageId</td><td class="module"><a href="Distribution-Package.html#v:packageId">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">PackageIdentifier</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-PackageId.html#t:PackageIdentifier">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-PackageId.html#v:PackageIdentifier">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">PackageImports</td><td class="module"><a href="Language-Haskell-Extension.html#v:PackageImports">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">PackageIndex</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">PackageInstalled</td><td class="module"><a href="Distribution-Package.html#t:PackageInstalled">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">packageKeySupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:packageKeySupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">PackageLog</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#t:PackageLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:PackageLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">PackageName</td><td class="module"><a href="Distribution-Types-PackageName.html#t:PackageName">Distribution.Types.PackageName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">packageName</td><td class="module"><a href="Distribution-Package.html#v:packageName">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">packageNameToUnqualComponentName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#v:packageNameToUnqualComponentName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">packageTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:packageTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">packageVersion</td><td class="module"><a href="Distribution-Package.html#v:packageVersion">Distribution.Package</a>, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">ParallelArrays</td><td class="module"><a href="Language-Haskell-Extension.html#v:ParallelArrays">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">ParallelListComp</td><td class="module"><a href="Language-Haskell-Extension.html#v:ParallelListComp">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">parentSrcLocPrefix</td><td class="module"><a href="Distribution-Compat-Stack.html#v:parentSrcLocPrefix">Distribution.Compat.Stack</a></td></tr><tr><td class="src">parmakeSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:parmakeSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">parse</td><td class="module"><a href="Distribution-Text.html#v:parse">Distribution.Text</a></td></tr><tr><td class="src">ParseArgs</td><td class="module"><a href="Distribution-Simple-Command.html#v:ParseArgs">Distribution.Simple.Command</a></td></tr><tr><td class="src">parseCompilerFlavorCompat</td><td class="module"><a href="Distribution-Compiler.html#v:parseCompilerFlavorCompat">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">parseCondition</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:parseCondition">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">ParseFailed</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ParseFailed">Distribution.InstalledPackageInfo</a>, <a href="Distribution-PackageDescription-Parse.html#v:ParseFailed">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseFileGlob</td><td class="module"><a href="Distribution-Simple-Utils.html#v:parseFileGlob">Distribution.Simple.Utils</a></td></tr><tr><td class="src">parseFlagAssignment</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:parseFlagAssignment">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:parseFlagAssignment">Distribution.PackageDescription</a></td></tr><tr><td class="src">parseGenericPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:parseGenericPackageDescription">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseHookedBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:parseHookedBuildInfo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseInstalledPackageInfo</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:parseInstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">ParseOk</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:ParseOk">Distribution.InstalledPackageInfo</a>, <a href="Distribution-PackageDescription-Parse.html#v:ParseOk">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseOpenModuleSubst</td><td class="module"><a href="Distribution-Backpack.html#v:parseOpenModuleSubst">Distribution.Backpack</a></td></tr><tr><td class="src">parseOpenModuleSubstEntry</td><td class="module"><a href="Distribution-Backpack.html#v:parseOpenModuleSubstEntry">Distribution.Backpack</a></td></tr><tr><td class="src">parsePackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:parsePackageDescription">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">parseReadE</td><td class="module"><a href="Distribution-ReadE.html#v:parseReadE">Distribution.ReadE</a></td></tr><tr><td class="src">ParseResult</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:ParseResult">Distribution.InstalledPackageInfo</a>, <a href="Distribution-PackageDescription-Parse.html#t:ParseResult">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">PartialTypeSignatures</td><td class="module"><a href="Language-Haskell-Extension.html#v:PartialTypeSignatures">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">partition</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">partitionComponents</td><td class="module"><a href="Distribution-Types-Component.html#v:partitionComponents">Distribution.Types.Component</a></td></tr><tr><td class="src">partitionWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Pass</td><td class="module"><a href="Distribution-TestSuite.html#v:Pass">Distribution.TestSuite</a></td></tr><tr><td class="src">PathTemplate</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">PathTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:PathTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">PathTemplateVariable</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#t:PathTemplateVariable">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">PatternGuards</td><td class="module"><a href="Language-Haskell-Extension.html#v:PatternGuards">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">PatternSignatures</td><td class="module"><a href="Language-Haskell-Extension.html#v:PatternSignatures">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">PatternSynonyms</td><td class="module"><a href="Language-Haskell-Extension.html#v:PatternSynonyms">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Permissive</td><td class="module"><a href="Distribution-System.html#v:Permissive">Distribution.System</a></td></tr><tr><td class="src">PError</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:PError">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">pfail</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:pfail">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">pi</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">pkgBuildableComponents</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:pkgBuildableComponents">Distribution.Types.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:pkgBuildableComponents">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">pkgComponents</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:pkgComponents">Distribution.Types.PackageDescription</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:pkgComponents">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">PkgconfigDependency</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-PkgconfigDependency.html#t:PkgconfigDependency">Distribution.Types.PkgconfigDependency</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-PkgconfigDependency.html#v:PkgconfigDependency">Distribution.Types.PkgconfigDependency</a></td></tr><tr><td class="src">pkgconfigDepends</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:pkgconfigDepends">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:pkgconfigDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">PkgconfigName</td><td class="module"><a href="Distribution-Types-PkgconfigName.html#t:PkgconfigName">Distribution.Types.PkgconfigName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">pkgConfigProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:pkgConfigProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:pkgConfigProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">pkgDescrFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:pkgDescrFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">pkgDescrFile</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:pkgDescrFile">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:pkgDescrFile">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">PkgIdVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:PkgIdVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">pkgName</td><td class="module"><a href="Distribution-Types-PackageId.html#v:pkgName">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">PkgNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:PkgNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">pkgPathEnvVar</td><td class="module"><a href="Distribution-Simple-Build-PathsModule.html#v:pkgPathEnvVar">Distribution.Simple.Build.PathsModule</a></td></tr><tr><td class="src">pkgRoot</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:pkgRoot">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:pkgRoot">Distribution.Simple.GHC</a></td></tr><tr><td class="src">pkgUrl</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:pkgUrl">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:pkgUrl">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:pkgUrl">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">pkgVersion</td><td class="module"><a href="Distribution-Types-PackageId.html#v:pkgVersion">Distribution.Types.PackageId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">PkgVerVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:PkgVerVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">plain</td><td class="module"><a href="Distribution-Simple-PreProcess-Unlit.html#v:plain">Distribution.Simple.PreProcess.Unlit</a></td></tr><tr><td class="src">Platform</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-System.html#t:Platform">Distribution.System</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-System.html#v:Platform">Distribution.System</a></td></tr><tr><td class="src">platform</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:platform">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">platformDefines</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:platformDefines">Distribution.Simple.PreProcess</a>, <a href="Distribution-Simple-Configure.html#v:platformDefines">Distribution.Simple.Configure</a></td></tr><tr><td class="src">platformFromTriple</td><td class="module"><a href="Distribution-System.html#v:platformFromTriple">Distribution.System</a></td></tr><tr><td class="src">platformIndependent</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:platformIndependent">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">platformTemplateEnv</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:platformTemplateEnv">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">PolyKinds</td><td class="module"><a href="Language-Haskell-Extension.html#v:PolyKinds">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">PolymorphicComponents</td><td class="module"><a href="Language-Haskell-Extension.html#v:PolymorphicComponents">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">posixSecondsToModTime</td><td class="module"><a href="Distribution-Compat-Time.html#v:posixSecondsToModTime">Distribution.Compat.Time</a></td></tr><tr><td class="src">postBench</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postBench">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postBench">Distribution.Simple</a></td></tr><tr><td class="src">postBuild</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postBuild">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postBuild">Distribution.Simple</a></td></tr><tr><td class="src">postClean</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postClean">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postClean">Distribution.Simple</a></td></tr><tr><td class="src">postConf</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postConf">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postConf">Distribution.Simple</a></td></tr><tr><td class="src">postCopy</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postCopy">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postCopy">Distribution.Simple</a></td></tr><tr><td class="src">postDoctest</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postDoctest">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postDoctest">Distribution.Simple</a></td></tr><tr><td class="src">PostfixOperators</td><td class="module"><a href="Language-Haskell-Extension.html#v:PostfixOperators">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">postHaddock</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postHaddock">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postHaddock">Distribution.Simple</a></td></tr><tr><td class="src">postHscolour</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postHscolour">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postHscolour">Distribution.Simple</a></td></tr><tr><td class="src">postInst</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postInst">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postInst">Distribution.Simple</a></td></tr><tr><td class="src">postReg</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postReg">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postReg">Distribution.Simple</a></td></tr><tr><td class="src">postRepl</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postRepl">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postRepl">Distribution.Simple</a></td></tr><tr><td class="src">postSDist</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postSDist">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postSDist">Distribution.Simple</a></td></tr><tr><td class="src">postTest</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postTest">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postTest">Distribution.Simple</a></td></tr><tr><td class="src">postUnreg</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:postUnreg">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:postUnreg">Distribution.Simple</a></td></tr><tr><td class="src">ppAlex</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppAlex">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">PPC</td><td class="module"><a href="Distribution-System.html#v:PPC">Distribution.System</a></td></tr><tr><td class="src">ppC2hs</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppC2hs">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">PPC64</td><td class="module"><a href="Distribution-System.html#v:PPC64">Distribution.System</a></td></tr><tr><td class="src">ppCpp</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppCpp">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppCpp'</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppCpp-39-">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppGreenCard</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppGreenCard">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppHappy</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppHappy">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppHsc2hs</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppHsc2hs">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppSuffixes</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppSuffixes">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">PPSuffixHandler</td><td class="module"><a href="Distribution-Simple-PreProcess.html#t:PPSuffixHandler">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">ppUnlit</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:ppUnlit">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">preBench</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preBench">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preBench">Distribution.Simple</a></td></tr><tr><td class="src">preBuild</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preBuild">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preBuild">Distribution.Simple</a></td></tr><tr><td class="src">preClean</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preClean">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preClean">Distribution.Simple</a></td></tr><tr><td class="src">preConf</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preConf">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preConf">Distribution.Simple</a></td></tr><tr><td class="src">preCopy</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preCopy">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preCopy">Distribution.Simple</a></td></tr><tr><td class="src">pred</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">preDoctest</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preDoctest">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preDoctest">Distribution.Simple</a></td></tr><tr><td class="src">prefix</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:prefix">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">prefixRelativeComponentInstallDirs</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:prefixRelativeComponentInstallDirs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">prefixRelativeInstallDirs</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:prefixRelativeInstallDirs">Distribution.Simple.InstallDirs</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:prefixRelativeInstallDirs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">PrefixVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:PrefixVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">preHaddock</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preHaddock">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preHaddock">Distribution.Simple</a></td></tr><tr><td class="src">preHscolour</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preHscolour">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preHscolour">Distribution.Simple</a></td></tr><tr><td class="src">preInst</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preInst">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preInst">Distribution.Simple</a></td></tr><tr><td class="src">prepareSnapshotTree</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:prepareSnapshotTree">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">prepareTree</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:prepareTree">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">preprocessComponent</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:preprocessComponent">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">preprocessExtras</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:preprocessExtras">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">PreProcessor</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-PreProcess.html#t:PreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:PreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">preReg</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preReg">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preReg">Distribution.Simple</a></td></tr><tr><td class="src">preRepl</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preRepl">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preRepl">Distribution.Simple</a></td></tr><tr><td class="src">preSDist</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preSDist">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preSDist">Distribution.Simple</a></td></tr><tr><td class="src">preTest</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preTest">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preTest">Distribution.Simple</a></td></tr><tr><td class="src">prettyCallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#v:prettyCallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">preUnreg</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:preUnreg">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:preUnreg">Distribution.Simple</a></td></tr><tr><td class="src">print</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">printPackageProblems</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:printPackageProblems">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">printRawCommandAndArgs</td><td class="module"><a href="Distribution-Simple-Utils.html#v:printRawCommandAndArgs">Distribution.Simple.Utils</a></td></tr><tr><td class="src">printRawCommandAndArgsAndEnv</td><td class="module"><a href="Distribution-Simple-Utils.html#v:printRawCommandAndArgsAndEnv">Distribution.Simple.Utils</a></td></tr><tr><td class="src">product</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:product">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Prof</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:Prof">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">ProfDetailAllFunctions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailAllFunctions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailDefault</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailDefault">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailExportedFunctions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailExportedFunctions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#t:ProfDetailLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailNone</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailNone">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailOther</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailOther">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ProfDetailToplevelFunctions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:ProfDetailToplevelFunctions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">profilingSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:profilingSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">profOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:profOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:profOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">ProgArg</td><td class="module"><a href="Distribution-Simple-Program-Types.html#t:ProgArg">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ProgArg">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeArgs</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeArgs">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeCwd</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeCwd">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeCwd">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeEnv</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeEnv">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeEnv">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeInput</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeInput">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeInput">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeInputEncoding</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeInputEncoding">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeInputEncoding">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokeOutputEncoding</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokeOutputEncoding">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokeOutputEncoding">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokePath</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokePath">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokePath">Distribution.Simple.Program</a></td></tr><tr><td class="src">progInvokePathEnv</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:progInvokePathEnv">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:progInvokePathEnv">Distribution.Simple.Program</a></td></tr><tr><td class="src">progPrefix</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:progPrefix">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:progPrefix">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">Program</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-Types.html#t:Program">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:Program">Distribution.Simple.Program</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:Program">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:Program">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramConfiguration</td><td class="module"><a href="Distribution-Simple-Program.html#t:ProgramConfiguration">Distribution.Simple.Program</a></td></tr><tr><td class="src">programConfigurationOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:programConfigurationOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">programConfigurationPaths'</td><td class="module"><a href="Distribution-Simple-Setup.html#v:programConfigurationPaths-39-">Distribution.Simple.Setup</a></td></tr><tr><td class="src">ProgramDb</td><td class="module"><a href="Distribution-Simple-Program-Db.html#t:ProgramDb">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#t:ProgramDb">Distribution.Simple.Program</a></td></tr><tr><td class="src">programDbOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:programDbOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">programDbPaths'</td><td class="module"><a href="Distribution-Simple-Setup.html#v:programDbPaths-39-">Distribution.Simple.Setup</a></td></tr><tr><td class="src">programDefaultArgs</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programDefaultArgs">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programDefaultArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">programFindLocation</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programFindLocation">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programFindLocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">programFindVersion</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programFindVersion">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programFindVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">programId</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programId">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programId">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramInvocation</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-Run.html#t:ProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#t:ProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:ProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:ProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">programInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:programInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:programInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramLocation</td><td class="module"><a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ProgramLocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">programLocation</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programLocation">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programLocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">programMonitorFiles</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programMonitorFiles">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programMonitorFiles">Distribution.Simple.Program</a></td></tr><tr><td class="src">programName</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programName">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programName">Distribution.Simple.Program</a></td></tr><tr><td class="src">programOverrideArgs</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programOverrideArgs">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programOverrideArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">programOverrideEnv</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programOverrideEnv">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programOverrideEnv">Distribution.Simple.Program</a></td></tr><tr><td class="src">programPath</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programPath">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">programPostConf</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programPostConf">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programPostConf">Distribution.Simple.Program</a></td></tr><tr><td class="src">programProperties</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programProperties">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programProperties">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPath">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPath">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ProgramSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">programSearchPathAsPATHVar</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:programSearchPathAsPATHVar">Distribution.Simple.Program.Find</a></td></tr><tr><td class="src">ProgramSearchPathDefault</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:ProgramSearchPathDefault">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program-Types.html#v:ProgramSearchPathDefault">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:ProgramSearchPathDefault">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramSearchPathDir</td><td class="module"><a href="Distribution-Simple-Program-Find.html#v:ProgramSearchPathDir">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program-Types.html#v:ProgramSearchPathDir">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:ProgramSearchPathDir">Distribution.Simple.Program</a></td></tr><tr><td class="src">ProgramSearchPathEntry</td><td class="module"><a href="Distribution-Simple-Program-Find.html#t:ProgramSearchPathEntry">Distribution.Simple.Program.Find</a>, <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#t:ProgramSearchPathEntry">Distribution.Simple.Program</a></td></tr><tr><td class="src">programVersion</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:programVersion">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:programVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">Progress</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-TestSuite.html#t:Progress">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-TestSuite.html#v:Progress">Distribution.TestSuite</a></td></tr><tr><td class="alt">3 (Type/Class)</td><td class="module"><a href="Distribution-Utils-Progress.html#t:Progress">Distribution.Utils.Progress</a></td></tr><tr><td class="src">progSuffix</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:progSuffix">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:progSuffix">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">properFraction</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">PublicDomain</td><td class="module"><a href="Distribution-License.html#v:PublicDomain">Distribution.License</a>, <a href="Distribution-Make.html#v:PublicDomain">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">pure</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Put</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">put</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#v:put">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">putChar</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">putList</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#v:putList">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">putStr</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">putStrLn</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">putWord8</td><td class="module">Distribution.Compat.Binary</td></tr><tr><td class="src">PWarning</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#t:PWarning">Distribution.InstalledPackageInfo</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-Q.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - Q)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - Q</p><table><tr><td class="src">QL1</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:QL1">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">QL2</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:QL2">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">QL3</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:QL3">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">qualifiedExeName</td><td class="module"><a href="Distribution-Types-ExeDependency.html#v:qualifiedExeName">Distribution.Types.ExeDependency</a></td></tr><tr><td class="src">QualLevel</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:QualLevel">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">QuasiQuotes</td><td class="module"><a href="Language-Haskell-Extension.html#v:QuasiQuotes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">quot</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">quotRem</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-R.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - R)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - R</p><table><tr><td class="src">Rank2Types</td><td class="module"><a href="Language-Haskell-Extension.html#v:Rank2Types">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">RankNTypes</td><td class="module"><a href="Language-Haskell-Extension.html#v:RankNTypes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Rational</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">rawSystemExit</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemExit">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemExitCode</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemExitCode">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemExitWithEnv</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemExitWithEnv">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemIOWithEnv</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemIOWithEnv">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemProgram</td><td class="module"><a href="Distribution-Simple-Program.html#v:rawSystemProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">rawSystemProgramConf</td><td class="module"><a href="Distribution-Simple-Program.html#v:rawSystemProgramConf">Distribution.Simple.Program</a></td></tr><tr><td class="src">rawSystemProgramStdout</td><td class="module"><a href="Distribution-Simple-Program.html#v:rawSystemProgramStdout">Distribution.Simple.Program</a></td></tr><tr><td class="src">rawSystemProgramStdoutConf</td><td class="module"><a href="Distribution-Simple-Program.html#v:rawSystemProgramStdoutConf">Distribution.Simple.Program</a></td></tr><tr><td class="src">rawSystemStdInOut</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemStdInOut">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rawSystemStdout</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rawSystemStdout">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Read</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">read</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readBuildTargets</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:readBuildTargets">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">readDesc</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:readDesc">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:readDesc">Distribution.Simple</a></td></tr><tr><td class="src">ReadE</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-ReadE.html#t:ReadE">Distribution.ReadE</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-ReadE.html#v:ReadE">Distribution.ReadE</a></td></tr><tr><td class="src">readEOrFail</td><td class="module"><a href="Distribution-ReadE.html#v:readEOrFail">Distribution.ReadE</a></td></tr><tr><td class="src">readFile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readGenericPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:readGenericPackageDescription">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">readHookedBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:readHookedBuildInfo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">readIO</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readList</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readLn</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ReadP</td><td class="module"><a href="Distribution-Compat-ReadP.html#t:ReadP">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">readPackageDbList</td><td class="module"><a href="Distribution-Simple-Setup.html#v:readPackageDbList">Distribution.Simple.Setup</a></td></tr><tr><td class="src">readPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:readPackageDescription">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">readParen</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readPToMaybe</td><td class="module"><a href="Distribution-Simple-Setup.html#v:readPToMaybe">Distribution.Simple.Setup</a></td></tr><tr><td class="src">readP_to_E</td><td class="module"><a href="Distribution-ReadE.html#v:readP_to_E">Distribution.ReadE</a></td></tr><tr><td class="src">readP_to_S</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:readP_to_S">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">ReadS</td><td class="module"><a href="Distribution-Compat-ReadP.html#t:ReadS">Distribution.Compat.ReadP</a>, Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">reads</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readsPrec</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">readS_to_P</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:readS_to_P">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">readTargetInfos</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:readTargetInfos">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">readUserBuildTargets</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:readUserBuildTargets">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">readUTF8File</td><td class="module"><a href="Distribution-Utils-Generic.html#v:readUTF8File">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:readUTF8File">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Real</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">RealFloat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">RealFrac</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">realToFrac</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">RebindableSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:RebindableSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">recache</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:recache">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">recacheInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:recacheInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">recacheMultiInstance</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:recacheMultiInstance">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">recip</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">reconfigurePrograms</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:reconfigurePrograms">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:reconfigurePrograms">Distribution.Simple.Program</a></td></tr><tr><td class="src">RecordPuns</td><td class="module"><a href="Language-Haskell-Extension.html#v:RecordPuns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">RecordWildCards</td><td class="module"><a href="Language-Haskell-Extension.html#v:RecordWildCards">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">RecursiveDo</td><td class="module"><a href="Language-Haskell-Extension.html#v:RecursiveDo">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">reexportedModules</td><td class="module"><a href="Distribution-Types-Library.html#v:reexportedModules">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:reexportedModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">reexportedModulesSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:reexportedModulesSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">regArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regGenPkgConf</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regGenPkgConf">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regGenScript</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regGenScript">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:regHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:regHook">Distribution.Simple</a></td></tr><tr><td class="src">regInPlace</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regInPlace">Distribution.Simple.Setup</a></td></tr><tr><td class="src">register</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:register">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:register">Distribution.Simple.Register</a></td></tr><tr><td class="src">registerAllowOverwrite</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:registerAllowOverwrite">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:registerAllowOverwrite">Distribution.Simple.Register</a></td></tr><tr><td class="src">registerCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:registerCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RegisterFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:RegisterFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RegisterFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">registerInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:registerInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">registerMultiInstance</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:registerMultiInstance">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:registerMultiInstance">Distribution.Simple.Register</a></td></tr><tr><td class="src">RegisterOptions</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#t:RegisterOptions">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#t:RegisterOptions">Distribution.Simple.Register</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:RegisterOptions">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:RegisterOptions">Distribution.Simple.Register</a></td></tr><tr><td class="src">registerPackage</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-UHC.html#v:registerPackage">Distribution.Simple.UHC</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LHC.html#v:registerPackage">Distribution.Simple.LHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-HaskellSuite.html#v:registerPackage">Distribution.Simple.HaskellSuite</a></td></tr><tr><td class="alt">4 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:registerPackage">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">5 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:registerPackage">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">6 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:registerPackage">Distribution.Simple.Register</a></td></tr><tr><td class="src">registerSuppressFilesCheck</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:registerSuppressFilesCheck">Distribution.Simple.Program.HcPkg</a>, <a href="Distribution-Simple-Register.html#v:registerSuppressFilesCheck">Distribution.Simple.Register</a></td></tr><tr><td class="src">registrationPackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:registrationPackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">regPackageDB</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regPackageDB">Distribution.Simple.Setup</a></td></tr><tr><td class="src">regPrintId</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regPrintId">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RegularPatterns</td><td class="module"><a href="Language-Haskell-Extension.html#v:RegularPatterns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">regVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:regVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxDeps</td><td class="module"><a href="Distribution-Simple-Setup.html#t:RelaxDeps">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxDepsAll</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxDepsAll">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxDepsNone</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxDepsNone">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxDepsSome</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxDepsSome">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxedDep</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:RelaxedDep">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxedDep">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxedDepScoped</td><td class="module"><a href="Distribution-Simple-Setup.html#v:RelaxedDepScoped">Distribution.Simple.Setup</a></td></tr><tr><td class="src">RelaxedPolyRec</td><td class="module"><a href="Language-Haskell-Extension.html#v:RelaxedPolyRec">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">relaxPackageDeps</td><td class="module"><a href="Distribution-Simple-Configure.html#v:relaxPackageDeps">Distribution.Simple.Configure</a></td></tr><tr><td class="src">relocatable</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:relocatable">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:relocatable">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">rem</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">removeLowerBound</td><td class="module"><a href="Distribution-Version.html#v:removeLowerBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">removeUpperBound</td><td class="module"><a href="Distribution-Version.html#v:removeUpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">renamingPackageFlagsSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:renamingPackageFlagsSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">renderGhcOptions</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:renderGhcOptions">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">repeat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">repl</td><td class="module"><a href="Distribution-Simple-Build.html#v:repl">Distribution.Simple.Build</a></td></tr><tr><td class="src">replCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replExe</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:replExe">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:replExe">Distribution.Simple.GHC</a></td></tr><tr><td class="src">ReplFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:ReplFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:ReplFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replFLib</td><td class="module"><a href="Distribution-Simple-GHC.html#v:replFLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">replHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:replHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:replHook">Distribution.Simple</a></td></tr><tr><td class="src">replicate</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">replLib</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:replLib">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:replLib">Distribution.Simple.GHC</a></td></tr><tr><td class="src">replProgramArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replProgramArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replProgramPaths</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replProgramPaths">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replReload</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replReload">Distribution.Simple.Setup</a></td></tr><tr><td class="src">replVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:replVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">repoBranch</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoBranch">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoBranch">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoHead</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:RepoHead">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:RepoHead">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoKind</td><td class="module"><a href="Distribution-Types-SourceRepo.html#t:RepoKind">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#t:RepoKind">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoKind</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoKind">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoKind">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoKindUnknown</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:RepoKindUnknown">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:RepoKindUnknown">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoLocation</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoLocation">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoLocation">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoModule</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoModule">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoModule">Distribution.PackageDescription</a></td></tr><tr><td class="src">reportBuildTargetProblems</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:reportBuildTargetProblems">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">reportsNoExt</td><td class="module"><a href="Distribution-Simple-GHC.html#v:reportsNoExt">Distribution.Simple.GHC</a></td></tr><tr><td class="src">reportUserBuildTargetProblems</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:reportUserBuildTargetProblems">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">repoSubdir</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoSubdir">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoSubdir">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoTag</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoTag">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoTag">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoThis</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:RepoThis">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:RepoThis">Distribution.PackageDescription</a></td></tr><tr><td class="src">RepoType</td><td class="module"><a href="Distribution-Types-SourceRepo.html#t:RepoType">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#t:RepoType">Distribution.PackageDescription</a></td></tr><tr><td class="src">repoType</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:repoType">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:repoType">Distribution.PackageDescription</a></td></tr><tr><td class="src">ReqArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:ReqArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">reqArg</td><td class="module"><a href="Distribution-Simple-Command.html#v:reqArg">Distribution.Simple.Command</a></td></tr><tr><td class="src">reqArg'</td><td class="module"><a href="Distribution-Simple-Command.html#v:reqArg-39-">Distribution.Simple.Command</a></td></tr><tr><td class="src">requiredSignatures</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:requiredSignatures">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">requireProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:requireProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:requireProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">requireProgramVersion</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:requireProgramVersion">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:requireProgramVersion">Distribution.Simple.Program</a></td></tr><tr><td class="src">requiresDirDbs</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:requiresDirDbs">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">resolveBuildTargets</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:resolveBuildTargets">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">restoreProgramConfiguration</td><td class="module"><a href="Distribution-Simple-Program.html#v:restoreProgramConfiguration">Distribution.Simple.Program</a></td></tr><tr><td class="src">restoreProgramDb</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:restoreProgramDb">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:restoreProgramDb">Distribution.Simple.Program</a></td></tr><tr><td class="src">RestrictedTypeSynonyms</td><td class="module"><a href="Language-Haskell-Extension.html#v:RestrictedTypeSynonyms">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">restrictKeys</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Result</td><td class="module"><a href="Distribution-TestSuite.html#t:Result">Distribution.TestSuite</a></td></tr><tr><td class="src">return</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">revClosure</td><td class="module"><a href="Distribution-Compat-Graph.html#v:revClosure">Distribution.Compat.Graph</a></td></tr><tr><td class="src">reverse</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">reverseDependencyClosure</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:reverseDependencyClosure">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">reverseTopologicalOrder</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:reverseTopologicalOrder">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">revNeighbors</td><td class="module"><a href="Distribution-Compat-Graph.html#v:revNeighbors">Distribution.Compat.Graph</a></td></tr><tr><td class="src">revTopSort</td><td class="module"><a href="Distribution-Compat-Graph.html#v:revTopSort">Distribution.Compat.Graph</a></td></tr><tr><td class="src">rewriteFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rewriteFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">rewriteFileEx</td><td class="module"><a href="Distribution-Simple-Utils.html#v:rewriteFileEx">Distribution.Simple.Utils</a></td></tr><tr><td class="src">Right</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">rnf</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:rnf">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">RoleAnnotations</td><td class="module"><a href="Language-Haskell-Extension.html#v:RoleAnnotations">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">round</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">Rs6000</td><td class="module"><a href="Distribution-System.html#v:Rs6000">Distribution.System</a></td></tr><tr><td class="src">run</td><td class="module"><a href="Distribution-TestSuite.html#v:run">Distribution.TestSuite</a></td></tr><tr><td class="src">runCmd</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:runCmd">Distribution.Simple.GHCJS</a></td></tr><tr><td class="src">runDbProgram</td><td class="module"><a href="Distribution-Simple-Program.html#v:runDbProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">runDList</td><td class="module"><a href="Distribution-Compat-DList.html#v:runDList">Distribution.Compat.DList</a></td></tr><tr><td class="src">runGHC</td><td class="module"><a href="Distribution-Simple-Program-GHC.html#v:runGHC">Distribution.Simple.Program.GHC</a></td></tr><tr><td class="src">runghcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:runghcProgram">Distribution.Simple.Program.Builtin</a></td></tr><tr><td class="src">runLogProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:runLogProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">runPreProcessor</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:runPreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">runProgram</td><td class="module"><a href="Distribution-Simple-Program.html#v:runProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">runProgramInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:runProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:runProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">runReadE</td><td class="module"><a href="Distribution-ReadE.html#v:runReadE">Distribution.ReadE</a></td></tr><tr><td class="src">runSimplePreProcessor</td><td class="module"><a href="Distribution-Simple-PreProcess.html#v:runSimplePreProcessor">Distribution.Simple.PreProcess</a></td></tr><tr><td class="src">runTest</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:runTest">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-ExeV10.html#v:runTest">Distribution.Simple.Test.ExeV10</a></td></tr><tr><td class="src">runTests</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:runTests">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:runTests">Distribution.Simple</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-S.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - S)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - S</p><table><tr><td class="src">S390</td><td class="module"><a href="Distribution-System.html#v:S390">Distribution.System</a></td></tr><tr><td class="src">Safe</td><td class="module"><a href="Language-Haskell-Extension.html#v:Safe">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">SafeImports</td><td class="module"><a href="Language-Haskell-Extension.html#v:SafeImports">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">safeTail</td><td class="module"><a href="Distribution-Utils-Generic.html#v:safeTail">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:safeTail">Distribution.Simple.Utils</a></td></tr><tr><td class="src">satisfy</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:satisfy">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">scaleFloat</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">scanl</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">scanl1</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">scanr</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">scanr1</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">SCC</td><td class="module"><a href="Distribution-Compat-Graph.html#t:SCC">Distribution.Compat.Graph</a></td></tr><tr><td class="src">ScopedTypeVariables</td><td class="module"><a href="Language-Haskell-Extension.html#v:ScopedTypeVariables">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">sdist</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:sdist">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">sdistCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sdistCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistDirectory</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistDirectory">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">SDistFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:SDistFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:SDistFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:sDistHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:sDistHook">Distribution.Simple</a></td></tr><tr><td class="src">sDistListSources</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistListSources">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistSnapshot</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistSnapshot">Distribution.Simple.Setup</a></td></tr><tr><td class="src">sDistVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:sDistVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">searchByName</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:searchByName">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">searchByNameSubstring</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:searchByNameSubstring">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">SearchResult</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#t:SearchResult">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">Semigroup</td><td class="module"><a href="Distribution-Compat-Semigroup.html#t:Semigroup">Distribution.Compat.Semigroup</a>, <a href="Distribution-Compat-Prelude-Internal.html#t:Semigroup">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sepBy</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:sepBy">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">sepBy1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:sepBy1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">seq</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">sequenceA</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:sequenceA">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sequence_</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">setFileExecutable</td><td class="module"><a href="Distribution-Simple-Utils.html#v:setFileExecutable">Distribution.Simple.Utils</a></td></tr><tr><td class="src">setFileOrdinary</td><td class="module"><a href="Distribution-Simple-Utils.html#v:setFileOrdinary">Distribution.Simple.Utils</a></td></tr><tr><td class="src">setOption</td><td class="module"><a href="Distribution-TestSuite.html#v:setOption">Distribution.TestSuite</a></td></tr><tr><td class="src">setProgramSearchPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:setProgramSearchPath">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:setProgramSearchPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">SetupBuildInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-SetupBuildInfo.html#t:SetupBuildInfo">Distribution.Types.SetupBuildInfo</a>, <a href="Distribution-PackageDescription.html#t:SetupBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-SetupBuildInfo.html#v:SetupBuildInfo">Distribution.Types.SetupBuildInfo</a>, <a href="Distribution-PackageDescription.html#v:SetupBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">setupBuildInfo</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:setupBuildInfo">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:setupBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">setupDepends</td><td class="module"><a href="Distribution-Types-SetupBuildInfo.html#v:setupDepends">Distribution.Types.SetupBuildInfo</a>, <a href="Distribution-PackageDescription.html#v:setupDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">setupMessage</td><td class="module"><a href="Distribution-Simple-Utils.html#v:setupMessage">Distribution.Simple.Utils</a></td></tr><tr><td class="src">setupMessage'</td><td class="module"><a href="Distribution-Backpack-DescribeUnitId.html#v:setupMessage-39-">Distribution.Backpack.DescribeUnitId</a></td></tr><tr><td class="src">SFlags</td><td class="module"><a href="Distribution-Simple-Command.html#t:SFlags">Distribution.Simple.Command</a></td></tr><tr><td class="src">SH</td><td class="module"><a href="Distribution-System.html#v:SH">Distribution.System</a></td></tr><tr><td class="src">shapeInstalledPackage</td><td class="module"><a href="Distribution-Backpack-ModuleShape.html#v:shapeInstalledPackage">Distribution.Backpack.ModuleShape</a></td></tr><tr><td class="src">sharedOptions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:sharedOptions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:sharedOptions">Distribution.PackageDescription</a></td></tr><tr><td class="src">shortRelativePath</td><td class="module"><a href="Distribution-Simple-Utils.html#v:shortRelativePath">Distribution.Simple.Utils</a></td></tr><tr><td class="src">ShortText</td><td class="module"><a href="Distribution-Utils-ShortText.html#t:ShortText">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">Show</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">show</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ShowArgs</td><td class="module"><a href="Distribution-Simple-Command.html#v:ShowArgs">Distribution.Simple.Command</a></td></tr><tr><td class="src">showBuildTarget</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:showBuildTarget">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">showChar</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showCompilerId</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:showCompilerId">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">showCompilerIdWithAbi</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:showCompilerIdWithAbi">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">showComponentName</td><td class="module"><a href="Distribution-Types-ComponentName.html#v:showComponentName">Distribution.Types.ComponentName</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:showComponentName">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">showFlagValue</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:showFlagValue">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:showFlagValue">Distribution.PackageDescription</a></td></tr><tr><td class="src">showForCabal</td><td class="module"><a href="Distribution-Verbosity.html#v:showForCabal">Distribution.Verbosity</a></td></tr><tr><td class="src">showForGHC</td><td class="module"><a href="Distribution-Verbosity.html#v:showForGHC">Distribution.Verbosity</a></td></tr><tr><td class="src">showGenericPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:showGenericPackageDescription">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">showHookedBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:showHookedBuildInfo">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">showInstalledPackageInfo</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:showInstalledPackageInfo">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">showInstalledPackageInfoField</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:showInstalledPackageInfoField">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">showList</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">ShowOrParseArgs</td><td class="module"><a href="Distribution-Simple-Command.html#t:ShowOrParseArgs">Distribution.Simple.Command</a></td></tr><tr><td class="src">showPackageDbList</td><td class="module"><a href="Distribution-Simple-Setup.html#v:showPackageDbList">Distribution.Simple.Setup</a></td></tr><tr><td class="src">showPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:showPackageDescription">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">showParen</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showProfDetailLevel</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:showProfDetailLevel">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">ShowS</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">shows</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showSimpleInstalledPackageInfoField</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:showSimpleInstalledPackageInfoField">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">showsPrec</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showString</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">showTree</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">showTreeWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">showUserBuildTarget</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:showUserBuildTarget">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">showVersion</td><td class="module"><a href="Distribution-Version.html#v:showVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">signatures</td><td class="module"><a href="Distribution-Types-Library.html#v:signatures">Distribution.Types.Library</a>, <a href="Distribution-PackageDescription.html#v:signatures">Distribution.PackageDescription</a></td></tr><tr><td class="src">significand</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">signum</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">silent</td><td class="module"><a href="Distribution-Verbosity.html#v:silent">Distribution.Verbosity</a></td></tr><tr><td class="src">Simple</td><td class="module"><a href="Distribution-Types-BuildType.html#v:Simple">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:Simple">Distribution.PackageDescription</a></td></tr><tr><td class="src">simple</td><td class="module"><a href="Distribution-ModuleName.html#v:simple">Distribution.ModuleName</a></td></tr><tr><td class="src">simpleConfiguredProgram</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:simpleConfiguredProgram">Distribution.Simple.Program.Types</a></td></tr><tr><td class="src">simpleGhcEnvironmentFile</td><td class="module"><a href="Distribution-Simple-GHC.html#v:simpleGhcEnvironmentFile">Distribution.Simple.GHC</a></td></tr><tr><td class="src">simpleParse</td><td class="module"><a href="Distribution-Text.html#v:simpleParse">Distribution.Text</a></td></tr><tr><td class="src">simpleProgram</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:simpleProgram">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:simpleProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">simpleProgramInvocation</td><td class="module"><a href="Distribution-Simple-Program-Run.html#v:simpleProgramInvocation">Distribution.Simple.Program.Run</a>, <a href="Distribution-Simple-Program.html#v:simpleProgramInvocation">Distribution.Simple.Program</a></td></tr><tr><td class="src">simpleTestStub</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:simpleTestStub">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">simpleUserHooks</td><td class="module"><a href="Distribution-Simple.html#v:simpleUserHooks">Distribution.Simple</a></td></tr><tr><td class="src">simplifyCondition</td><td class="module"><a href="Distribution-Types-Condition.html#v:simplifyCondition">Distribution.Types.Condition</a></td></tr><tr><td class="src">simplifyCondTree</td><td class="module"><a href="Distribution-Types-CondTree.html#v:simplifyCondTree">Distribution.Types.CondTree</a></td></tr><tr><td class="src">simplifyDependency</td><td class="module"><a href="Distribution-Types-Dependency.html#v:simplifyDependency">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">simplifyVersionRange</td><td class="module"><a href="Distribution-Version.html#v:simplifyVersionRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">sin</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">singleton</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-DList.html#v:singleton">Distribution.Compat.DList</a></td></tr><tr><td class="src">sinh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">size</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:size">Distribution.Compat.Graph</a></td></tr><tr><td class="src">skipMany</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:skipMany">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">skipMany1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:skipMany1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">skipSpaces</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:skipSpaces">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">skipSpaces1</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:skipSpaces1">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">smartCopySources</td><td class="module"><a href="Distribution-Simple-Utils.html#v:smartCopySources">Distribution.Simple.Utils</a></td></tr><tr><td class="src">snapshotPackage</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:snapshotPackage">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">snapshotVersion</td><td class="module"><a href="Distribution-Simple-SrcDist.html#v:snapshotVersion">Distribution.Simple.SrcDist</a></td></tr><tr><td class="src">snd</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">snoc</td><td class="module"><a href="Distribution-Compat-DList.html#v:snoc">Distribution.Compat.DList</a></td></tr><tr><td class="src">Solaris</td><td class="module"><a href="Distribution-System.html#v:Solaris">Distribution.System</a></td></tr><tr><td class="src">some</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:some">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sort</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:sort">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sortBy</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:sortBy">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">sourceComponentName</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:sourceComponentName">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">sourceLibName</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:sourceLibName">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">sourcePackageId</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:sourcePackageId">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">SourceRepo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-SourceRepo.html#t:SourceRepo">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#t:SourceRepo">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:SourceRepo">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:SourceRepo">Distribution.PackageDescription</a></td></tr><tr><td class="src">sourceRepoFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:sourceRepoFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">sourceRepos</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:sourceRepos">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:sourceRepos">Distribution.PackageDescription</a></td></tr><tr><td class="src">span</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">spanAntitone</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">Sparc</td><td class="module"><a href="Distribution-System.html#v:Sparc">Distribution.System</a></td></tr><tr><td class="src">SpecificPackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:SpecificPackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">specVersion</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:specVersion">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:specVersion">Distribution.PackageDescription</a></td></tr><tr><td class="src">specVersionRaw</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:specVersionRaw">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:specVersionRaw">Distribution.PackageDescription</a></td></tr><tr><td class="src">split</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">splitArgs</td><td class="module"><a href="Distribution-Simple-Setup.html#v:splitArgs">Distribution.Simple.Setup</a></td></tr><tr><td class="src">splitAt</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">splitLookup</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">splitObjs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:splitObjs">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:splitObjs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">splitRoot</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">sqrt</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">srcPref</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:srcPref">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">stability</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:stability">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:stability">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:stability">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">StandaloneDeriving</td><td class="module"><a href="Language-Haskell-Extension.html#v:StandaloneDeriving">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">startInterpreter</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-GHCJS.html#v:startInterpreter">Distribution.Simple.GHCJS</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-GHC.html#v:startInterpreter">Distribution.Simple.GHC</a></td></tr><tr><td class="alt">3 (Function)</td><td class="module"><a href="Distribution-Simple-Build.html#v:startInterpreter">Distribution.Simple.Build</a></td></tr><tr><td class="src">startsWithBOM</td><td class="module"><a href="Distribution-Utils-Generic.html#v:startsWithBOM">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:startsWithBOM">Distribution.Simple.Utils</a></td></tr><tr><td class="src">staticLibExtension</td><td class="module"><a href="Distribution-Simple-BuildPaths.html#v:staticLibExtension">Distribution.Simple.BuildPaths</a></td></tr><tr><td class="src">StaticPointers</td><td class="module"><a href="Language-Haskell-Extension.html#v:StaticPointers">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">stdParse</td><td class="module"><a href="Distribution-Text.html#v:stdParse">Distribution.Text</a></td></tr><tr><td class="src">stepProgress</td><td class="module"><a href="Distribution-Utils-Progress.html#v:stepProgress">Distribution.Utils.Progress</a></td></tr><tr><td class="src">Streaming</td><td class="module"><a href="Distribution-Simple-Setup.html#v:Streaming">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Strict</td><td> </td></tr><tr><td class="alt">1 (Data Constructor)</td><td class="module"><a href="Distribution-System.html#v:Strict">Distribution.System</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Language-Haskell-Extension.html#v:Strict">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">StrictData</td><td class="module"><a href="Language-Haskell-Extension.html#v:StrictData">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">String</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">string</td><td class="module"><a href="Distribution-Compat-ReadP.html#v:string">Distribution.Compat.ReadP</a></td></tr><tr><td class="src">stripExe</td><td class="module"><a href="Distribution-Simple-Program-Strip.html#v:stripExe">Distribution.Simple.Program.Strip</a></td></tr><tr><td class="src">stripExes</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:stripExes">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:stripExes">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">stripExtractVersion</td><td class="module"><a href="Distribution-Simple-Program-Internal.html#v:stripExtractVersion">Distribution.Simple.Program.Internal</a></td></tr><tr><td class="src">stripLib</td><td class="module"><a href="Distribution-Simple-Program-Strip.html#v:stripLib">Distribution.Simple.Program.Strip</a></td></tr><tr><td class="src">stripLibs</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:stripLibs">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:stripLibs">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">stripProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:stripProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:stripProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">stronglyConnComp</td><td class="module"><a href="Distribution-Compat-Graph.html#v:stronglyConnComp">Distribution.Compat.Graph</a></td></tr><tr><td class="src">stubFilePath</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:stubFilePath">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">stubMain</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:stubMain">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">stubName</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:stubName">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">stubWriteLog</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:stubWriteLog">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">subLibraries</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:subLibraries">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:subLibraries">Distribution.PackageDescription</a></td></tr><tr><td class="src">substituteInstallDirTemplates</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:substituteInstallDirTemplates">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">substPathTemplate</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:substPathTemplate">Distribution.Simple.InstallDirs</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:substPathTemplate">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">subtract</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">succ</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">succeedReadE</td><td class="module"><a href="Distribution-ReadE.html#v:succeedReadE">Distribution.ReadE</a></td></tr><tr><td class="src">suiteError</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:suiteError">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">suiteFailed</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:suiteFailed">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">suitePassed</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:suitePassed">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">sum</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:sum">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">summarizePackage</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:summarizePackage">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">summarizeSuiteFinish</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:summarizeSuiteFinish">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">summarizeSuiteStart</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:summarizeSuiteStart">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">summarizeTest</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:summarizeTest">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">supportsDirDbs</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:supportsDirDbs">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">supportsHaskell2010</td><td class="module"><a href="Distribution-Simple-GHC.html#v:supportsHaskell2010">Distribution.Simple.GHC</a></td></tr><tr><td class="src">supportsPkgEnvFiles</td><td class="module"><a href="Distribution-Simple-GHC.html#v:supportsPkgEnvFiles">Distribution.Simple.GHC</a></td></tr><tr><td class="src">suppressFilesCheck</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:suppressFilesCheck">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">suppressOverrideArgs</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:suppressOverrideArgs">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:suppressOverrideArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">SVN</td><td class="module"><a href="Distribution-Types-SourceRepo.html#v:SVN">Distribution.Types.SourceRepo</a>, <a href="Distribution-PackageDescription.html#v:SVN">Distribution.PackageDescription</a></td></tr><tr><td class="src">synopsis</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:synopsis">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:synopsis">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:synopsis">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">sysconfdir</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:sysconfdir">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-T.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - T)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - T</p><table><tr><td class="src">TabsError</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:TabsError">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">tags</td><td class="module"><a href="Distribution-TestSuite.html#v:tags">Distribution.TestSuite</a></td></tr><tr><td class="src">tail</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">take</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="alt">2 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">takeWhile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">takeWhileAntitone</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">takeWhileEndLE</td><td class="module"><a href="Distribution-Utils-Generic.html#v:takeWhileEndLE">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:takeWhileEndLE">Distribution.Simple.Utils</a></td></tr><tr><td class="src">tan</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">tanh</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">targetBuildDepends</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:targetBuildDepends">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:targetBuildDepends">Distribution.PackageDescription</a></td></tr><tr><td class="src">targetCLBI</td><td class="module"><a href="Distribution-Types-TargetInfo.html#v:targetCLBI">Distribution.Types.TargetInfo</a></td></tr><tr><td class="src">targetComponent</td><td class="module"><a href="Distribution-Types-TargetInfo.html#v:targetComponent">Distribution.Types.TargetInfo</a></td></tr><tr><td class="src">TargetInfo</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-TargetInfo.html#t:TargetInfo">Distribution.Types.TargetInfo</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-TargetInfo.html#v:TargetInfo">Distribution.Types.TargetInfo</a></td></tr><tr><td class="src">tarProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:tarProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:tarProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">TempFileOptions</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Utils.html#t:TempFileOptions">Distribution.Simple.Utils</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Utils.html#v:TempFileOptions">Distribution.Simple.Utils</a></td></tr><tr><td class="src">TemplateHaskell</td><td class="module"><a href="Language-Haskell-Extension.html#v:TemplateHaskell">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TemplateHaskellQuotes</td><td class="module"><a href="Language-Haskell-Extension.html#v:TemplateHaskellQuotes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Test</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-TestSuite.html#t:Test">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-TestSuite.html#v:Test">Distribution.TestSuite</a></td></tr><tr><td class="src">test</td><td class="module"><a href="Distribution-Simple-Test.html#v:test">Distribution.Simple.Test</a></td></tr><tr><td class="src">testBuildInfo</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testBuildInfo">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testBuildInfo">Distribution.PackageDescription</a></td></tr><tr><td class="src">testCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">TestComponentLocalBuildInfo</td><td class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html#v:TestComponentLocalBuildInfo">Distribution.Types.ComponentLocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:TestComponentLocalBuildInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">testCoverage</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:testCoverage">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">testDistPref</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testDistPref">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testedWith</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:testedWith">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:testedWith">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestFlags</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Setup.html#t:TestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Setup.html#v:TestFlags">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testGroup</td><td class="module"><a href="Distribution-TestSuite.html#v:testGroup">Distribution.TestSuite</a></td></tr><tr><td class="src">testHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:testHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:testHook">Distribution.Simple</a></td></tr><tr><td class="src">testHumanLog</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testHumanLog">Distribution.Simple.Setup</a></td></tr><tr><td class="src">TestInstance</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-TestSuite.html#t:TestInstance">Distribution.TestSuite</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-TestSuite.html#v:TestInstance">Distribution.TestSuite</a></td></tr><tr><td class="src">testInterface</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testInterface">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testInterface">Distribution.PackageDescription</a></td></tr><tr><td class="src">testKeepTix</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testKeepTix">Distribution.Simple.Setup</a></td></tr><tr><td class="src">TestLog</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:TestLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">TestLogs</td><td class="module"><a href="Distribution-Simple-Test-Log.html#t:TestLogs">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testLogs</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testLogs">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testMachineLog</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testMachineLog">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testModules</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testModules">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testModules">Distribution.PackageDescription</a></td></tr><tr><td class="src">testModulesAutogen</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testModulesAutogen">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testModulesAutogen">Distribution.PackageDescription</a></td></tr><tr><td class="src">testName</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testName">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testName">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testName">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testOptions</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testOptions">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testOptionsReturned</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testOptionsReturned">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testResult</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testResult">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">TestShowDetails</td><td class="module"><a href="Distribution-Simple-Setup.html#t:TestShowDetails">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testShowDetails</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testShowDetails">Distribution.Simple.Setup</a></td></tr><tr><td class="src">testsRequested</td><td class="module"><a href="Distribution-Types-ComponentRequestedSpec.html#v:testsRequested">Distribution.Types.ComponentRequestedSpec</a></td></tr><tr><td class="src">testStanzaBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testStanzaBuildInfo">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">testStanzaMainIs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testStanzaMainIs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">testStanzaTestModule</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testStanzaTestModule">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">testStanzaTestType</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testStanzaTestType">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">TestSuite</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Types-TestSuite.html#t:TestSuite">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#t:TestSuite">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:TestSuite">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:TestSuite">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestSuiteExeV10</td><td class="module"><a href="Distribution-Types-TestSuiteInterface.html#v:TestSuiteExeV10">Distribution.Types.TestSuiteInterface</a>, <a href="Distribution-PackageDescription.html#v:TestSuiteExeV10">Distribution.PackageDescription</a></td></tr><tr><td class="src">testSuiteFieldDescrs</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:testSuiteFieldDescrs">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">TestSuiteInterface</td><td class="module"><a href="Distribution-Types-TestSuiteInterface.html#t:TestSuiteInterface">Distribution.Types.TestSuiteInterface</a>, <a href="Distribution-PackageDescription.html#t:TestSuiteInterface">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestSuiteLibV09</td><td class="module"><a href="Distribution-Types-TestSuiteInterface.html#v:TestSuiteLibV09">Distribution.Types.TestSuiteInterface</a>, <a href="Distribution-PackageDescription.html#v:TestSuiteLibV09">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestSuiteLog</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#t:TestSuiteLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:TestSuiteLog">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testSuiteLogPath</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testSuiteLogPath">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">testSuiteName</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testSuiteName">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">TestSuiteNameVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:TestSuiteNameVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">TestSuiteResultVar</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:TestSuiteResultVar">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">testSuites</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:testSuites">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:testSuites">Distribution.PackageDescription</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Test-Log.html#v:testSuites">Distribution.Simple.Test.Log</a></td></tr><tr><td class="src">TestSuiteStanza</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#t:TestSuiteStanza">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-PackageDescription-Parse.html#v:TestSuiteStanza">Distribution.PackageDescription.Parse</a></td></tr><tr><td class="src">TestSuiteUnsupported</td><td class="module"><a href="Distribution-Types-TestSuiteInterface.html#v:TestSuiteUnsupported">Distribution.Types.TestSuiteInterface</a>, <a href="Distribution-PackageDescription.html#v:TestSuiteUnsupported">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestType</td><td class="module"><a href="Distribution-Types-TestType.html#t:TestType">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#t:TestType">Distribution.PackageDescription</a></td></tr><tr><td class="src">testType</td><td class="module"><a href="Distribution-Types-TestSuite.html#v:testType">Distribution.Types.TestSuite</a>, <a href="Distribution-PackageDescription.html#v:testType">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestTypeExe</td><td class="module"><a href="Distribution-Types-TestType.html#v:TestTypeExe">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#v:TestTypeExe">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestTypeLib</td><td class="module"><a href="Distribution-Types-TestType.html#v:TestTypeLib">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#v:TestTypeLib">Distribution.PackageDescription</a></td></tr><tr><td class="src">TestTypeUnknown</td><td class="module"><a href="Distribution-Types-TestType.html#v:TestTypeUnknown">Distribution.Types.TestType</a>, <a href="Distribution-PackageDescription.html#v:TestTypeUnknown">Distribution.PackageDescription</a></td></tr><tr><td class="src">testVerbosity</td><td class="module"><a href="Distribution-Simple-Setup.html#v:testVerbosity">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Text</td><td class="module"><a href="Distribution-Text.html#t:Text">Distribution.Text</a></td></tr><tr><td class="src">thisPackageVersion</td><td class="module"><a href="Distribution-Types-Dependency.html#v:thisPackageVersion">Distribution.Types.Dependency</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">ThisVersion</td><td class="module"><a href="Distribution-Version.html#v:ThisVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">thisVersion</td><td class="module"><a href="Distribution-Version.html#v:thisVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">tixDir</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:tixDir">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">tixFilePath</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:tixFilePath">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">toAscList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">toConfiguredComponent</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:toConfiguredComponent">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">toConfiguredComponents</td><td class="module"><a href="Distribution-Backpack-ConfiguredComponent.html#v:toConfiguredComponents">Distribution.Backpack.ConfiguredComponent</a></td></tr><tr><td class="src">toDepMap</td><td class="module"><a href="Distribution-Types-DependencyMap.html#v:toDepMap">Distribution.Types.DependencyMap</a></td></tr><tr><td class="src">toDescList</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">toEnum</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">toFilePath</td><td class="module"><a href="Distribution-ModuleName.html#v:toFilePath">Distribution.ModuleName</a></td></tr><tr><td class="src">toFlag</td><td class="module"><a href="Distribution-Simple-Setup.html#v:toFlag">Distribution.Simple.Setup</a></td></tr><tr><td class="src">toGraph</td><td class="module"><a href="Distribution-Compat-Graph.html#v:toGraph">Distribution.Compat.Graph</a></td></tr><tr><td class="src">toInteger</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">toLinkedComponent</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:toLinkedComponent">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">toLinkedComponents</td><td class="module"><a href="Distribution-Backpack-LinkedComponent.html#v:toLinkedComponents">Distribution.Backpack.LinkedComponent</a></td></tr><tr><td class="src">toList</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Compat-Graph.html#v:toList">Distribution.Compat.Graph</a></td></tr><tr><td class="src">toLower</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:toLower">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">toMap</td><td class="module"><a href="Distribution-Compat-Graph.html#v:toMap">Distribution.Compat.Graph</a></td></tr><tr><td class="src">toNubList</td><td class="module"><a href="Distribution-Utils-NubList.html#v:toNubList">Distribution.Utils.NubList</a></td></tr><tr><td class="src">toNubListR</td><td class="module"><a href="Distribution-Utils-NubList.html#v:toNubListR">Distribution.Utils.NubList</a></td></tr><tr><td class="src">toPathTemplate</td><td class="module"><a href="Distribution-Simple-InstallDirs.html#v:toPathTemplate">Distribution.Simple.InstallDirs</a>, Distribution.Simple.LocalBuildInfo</td></tr><tr><td class="src">topHandler</td><td class="module"><a href="Distribution-Simple-Utils.html#v:topHandler">Distribution.Simple.Utils</a></td></tr><tr><td class="src">topHandlerWith</td><td class="module"><a href="Distribution-Simple-Utils.html#v:topHandlerWith">Distribution.Simple.Utils</a></td></tr><tr><td class="src">topologicalOrder</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:topologicalOrder">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">topSort</td><td class="module"><a href="Distribution-Compat-Graph.html#v:topSort">Distribution.Compat.Graph</a></td></tr><tr><td class="src">toRational</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">toShortText</td><td class="module"><a href="Distribution-Utils-ShortText.html#v:toShortText">Distribution.Utils.ShortText</a></td></tr><tr><td class="src">toUpper</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:toUpper">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">toUTF8</td><td class="module"><a href="Distribution-Utils-Generic.html#v:toUTF8">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:toUTF8">Distribution.Simple.Utils</a></td></tr><tr><td class="src">toVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:toVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">TraditionalRecordSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:TraditionalRecordSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">transformAllBuildDepends</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:transformAllBuildDepends">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">transformAllBuildInfos</td><td class="module"><a href="Distribution-PackageDescription-Configuration.html#v:transformAllBuildInfos">Distribution.PackageDescription.Configuration</a></td></tr><tr><td class="src">TransformListComp</td><td class="module"><a href="Language-Haskell-Extension.html#v:TransformListComp">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Traversable</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Traversable">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">traverse</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:traverse">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">traverseMaybeWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">traverseWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">traverse_</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:traverse_">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">True</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">trueArg</td><td class="module"><a href="Distribution-Simple-Setup.html#v:trueArg">Distribution.Simple.Setup</a></td></tr><tr><td class="src">truncate</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">trusted</td><td class="module"><a href="Distribution-InstalledPackageInfo.html#v:trusted">Distribution.InstalledPackageInfo</a></td></tr><tr><td class="src">Trustworthy</td><td class="module"><a href="Language-Haskell-Extension.html#v:Trustworthy">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">tryFindPackageDesc</td><td class="module"><a href="Distribution-Simple-Utils.html#v:tryFindPackageDesc">Distribution.Simple.Utils</a></td></tr><tr><td class="src">tryGetConfigStateFile</td><td class="module"><a href="Distribution-Simple-Configure.html#v:tryGetConfigStateFile">Distribution.Simple.Configure</a></td></tr><tr><td class="src">tryGetPersistBuildConfig</td><td class="module"><a href="Distribution-Simple-Configure.html#v:tryGetPersistBuildConfig">Distribution.Simple.Configure</a></td></tr><tr><td class="src">tryIO</td><td class="module"><a href="Distribution-Compat-Exception.html#v:tryIO">Distribution.Compat.Exception</a></td></tr><tr><td class="src">TupleSections</td><td class="module"><a href="Language-Haskell-Extension.html#v:TupleSections">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">Typeable</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#t:Typeable">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">TypeApplications</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeApplications">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeFamilies</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeFamilies">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeFamilyDependencies</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeFamilyDependencies">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeInType</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeInType">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeOperators</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeOperators">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">TypeSynonymInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:TypeSynonymInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-U.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - U)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - U</p><table><tr><td class="src">UHC</td><td class="module"><a href="Distribution-Compiler.html#v:UHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">uhcProgram</td><td class="module"><a href="Distribution-Simple-Program-Builtin.html#v:uhcProgram">Distribution.Simple.Program.Builtin</a>, <a href="Distribution-Simple-Program.html#v:uhcProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">unAbiHash</td><td class="module"><a href="Distribution-Types-AbiHash.html#v:unAbiHash">Distribution.Types.AbiHash</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unAllowNewer</td><td class="module"><a href="Distribution-Simple-Setup.html#v:unAllowNewer">Distribution.Simple.Setup</a></td></tr><tr><td class="src">unAllowOlder</td><td class="module"><a href="Distribution-Simple-Setup.html#v:unAllowOlder">Distribution.Simple.Setup</a></td></tr><tr><td class="src">Unambiguous</td><td class="module"><a href="Distribution-Simple-PackageIndex.html#v:Unambiguous">Distribution.Simple.PackageIndex</a></td></tr><tr><td class="src">UnboxedTuples</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnboxedTuples">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">unComponentId</td><td class="module"><a href="Distribution-Types-ComponentId.html#v:unComponentId">Distribution.Types.ComponentId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unconfigureProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:unconfigureProgram">Distribution.Simple.Program.Db</a></td></tr><tr><td class="src">uncurry</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">UndecidableInstances</td><td class="module"><a href="Language-Haskell-Extension.html#v:UndecidableInstances">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">UndecidableSuperClasses</td><td class="module"><a href="Language-Haskell-Extension.html#v:UndecidableSuperClasses">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">undefined</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unDefUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:unDefUnitId">Distribution.Types.UnitId</a>, <a href="Distribution-Backpack.html#v:unDefUnitId">Distribution.Backpack</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unFlagName</td><td class="module"><a href="Distribution-Types-GenericPackageDescription.html#v:unFlagName">Distribution.Types.GenericPackageDescription</a>, <a href="Distribution-PackageDescription.html#v:unFlagName">Distribution.PackageDescription</a></td></tr><tr><td class="src">unfoldr</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:unfoldr">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">UnicodeSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnicodeSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">unifiedIPIDRequired</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:unifiedIPIDRequired">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">unintersperse</td><td class="module"><a href="Distribution-Utils-Generic.html#v:unintersperse">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:unintersperse">Distribution.Simple.Utils</a></td></tr><tr><td class="src">union</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Program-Hpc.html#v:union">Distribution.Simple.Program.Hpc</a></td></tr><tr><td class="src">unionLeft</td><td class="module"><a href="Distribution-Compat-Graph.html#v:unionLeft">Distribution.Compat.Graph</a></td></tr><tr><td class="src">unionRight</td><td class="module"><a href="Distribution-Compat-Graph.html#v:unionRight">Distribution.Compat.Graph</a></td></tr><tr><td class="src">unions</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">unionsWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">unionVersionIntervals</td><td class="module"><a href="Distribution-Version.html#v:unionVersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">UnionVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:UnionVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">unionVersionRanges</td><td class="module"><a href="Distribution-Version.html#v:unionVersionRanges">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">unionWith</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">unionWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">UnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#t:UnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unitIdSupported</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:unitIdSupported">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">unitIdTarget</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:unitIdTarget">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">unitIdTarget'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:unitIdTarget-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">UnknownBuildType</td><td class="module"><a href="Distribution-Types-BuildType.html#v:UnknownBuildType">Distribution.Types.BuildType</a>, <a href="Distribution-PackageDescription.html#v:UnknownBuildType">Distribution.PackageDescription</a></td></tr><tr><td class="src">unknownCompilerInfo</td><td class="module"><a href="Distribution-Compiler.html#v:unknownCompilerInfo">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr><tr><td class="src">UnknownExtension</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnknownExtension">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">UnknownLanguage</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnknownLanguage">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">UnknownLicense</td><td class="module"><a href="Distribution-License.html#v:UnknownLicense">Distribution.License</a>, <a href="Distribution-Make.html#v:UnknownLicense">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">unless</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:unless">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">UnliftedFFITypes</td><td class="module"><a href="Language-Haskell-Extension.html#v:UnliftedFFITypes">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">unlines</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unlit</td><td class="module"><a href="Distribution-Simple-PreProcess-Unlit.html#v:unlit">Distribution.Simple.PreProcess.Unlit</a></td></tr><tr><td class="src">unMungedPackageName</td><td class="module"><a href="Distribution-Types-MungedPackageName.html#v:unMungedPackageName">Distribution.Types.MungedPackageName</a></td></tr><tr><td class="src">unPackageName</td><td class="module"><a href="Distribution-Types-PackageName.html#v:unPackageName">Distribution.Types.PackageName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unPkgconfigName</td><td class="module"><a href="Distribution-Types-PkgconfigName.html#v:unPkgconfigName">Distribution.Types.PkgconfigName</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">UnqualComponentName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#t:UnqualComponentName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">unqualComponentNameToPackageName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#v:unqualComponentNameToPackageName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">unregHook</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:unregHook">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:unregHook">Distribution.Simple</a></td></tr><tr><td class="src">unregister</td><td> </td></tr><tr><td class="alt">1 (Function)</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:unregister">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="alt">2 (Function)</td><td class="module"><a href="Distribution-Simple-Register.html#v:unregister">Distribution.Simple.Register</a></td></tr><tr><td class="src">unregisterCommand</td><td class="module"><a href="Distribution-Simple-Setup.html#v:unregisterCommand">Distribution.Simple.Setup</a></td></tr><tr><td class="src">unregisterInvocation</td><td class="module"><a href="Distribution-Simple-Program-HcPkg.html#v:unregisterInvocation">Distribution.Simple.Program.HcPkg</a></td></tr><tr><td class="src">Unsafe</td><td class="module"><a href="Language-Haskell-Extension.html#v:Unsafe">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">unsafeMkDefUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:unsafeMkDefUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">UnspecifiedLicense</td><td class="module"><a href="Distribution-License.html#v:UnspecifiedLicense">Distribution.License</a>, <a href="Distribution-Make.html#v:UnspecifiedLicense">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">unsupportedExtensions</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:unsupportedExtensions">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">unsupportedLanguages</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:unsupportedLanguages">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">until</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unUnitId</td><td class="module"><a href="Distribution-Types-UnitId.html#v:unUnitId">Distribution.Types.UnitId</a>, Distribution.Package, Distribution.Make, Distribution.Simple</td></tr><tr><td class="src">unUnqualComponentName</td><td class="module"><a href="Distribution-Types-UnqualComponentName.html#v:unUnqualComponentName">Distribution.Types.UnqualComponentName</a></td></tr><tr><td class="src">unwords</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unzip</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">unzip3</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">update</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateAt</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateLookupWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateMax</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateMaxWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateMin</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updateMinWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">updatePackageDescription</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:updatePackageDescription">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:updatePackageDescription">Distribution.PackageDescription</a></td></tr><tr><td class="src">updateProgram</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:updateProgram">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:updateProgram">Distribution.Simple.Program</a></td></tr><tr><td class="src">updateWithKey</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">UpperBound</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Version.html#t:UpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Version.html#v:UpperBound">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">usageAlternatives</td><td class="module"><a href="Distribution-Simple-Command.html#v:usageAlternatives">Distribution.Simple.Command</a></td></tr><tr><td class="src">usageDefault</td><td class="module"><a href="Distribution-Simple-Command.html#v:usageDefault">Distribution.Simple.Command</a></td></tr><tr><td class="src">usedExtensions</td><td class="module"><a href="Distribution-Types-BuildInfo.html#v:usedExtensions">Distribution.Types.BuildInfo</a>, <a href="Distribution-PackageDescription.html#v:usedExtensions">Distribution.PackageDescription</a></td></tr><tr><td class="src">userBug</td><td class="module"><a href="Distribution-PackageDescription-Utils.html#v:userBug">Distribution.PackageDescription.Utils</a></td></tr><tr><td class="src">UserBuildTarget</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:UserBuildTarget">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">UserBuildTargetProblem</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#t:UserBuildTargetProblem">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">UserBuildTargetUnrecognised</td><td class="module"><a href="Distribution-Simple-BuildTarget.html#v:UserBuildTargetUnrecognised">Distribution.Simple.BuildTarget</a></td></tr><tr><td class="src">userError</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">UserHooks</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Distribution-Simple-UserHooks.html#t:UserHooks">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#t:UserHooks">Distribution.Simple</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Distribution-Simple-UserHooks.html#v:UserHooks">Distribution.Simple.UserHooks</a>, <a href="Distribution-Simple.html#v:UserHooks">Distribution.Simple</a></td></tr><tr><td class="src">userMaybeSpecifyPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userMaybeSpecifyPath">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userMaybeSpecifyPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">UserPackageDB</td><td class="module"><a href="Distribution-Simple-Compiler.html#v:UserPackageDB">Distribution.Simple.Compiler</a>, Distribution.Simple</td></tr><tr><td class="src">UserSpecified</td><td class="module"><a href="Distribution-Simple-Program-Types.html#v:UserSpecified">Distribution.Simple.Program.Types</a>, <a href="Distribution-Simple-Program.html#v:UserSpecified">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifiedArgs</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifiedArgs">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifiedArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifyArgs</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifyArgs">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifyArgs">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifyArgss</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifyArgss">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifyArgss">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifyPath</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifyPath">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifyPath">Distribution.Simple.Program</a></td></tr><tr><td class="src">userSpecifyPaths</td><td class="module"><a href="Distribution-Simple-Program-Db.html#v:userSpecifyPaths">Distribution.Simple.Program.Db</a>, <a href="Distribution-Simple-Program.html#v:userSpecifyPaths">Distribution.Simple.Program</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-V.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - V)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - V</p><table><tr><td class="src">valid</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">validModuleComponent</td><td class="module"><a href="Distribution-ModuleName.html#v:validModuleComponent">Distribution.ModuleName</a></td></tr><tr><td class="src">Vanilla</td><td class="module"><a href="Distribution-Simple-Hpc.html#v:Vanilla">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">Var</td><td class="module"><a href="Distribution-Types-Condition.html#v:Var">Distribution.Types.Condition</a>, <a href="Distribution-PackageDescription.html#v:Var">Distribution.PackageDescription</a></td></tr><tr><td class="src">Vax</td><td class="module"><a href="Distribution-System.html#v:Vax">Distribution.System</a></td></tr><tr><td class="src">verbose</td><td class="module"><a href="Distribution-Verbosity.html#v:verbose">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseCallSite</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseCallSite">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseCallStack</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseCallStack">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseHasFlags</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseHasFlags">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseMarkOutput</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseMarkOutput">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseNoFlags</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseNoFlags">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseNoWrap</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseNoWrap">Distribution.Verbosity</a></td></tr><tr><td class="src">verboseUnmarkOutput</td><td class="module"><a href="Distribution-Verbosity.html#v:verboseUnmarkOutput">Distribution.Verbosity</a></td></tr><tr><td class="src">Verbosity</td><td class="module"><a href="Distribution-Verbosity.html#t:Verbosity">Distribution.Verbosity</a></td></tr><tr><td class="src">Version</td><td class="module"><a href="Distribution-Version.html#t:Version">Distribution.Version</a>, <a href="Distribution-Make.html#t:Version">Distribution.Make</a>, Distribution.Simple</td></tr><tr><td class="src">VersionInterval</td><td class="module"><a href="Distribution-Version.html#t:VersionInterval">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">VersionIntervals</td><td class="module"><a href="Distribution-Version.html#t:VersionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">versionIntervals</td><td class="module"><a href="Distribution-Version.html#v:versionIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">versionNumbers</td><td class="module"><a href="Distribution-Version.html#v:versionNumbers">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">VersionRange</td><td class="module"><a href="Distribution-Version.html#t:VersionRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">VersionRangeParens</td><td class="module"><a href="Distribution-Version.html#v:VersionRangeParens">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">viewAsFieldDescr</td><td class="module"><a href="Distribution-Simple-Command.html#v:viewAsFieldDescr">Distribution.Simple.Command</a></td></tr><tr><td class="src">ViewPatterns</td><td class="module"><a href="Language-Haskell-Extension.html#v:ViewPatterns">Language.Haskell.Extension</a>, Distribution.Simple</td></tr><tr><td class="src">void</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:void">Distribution.Compat.Prelude.Internal</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-W.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - W)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - W</p><table><tr><td class="src">warn</td><td class="module"><a href="Distribution-Simple-Utils.html#v:warn">Distribution.Simple.Utils</a></td></tr><tr><td class="src">warnProgress</td><td class="module"><a href="Distribution-Utils-LogProgress.html#v:warnProgress">Distribution.Utils.LogProgress</a></td></tr><tr><td class="src">Way</td><td class="module"><a href="Distribution-Simple-Hpc.html#t:Way">Distribution.Simple.Hpc</a></td></tr><tr><td class="src">when</td><td class="module"><a href="Distribution-Compat-Prelude-Internal.html#v:when">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">WildcardVersion</td><td class="module"><a href="Distribution-Version.html#v:WildcardVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">Windows</td><td class="module"><a href="Distribution-System.html#v:Windows">Distribution.System</a></td></tr><tr><td class="src">withAllComponentsInBuildOrder</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withAllComponentsInBuildOrder">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withAllTargetsInBuildOrder</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withAllTargetsInBuildOrder">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">withAllTargetsInBuildOrder'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withAllTargetsInBuildOrder-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">withBenchLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withBenchLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withBenchmark</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withBenchmark">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:withBenchmark">Distribution.PackageDescription</a></td></tr><tr><td class="src">WithCallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#t:WithCallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">withComponentsInBuildOrder</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withComponentsInBuildOrder">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withComponentsLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withComponentsLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withDebugInfo</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withDebugInfo">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withDebugInfo">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withDynExe</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withDynExe">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withDynExe">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withExe</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withExe">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:withExe">Distribution.PackageDescription</a></td></tr><tr><td class="src">withExeLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withExeLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withFileContents</td><td class="module"><a href="Distribution-Utils-Generic.html#v:withFileContents">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:withFileContents">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withForeignLib</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withForeignLib">Distribution.Types.PackageDescription</a></td></tr><tr><td class="src">withFrozenCallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#v:withFrozenCallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">withGHCiLib</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withGHCiLib">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withGHCiLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withinIntervals</td><td class="module"><a href="Distribution-Version.html#v:withinIntervals">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">withinRange</td><td class="module"><a href="Distribution-Version.html#v:withinRange">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">withinVersion</td><td class="module"><a href="Distribution-Version.html#v:withinVersion">Distribution.Version</a>, Distribution.Simple</td></tr><tr><td class="src">withLexicalCallStack</td><td class="module"><a href="Distribution-Compat-Stack.html#v:withLexicalCallStack">Distribution.Compat.Stack</a></td></tr><tr><td class="src">withLib</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withLib">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:withLib">Distribution.PackageDescription</a></td></tr><tr><td class="src">withLibLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withLibLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withNeededTargetsInBuildOrder</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withNeededTargetsInBuildOrder">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">withNeededTargetsInBuildOrder'</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withNeededTargetsInBuildOrder-39-">Distribution.Types.LocalBuildInfo</a></td></tr><tr><td class="src">withOptimization</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withOptimization">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withOptimization">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withoutKeys</td><td class="module">Distribution.Compat.Map.Strict</td></tr><tr><td class="src">withPackageDB</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withPackageDB">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withPackageDB">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withProfExe</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withProfExe">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withProfExe">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withProfExeDetail</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withProfExeDetail">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withProfExeDetail">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withProfLib</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withProfLib">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withProfLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withProfLibDetail</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withProfLibDetail">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withProfLibDetail">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withPrograms</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withPrograms">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withPrograms">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withSharedLib</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withSharedLib">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withSharedLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withTempDirectory</td><td class="module"><a href="Distribution-Simple-Utils.html#v:withTempDirectory">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withTempDirectoryEx</td><td class="module"><a href="Distribution-Simple-Utils.html#v:withTempDirectoryEx">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withTempFile</td><td class="module"><a href="Distribution-Simple-Utils.html#v:withTempFile">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withTempFileEx</td><td class="module"><a href="Distribution-Simple-Utils.html#v:withTempFileEx">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withTest</td><td class="module"><a href="Distribution-Types-PackageDescription.html#v:withTest">Distribution.Types.PackageDescription</a>, <a href="Distribution-PackageDescription.html#v:withTest">Distribution.PackageDescription</a></td></tr><tr><td class="src">withTestLBI</td><td class="module"><a href="Distribution-Simple-LocalBuildInfo.html#v:withTestLBI">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">withUTF8FileContents</td><td class="module"><a href="Distribution-Utils-Generic.html#v:withUTF8FileContents">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:withUTF8FileContents">Distribution.Simple.Utils</a></td></tr><tr><td class="src">withVanillaLib</td><td class="module"><a href="Distribution-Types-LocalBuildInfo.html#v:withVanillaLib">Distribution.Types.LocalBuildInfo</a>, <a href="Distribution-Simple-LocalBuildInfo.html#v:withVanillaLib">Distribution.Simple.LocalBuildInfo</a></td></tr><tr><td class="src">Word</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Word16</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word16">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Word32</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word32">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Word64</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word64">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">Word8</td><td class="module">Distribution.Compat.Binary, <a href="Distribution-Compat-Prelude-Internal.html#t:Word8">Distribution.Compat.Prelude.Internal</a></td></tr><tr><td class="src">words</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">wrapLine</td><td class="module"><a href="Distribution-Utils-Generic.html#v:wrapLine">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:wrapLine">Distribution.Simple.Utils</a></td></tr><tr><td class="src">wrapText</td><td class="module"><a href="Distribution-Utils-Generic.html#v:wrapText">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:wrapText">Distribution.Simple.Utils</a></td></tr><tr><td class="src">writeAutogenFiles</td><td class="module"><a href="Distribution-Simple-Build.html#v:writeAutogenFiles">Distribution.Simple.Build</a></td></tr><tr><td class="src">writeFile</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">writeFileAtomic</td><td class="module"><a href="Distribution-Utils-Generic.html#v:writeFileAtomic">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:writeFileAtomic">Distribution.Simple.Utils</a></td></tr><tr><td class="src">writeGenericPackageDescription</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:writeGenericPackageDescription">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">writeGhcEnvironmentFile</td><td class="module"><a href="Distribution-Simple-GHC.html#v:writeGhcEnvironmentFile">Distribution.Simple.GHC</a></td></tr><tr><td class="src">writeHookedBuildInfo</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:writeHookedBuildInfo">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">writePackageDescription</td><td class="module"><a href="Distribution-PackageDescription-PrettyPrint.html#v:writePackageDescription">Distribution.PackageDescription.PrettyPrint</a></td></tr><tr><td class="src">writePersistBuildConfig</td><td class="module"><a href="Distribution-Simple-Configure.html#v:writePersistBuildConfig">Distribution.Simple.Configure</a></td></tr><tr><td class="src">writeSimpleTestStub</td><td class="module"><a href="Distribution-Simple-Test-LibV09.html#v:writeSimpleTestStub">Distribution.Simple.Test.LibV09</a></td></tr><tr><td class="src">writeUTF8File</td><td class="module"><a href="Distribution-Utils-Generic.html#v:writeUTF8File">Distribution.Utils.Generic</a>, <a href="Distribution-Simple-Utils.html#v:writeUTF8File">Distribution.Simple.Utils</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-X.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - X)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - X</p><table><tr><td class="src">X86_64</td><td class="module"><a href="Distribution-System.html#v:X86_64">Distribution.System</a></td></tr><tr><td class="src">xargs</td><td class="module"><a href="Distribution-Simple-Utils.html#v:xargs">Distribution.Simple.Utils</a></td></tr><tr><td class="src">XmlSyntax</td><td class="module"><a href="Language-Haskell-Extension.html#v:XmlSyntax">Language.Haskell.Extension</a>, Distribution.Simple</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-Y.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - Y)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - Y</p><table><tr><td class="src">YHC</td><td class="module"><a href="Distribution-Compiler.html#v:YHC">Distribution.Compiler</a>, Distribution.Simple.Compiler, Distribution.Simple</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index-Z.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index - Z)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - Z</p><table><tr><td class="src">zip</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">zip3</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">zipWith</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr><tr><td class="src">zipWith3</td><td class="module">Distribution.Compat.Prelude.Internal</td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/doc-index.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software (Index)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-J.html">J</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-X.html">X</a></li><li><a href="doc-index-Y.html">Y</a></li><li><a href="doc-index-Z.html">Z</a></li><li><a href="doc-index-33.html">!</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-38.html">&</a></li><li><a href="doc-index-42.html">*</a></li><li><a href="doc-index-43.html">+</a></li><li><a href="doc-index-46.html">.</a></li><li><a href="doc-index-47.html">/</a></li><li><a href="doc-index-60.html"><</a></li><li><a href="doc-index-61.html">=</a></li><li><a href="doc-index-62.html">></a></li><li><a href="doc-index-92.html">\</a></li><li><a href="doc-index-94.html">^</a></li><li><a href="doc-index-124.html">|</a></li><li><a href="doc-index-45.html">-</a></li><li><a href="doc-index-All.html">All</a></li></ul></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/haddock-util.js view
@@ -0,0 +1,186 @@+// Haddock JavaScript utilities++var rspace = /\s\s+/g,+ rtrim = /^\s+|\s+$/g;++function spaced(s) { return (" " + s + " ").replace(rspace, " "); }+function trim(s) { return s.replace(rtrim, ""); }++function hasClass(elem, value) {+ var className = spaced(elem.className || "");+ return className.indexOf( " " + value + " " ) >= 0;+}++function addClass(elem, value) {+ var className = spaced(elem.className || "");+ if ( className.indexOf( " " + value + " " ) < 0 ) {+ elem.className = trim(className + " " + value);+ }+}++function removeClass(elem, value) {+ var className = spaced(elem.className || "");+ className = className.replace(" " + value + " ", " ");+ elem.className = trim(className);+}++function toggleClass(elem, valueOn, valueOff, bool) {+ if (bool == null) { bool = ! hasClass(elem, valueOn); }+ if (bool) {+ removeClass(elem, valueOff);+ addClass(elem, valueOn);+ }+ else {+ removeClass(elem, valueOn);+ addClass(elem, valueOff);+ }+ return bool;+}+++function makeClassToggle(valueOn, valueOff)+{+ return function(elem, bool) {+ return toggleClass(elem, valueOn, valueOff, bool);+ }+}++toggleShow = makeClassToggle("show", "hide");+toggleCollapser = makeClassToggle("collapser", "expander");++function toggleSection(id)+{+ var b = toggleShow(document.getElementById("section." + id));+ toggleCollapser(document.getElementById("control." + id), b);+ rememberCollapsed(id);+ return b;+}++var collapsed = {};+function rememberCollapsed(id)+{+ if(collapsed[id])+ delete collapsed[id]+ else+ collapsed[id] = true;++ var sections = [];+ for(var i in collapsed)+ {+ if(collapsed.hasOwnProperty(i))+ sections.push(i);+ }+ // cookie specific to this page; don't use setCookie which sets path=/+ document.cookie = "collapsed=" + escape(sections.join('+'));+}++function restoreCollapsed()+{+ var cookie = getCookie("collapsed");+ if(!cookie)+ return;++ var ids = cookie.split('+');+ for(var i in ids)+ {+ if(document.getElementById("section." + ids[i]))+ toggleSection(ids[i]);+ }+}++function setCookie(name, value) {+ document.cookie = name + "=" + escape(value) + ";path=/;";+}++function clearCookie(name) {+ document.cookie = name + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;";+}++function getCookie(name) {+ var nameEQ = name + "=";+ var ca = document.cookie.split(';');+ for(var i=0;i < ca.length;i++) {+ var c = ca[i];+ while (c.charAt(0)==' ') c = c.substring(1,c.length);+ if (c.indexOf(nameEQ) == 0) {+ return unescape(c.substring(nameEQ.length,c.length));+ }+ }+ return null;+}++function addMenuItem(html) {+ var menu = document.getElementById("page-menu");+ if (menu) {+ var btn = menu.firstChild.cloneNode(false);+ btn.innerHTML = html;+ menu.appendChild(btn);+ }+}++function styles() {+ var i, a, es = document.getElementsByTagName("link"), rs = [];+ for (i = 0; a = es[i]; i++) {+ if(a.rel.indexOf("style") != -1 && a.title) {+ rs.push(a);+ }+ }+ return rs;+}++function addStyleMenu() {+ var as = styles();+ var i, a, btns = "";+ for(i=0; a = as[i]; i++) {+ btns += "<li><a href='#' onclick=\"setActiveStyleSheet('"+ + a.title + "'); return false;\">"+ + a.title + "</a></li>"+ }+ if (as.length > 1) {+ var h = "<div id='style-menu-holder'>"+ + "<a href='#' onclick='styleMenu(); return false;'>Style ▾</a>"+ + "<ul id='style-menu' class='hide'>" + btns + "</ul>"+ + "</div>";+ addMenuItem(h);+ }+}++function setActiveStyleSheet(title) {+ var as = styles();+ var i, a, found;+ for(i=0; a = as[i]; i++) {+ a.disabled = true;+ // need to do this always, some browsers are edge triggered+ if(a.title == title) {+ found = a;+ }+ }+ if (found) {+ found.disabled = false;+ setCookie("haddock-style", title);+ }+ else {+ as[0].disabled = false;+ clearCookie("haddock-style");+ }+ styleMenu(false);+}++function resetStyle() {+ var s = getCookie("haddock-style");+ if (s) setActiveStyleSheet(s);+}+++function styleMenu(show) {+ var m = document.getElementById('style-menu');+ if (m) toggleShow(m, show);+}+++function pageLoad() {+ addStyleMenu();+ resetStyle();+ restoreCollapsed();+}+
+ doc/API/Cabal/hslogo-16.png view
binary file changed (absent → 1684 bytes)
+ doc/API/Cabal/index.html view
@@ -0,0 +1,7 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cabal-2.0.0.2: A framework for packaging Haskell software</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-2.0.0.2: A framework for packaging Haskell software</p></div><div id="content"><div id="description"><h1>Cabal-2.0.0.2: A framework for packaging Haskell software</h1><div class="doc"><p>The Haskell Common Architecture for Building Applications and+Libraries: a framework defining a common interface for authors to more+easily build their Haskell applications in a portable way.</p><p>The Haskell Cabal is part of a larger infrastructure for distributing,+organizing, and cataloging Haskell libraries and tools.</p></div></div><div id="module-list"><p class="caption">Signatures</p></div><div id="module-list"><p class="caption">Modules</p><ul><li><span id="control.n.1" class="module collapser" onclick="toggleSection('n.1')">Distribution</span><ul id="section.n.1" class="show"><li><span class="module"><span id="control.n.1.1" class="collapser" onclick="toggleSection('n.1.1')"> </span><a href="Distribution-Backpack.html">Distribution.Backpack</a></span><ul id="section.n.1.1" class="show"><li><span class="module"><a href="Distribution-Backpack-ComponentsGraph.html">Distribution.Backpack.ComponentsGraph</a></span></li><li><span class="module"><a href="Distribution-Backpack-Configure.html">Distribution.Backpack.Configure</a></span></li><li><span class="module"><a href="Distribution-Backpack-ConfiguredComponent.html">Distribution.Backpack.ConfiguredComponent</a></span></li><li><span class="module"><a href="Distribution-Backpack-DescribeUnitId.html">Distribution.Backpack.DescribeUnitId</a></span></li><li><span class="module"><a href="Distribution-Backpack-FullUnitId.html">Distribution.Backpack.FullUnitId</a></span></li><li><span class="module"><a href="Distribution-Backpack-LinkedComponent.html">Distribution.Backpack.LinkedComponent</a></span></li><li><span class="module"><a href="Distribution-Backpack-ModSubst.html">Distribution.Backpack.ModSubst</a></span></li><li><span class="module"><a href="Distribution-Backpack-ModuleShape.html">Distribution.Backpack.ModuleShape</a></span></li></ul></li><li><span id="control.n.1.2" class="module collapser" onclick="toggleSection('n.1.2')">Compat</span><ul id="section.n.1.2" class="show"><li><span class="module"><a href="Distribution-Compat-Binary.html">Distribution.Compat.Binary</a></span></li><li><span class="module"><a href="Distribution-Compat-CreatePipe.html">Distribution.Compat.CreatePipe</a></span></li><li><span class="module"><a href="Distribution-Compat-DList.html">Distribution.Compat.DList</a></span></li><li><span class="module"><a href="Distribution-Compat-Exception.html">Distribution.Compat.Exception</a></span></li><li><span class="module"><a href="Distribution-Compat-Graph.html">Distribution.Compat.Graph</a></span></li><li><span id="control.n.1.2.6" class="module collapser" onclick="toggleSection('n.1.2.6')">Map</span><ul id="section.n.1.2.6" class="show"><li><span class="module"><a href="Distribution-Compat-Map-Strict.html">Distribution.Compat.Map.Strict</a></span></li></ul></li><li><span id="control.n.1.2.7" class="module collapser" onclick="toggleSection('n.1.2.7')">Prelude</span><ul id="section.n.1.2.7" class="show"><li><span class="module"><a href="Distribution-Compat-Prelude-Internal.html">Distribution.Compat.Prelude.Internal</a></span></li></ul></li><li><span class="module"><a href="Distribution-Compat-ReadP.html">Distribution.Compat.ReadP</a></span></li><li><span class="module"><a href="Distribution-Compat-Semigroup.html">Distribution.Compat.Semigroup</a></span></li><li><span class="module"><a href="Distribution-Compat-Stack.html">Distribution.Compat.Stack</a></span></li><li><span class="module"><a href="Distribution-Compat-Time.html">Distribution.Compat.Time</a></span></li></ul></li><li><span class="module"><a href="Distribution-Compiler.html">Distribution.Compiler</a></span></li><li><span class="module"><a href="Distribution-InstalledPackageInfo.html">Distribution.InstalledPackageInfo</a></span></li><li><span class="module"><a href="Distribution-License.html">Distribution.License</a></span> The License data type.</li><li><span class="module"><a href="Distribution-Make.html">Distribution.Make</a></span></li><li><span class="module"><a href="Distribution-ModuleName.html">Distribution.ModuleName</a></span></li><li><span class="module"><a href="Distribution-Package.html">Distribution.Package</a></span></li><li><span class="module"><span id="control.n.1.9" class="collapser" onclick="toggleSection('n.1.9')"> </span><a href="Distribution-PackageDescription.html">Distribution.PackageDescription</a></span><ul id="section.n.1.9" class="show"><li><span class="module"><a href="Distribution-PackageDescription-Check.html">Distribution.PackageDescription.Check</a></span></li><li><span class="module"><a href="Distribution-PackageDescription-Configuration.html">Distribution.PackageDescription.Configuration</a></span></li><li><span class="module"><a href="Distribution-PackageDescription-Parse.html">Distribution.PackageDescription.Parse</a></span></li><li><span class="module"><a href="Distribution-PackageDescription-PrettyPrint.html">Distribution.PackageDescription.PrettyPrint</a></span></li><li><span class="module"><a href="Distribution-PackageDescription-Utils.html">Distribution.PackageDescription.Utils</a></span></li></ul></li><li><span class="module"><a href="Distribution-ReadE.html">Distribution.ReadE</a></span></li><li><span class="module"><span id="control.n.1.11" class="collapser" onclick="toggleSection('n.1.11')"> </span><a href="Distribution-Simple.html">Distribution.Simple</a></span><ul id="section.n.1.11" class="show"><li><span class="module"><a href="Distribution-Simple-Bench.html">Distribution.Simple.Bench</a></span></li><li><span class="module"><span id="control.n.1.11.2" class="collapser" onclick="toggleSection('n.1.11.2')"> </span><a href="Distribution-Simple-Build.html">Distribution.Simple.Build</a></span><ul id="section.n.1.11.2" class="show"><li><span class="module"><a href="Distribution-Simple-Build-Macros.html">Distribution.Simple.Build.Macros</a></span></li><li><span class="module"><a href="Distribution-Simple-Build-PathsModule.html">Distribution.Simple.Build.PathsModule</a></span></li></ul></li><li><span class="module"><a href="Distribution-Simple-BuildPaths.html">Distribution.Simple.BuildPaths</a></span></li><li><span class="module"><a href="Distribution-Simple-BuildTarget.html">Distribution.Simple.BuildTarget</a></span></li><li><span class="module"><a href="Distribution-Simple-BuildToolDepends.html">Distribution.Simple.BuildToolDepends</a></span></li><li><span class="module"><a href="Distribution-Simple-CCompiler.html">Distribution.Simple.CCompiler</a></span></li><li><span class="module"><a href="Distribution-Simple-Command.html">Distribution.Simple.Command</a></span></li><li><span class="module"><a href="Distribution-Simple-Compiler.html">Distribution.Simple.Compiler</a></span></li><li><span class="module"><a href="Distribution-Simple-Configure.html">Distribution.Simple.Configure</a></span></li><li><span class="module"><a href="Distribution-Simple-Doctest.html">Distribution.Simple.Doctest</a></span></li><li><span class="module"><a href="Distribution-Simple-GHC.html">Distribution.Simple.GHC</a></span></li><li><span class="module"><a href="Distribution-Simple-GHCJS.html">Distribution.Simple.GHCJS</a></span></li><li><span class="module"><a href="Distribution-Simple-Haddock.html">Distribution.Simple.Haddock</a></span></li><li><span class="module"><a href="Distribution-Simple-HaskellSuite.html">Distribution.Simple.HaskellSuite</a></span></li><li><span class="module"><a href="Distribution-Simple-Hpc.html">Distribution.Simple.Hpc</a></span></li><li><span class="module"><a href="Distribution-Simple-Install.html">Distribution.Simple.Install</a></span></li><li><span class="module"><a href="Distribution-Simple-InstallDirs.html">Distribution.Simple.InstallDirs</a></span></li><li><span class="module"><a href="Distribution-Simple-JHC.html">Distribution.Simple.JHC</a></span></li><li><span class="module"><a href="Distribution-Simple-LHC.html">Distribution.Simple.LHC</a></span></li><li><span class="module"><a href="Distribution-Simple-LocalBuildInfo.html">Distribution.Simple.LocalBuildInfo</a></span></li><li><span class="module"><a href="Distribution-Simple-PackageIndex.html">Distribution.Simple.PackageIndex</a></span></li><li><span class="module"><span id="control.n.1.11.22" class="collapser" onclick="toggleSection('n.1.11.22')"> </span><a href="Distribution-Simple-PreProcess.html">Distribution.Simple.PreProcess</a></span><ul id="section.n.1.11.22" class="show"><li><span class="module"><a href="Distribution-Simple-PreProcess-Unlit.html">Distribution.Simple.PreProcess.Unlit</a></span></li></ul></li><li><span class="module"><span id="control.n.1.11.23" class="collapser" onclick="toggleSection('n.1.11.23')"> </span><a href="Distribution-Simple-Program.html">Distribution.Simple.Program</a></span><ul id="section.n.1.11.23" class="show"><li><span class="module"><a href="Distribution-Simple-Program-Ar.html">Distribution.Simple.Program.Ar</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Builtin.html">Distribution.Simple.Program.Builtin</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Db.html">Distribution.Simple.Program.Db</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Find.html">Distribution.Simple.Program.Find</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-GHC.html">Distribution.Simple.Program.GHC</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-HcPkg.html">Distribution.Simple.Program.HcPkg</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Hpc.html">Distribution.Simple.Program.Hpc</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Internal.html">Distribution.Simple.Program.Internal</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Ld.html">Distribution.Simple.Program.Ld</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Run.html">Distribution.Simple.Program.Run</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Script.html">Distribution.Simple.Program.Script</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Strip.html">Distribution.Simple.Program.Strip</a></span></li><li><span class="module"><a href="Distribution-Simple-Program-Types.html">Distribution.Simple.Program.Types</a></span></li></ul></li><li><span class="module"><a href="Distribution-Simple-Register.html">Distribution.Simple.Register</a></span></li><li><span class="module"><a href="Distribution-Simple-Setup.html">Distribution.Simple.Setup</a></span></li><li><span class="module"><a href="Distribution-Simple-SrcDist.html">Distribution.Simple.SrcDist</a></span></li><li><span class="module"><span id="control.n.1.11.27" class="collapser" onclick="toggleSection('n.1.11.27')"> </span><a href="Distribution-Simple-Test.html">Distribution.Simple.Test</a></span><ul id="section.n.1.11.27" class="show"><li><span class="module"><a href="Distribution-Simple-Test-ExeV10.html">Distribution.Simple.Test.ExeV10</a></span></li><li><span class="module"><a href="Distribution-Simple-Test-LibV09.html">Distribution.Simple.Test.LibV09</a></span></li><li><span class="module"><a href="Distribution-Simple-Test-Log.html">Distribution.Simple.Test.Log</a></span></li></ul></li><li><span class="module"><a href="Distribution-Simple-UHC.html">Distribution.Simple.UHC</a></span></li><li><span class="module"><a href="Distribution-Simple-UserHooks.html">Distribution.Simple.UserHooks</a></span></li><li><span class="module"><a href="Distribution-Simple-Utils.html">Distribution.Simple.Utils</a></span></li></ul></li><li><span class="module"><a href="Distribution-System.html">Distribution.System</a></span></li><li><span class="module"><a href="Distribution-TestSuite.html">Distribution.TestSuite</a></span></li><li><span class="module"><a href="Distribution-Text.html">Distribution.Text</a></span></li><li><span id="control.n.1.15" class="module collapser" onclick="toggleSection('n.1.15')">Types</span><ul id="section.n.1.15" class="show"><li><span class="module"><a href="Distribution-Types-AbiHash.html">Distribution.Types.AbiHash</a></span></li><li><span class="module"><a href="Distribution-Types-AnnotatedId.html">Distribution.Types.AnnotatedId</a></span></li><li><span class="module"><a href="Distribution-Types-Benchmark.html">Distribution.Types.Benchmark</a></span></li><li><span class="module"><a href="Distribution-Types-BenchmarkInterface.html">Distribution.Types.BenchmarkInterface</a></span></li><li><span class="module"><a href="Distribution-Types-BenchmarkType.html">Distribution.Types.BenchmarkType</a></span></li><li><span class="module"><a href="Distribution-Types-BuildInfo.html">Distribution.Types.BuildInfo</a></span></li><li><span class="module"><a href="Distribution-Types-BuildType.html">Distribution.Types.BuildType</a></span></li><li><span class="module"><a href="Distribution-Types-Component.html">Distribution.Types.Component</a></span></li><li><span class="module"><a href="Distribution-Types-ComponentId.html">Distribution.Types.ComponentId</a></span></li><li><span class="module"><a href="Distribution-Types-ComponentInclude.html">Distribution.Types.ComponentInclude</a></span></li><li><span class="module"><a href="Distribution-Types-ComponentLocalBuildInfo.html">Distribution.Types.ComponentLocalBuildInfo</a></span></li><li><span class="module"><a href="Distribution-Types-ComponentName.html">Distribution.Types.ComponentName</a></span></li><li><span class="module"><a href="Distribution-Types-ComponentRequestedSpec.html">Distribution.Types.ComponentRequestedSpec</a></span></li><li><span class="module"><a href="Distribution-Types-CondTree.html">Distribution.Types.CondTree</a></span></li><li><span class="module"><a href="Distribution-Types-Condition.html">Distribution.Types.Condition</a></span></li><li><span class="module"><a href="Distribution-Types-Dependency.html">Distribution.Types.Dependency</a></span></li><li><span class="module"><a href="Distribution-Types-DependencyMap.html">Distribution.Types.DependencyMap</a></span></li><li><span class="module"><a href="Distribution-Types-ExeDependency.html">Distribution.Types.ExeDependency</a></span></li><li><span class="module"><a href="Distribution-Types-Executable.html">Distribution.Types.Executable</a></span></li><li><span class="module"><a href="Distribution-Types-ExecutableScope.html">Distribution.Types.ExecutableScope</a></span></li><li><span class="module"><a href="Distribution-Types-ForeignLib.html">Distribution.Types.ForeignLib</a></span></li><li><span class="module"><a href="Distribution-Types-ForeignLibOption.html">Distribution.Types.ForeignLibOption</a></span></li><li><span class="module"><a href="Distribution-Types-ForeignLibType.html">Distribution.Types.ForeignLibType</a></span></li><li><span class="module"><a href="Distribution-Types-GenericPackageDescription.html">Distribution.Types.GenericPackageDescription</a></span></li><li><span class="module"><a href="Distribution-Types-HookedBuildInfo.html">Distribution.Types.HookedBuildInfo</a></span></li><li><span class="module"><a href="Distribution-Types-IncludeRenaming.html">Distribution.Types.IncludeRenaming</a></span></li><li><span class="module"><a href="Distribution-Types-LegacyExeDependency.html">Distribution.Types.LegacyExeDependency</a></span></li><li><span class="module"><a href="Distribution-Types-Library.html">Distribution.Types.Library</a></span></li><li><span class="module"><a href="Distribution-Types-LocalBuildInfo.html">Distribution.Types.LocalBuildInfo</a></span></li><li><span class="module"><a href="Distribution-Types-Mixin.html">Distribution.Types.Mixin</a></span></li><li><span class="module"><a href="Distribution-Types-Module.html">Distribution.Types.Module</a></span></li><li><span class="module"><a href="Distribution-Types-ModuleReexport.html">Distribution.Types.ModuleReexport</a></span></li><li><span class="module"><a href="Distribution-Types-ModuleRenaming.html">Distribution.Types.ModuleRenaming</a></span></li><li><span class="module"><a href="Distribution-Types-MungedPackageId.html">Distribution.Types.MungedPackageId</a></span></li><li><span class="module"><a href="Distribution-Types-MungedPackageName.html">Distribution.Types.MungedPackageName</a></span></li><li><span class="module"><a href="Distribution-Types-PackageDescription.html">Distribution.Types.PackageDescription</a></span></li><li><span class="module"><a href="Distribution-Types-PackageId.html">Distribution.Types.PackageId</a></span></li><li><span class="module"><a href="Distribution-Types-PackageName.html">Distribution.Types.PackageName</a></span></li><li><span class="module"><a href="Distribution-Types-PkgconfigDependency.html">Distribution.Types.PkgconfigDependency</a></span></li><li><span class="module"><a href="Distribution-Types-PkgconfigName.html">Distribution.Types.PkgconfigName</a></span></li><li><span class="module"><a href="Distribution-Types-SetupBuildInfo.html">Distribution.Types.SetupBuildInfo</a></span></li><li><span class="module"><a href="Distribution-Types-SourceRepo.html">Distribution.Types.SourceRepo</a></span></li><li><span class="module"><a href="Distribution-Types-TargetInfo.html">Distribution.Types.TargetInfo</a></span></li><li><span class="module"><a href="Distribution-Types-TestSuite.html">Distribution.Types.TestSuite</a></span></li><li><span class="module"><a href="Distribution-Types-TestSuiteInterface.html">Distribution.Types.TestSuiteInterface</a></span></li><li><span class="module"><a href="Distribution-Types-TestType.html">Distribution.Types.TestType</a></span></li><li><span class="module"><a href="Distribution-Types-UnitId.html">Distribution.Types.UnitId</a></span></li><li><span class="module"><a href="Distribution-Types-UnqualComponentName.html">Distribution.Types.UnqualComponentName</a></span></li></ul></li><li><span id="control.n.1.16" class="module collapser" onclick="toggleSection('n.1.16')">Utils</span><ul id="section.n.1.16" class="show"><li><span class="module"><a href="Distribution-Utils-Generic.html">Distribution.Utils.Generic</a></span></li><li><span class="module"><a href="Distribution-Utils-LogProgress.html">Distribution.Utils.LogProgress</a></span></li><li><span class="module"><a href="Distribution-Utils-MapAccum.html">Distribution.Utils.MapAccum</a></span></li><li><span class="module"><a href="Distribution-Utils-NubList.html">Distribution.Utils.NubList</a></span></li><li><span class="module"><a href="Distribution-Utils-Progress.html">Distribution.Utils.Progress</a></span></li><li><span class="module"><a href="Distribution-Utils-ShortText.html">Distribution.Utils.ShortText</a></span></li></ul></li><li><span class="module"><a href="Distribution-Verbosity.html">Distribution.Verbosity</a></span></li><li><span class="module"><a href="Distribution-Version.html">Distribution.Version</a></span></li></ul></li><li><span id="control.n.2" class="module collapser" onclick="toggleSection('n.2')">Language</span><ul id="section.n.2" class="show"><li><span id="control.n.2.1" class="module collapser" onclick="toggleSection('n.2.1')">Haskell</span><ul id="section.n.2.1" class="show"><li><span class="module"><a href="Language-Haskell-Extension.html">Language.Haskell.Extension</a></span></li></ul></li></ul></li></ul></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.18.1</p></div></body></html>
+ doc/API/Cabal/minus.gif view
binary file changed (absent → 56 bytes)
+ doc/API/Cabal/ocean.css view
@@ -0,0 +1,618 @@+/* @group Fundamentals */++* { margin: 0; padding: 0 }++/* Is this portable? */+html {+ background-color: white;+ width: 100%;+ height: 100%;+}++body {+ background: white;+ color: black;+ text-align: left;+ min-height: 100%;+ position: relative;+}++p {+ margin: 0.8em 0;+}++ul, ol {+ margin: 0.8em 0 0.8em 2em;+}++dl {+ margin: 0.8em 0;+}++dt {+ font-weight: bold;+}+dd {+ margin-left: 2em;+}++a { text-decoration: none; }+a[href]:link { color: rgb(196,69,29); }+a[href]:visited { color: rgb(171,105,84); }+a[href]:hover { text-decoration:underline; }++a[href].def:link, a[href].def:visited { color: black; }+a[href].def:hover { color: rgb(78, 98, 114); }++/* @end */++/* @group Fonts & Sizes */++/* Basic technique & IE workarounds from YUI 3+ For reasons, see:+ http://yui.yahooapis.com/3.1.1/build/cssfonts/fonts.css+ */++body {+ font:13px/1.4 sans-serif;+ *font-size:small; /* for IE */+ *font:x-small; /* for IE in quirks mode */+}++h1 { font-size: 146.5%; /* 19pt */ }+h2 { font-size: 131%; /* 17pt */ }+h3 { font-size: 116%; /* 15pt */ }+h4 { font-size: 100%; /* 13pt */ }+h5 { font-size: 100%; /* 13pt */ }++select, input, button, textarea {+ font:99% sans-serif;+}++table {+ font-size:inherit;+ font:100%;+}++pre, code, kbd, samp, tt, .src {+ font-family:monospace;+ *font-size:108%;+ line-height: 124%;+}++.links, .link {+ font-size: 85%; /* 11pt */+}++#module-header .caption {+ font-size: 182%; /* 24pt */+}++#module-header .caption sup {+ font-size: 70%;+ font-weight: normal;+}++.info {+ font-size: 85%; /* 11pt */+}++#table-of-contents, #synopsis {+ /* font-size: 85%; /* 11pt */+}+++/* @end */++/* @group Common */++.caption, h1, h2, h3, h4, h5, h6 {+ font-weight: bold;+ color: rgb(78,98,114);+ margin: 0.8em 0 0.4em;+}++* + h1, * + h2, * + h3, * + h4, * + h5, * + h6 {+ margin-top: 2em;+}++h1 + h2, h2 + h3, h3 + h4, h4 + h5, h5 + h6 {+ margin-top: inherit;+}++ul.links {+ list-style: none;+ text-align: left;+ float: right;+ display: inline-table;+ margin: 0 0 0 1em;+}++ul.links li {+ display: inline;+ border-left: 1px solid #d5d5d5;+ white-space: nowrap;+ padding: 0;+}++ul.links li a {+ padding: 0.2em 0.5em;+}++.hide { display: none; }+.show { display: inherit; }+.clear { clear: both; }++.collapser {+ background-image: url(minus.gif);+ background-repeat: no-repeat;+}+.expander {+ background-image: url(plus.gif);+ background-repeat: no-repeat;+}+.collapser, .expander {+ padding-left: 14px;+ margin-left: -14px;+ cursor: pointer;+}+p.caption.collapser,+p.caption.expander {+ background-position: 0 0.4em;+}++.instance.collapser, .instance.expander {+ margin-left: 0px;+ background-position: left center;+ min-width: 9px;+ min-height: 9px;+}+++pre {+ padding: 0.25em;+ margin: 0.8em 0;+ background: rgb(229,237,244);+ overflow: auto;+ border-bottom: 0.25em solid white;+ /* white border adds some space below the box to compensate+ for visual extra space that paragraphs have between baseline+ and the bounding box */+}++.src {+ background: #f0f0f0;+ padding: 0.2em 0.5em;+}++.keyword { font-weight: normal; }+.def { font-weight: bold; }++@media print {+ #footer { display: none; }+}++/* @end */++/* @group Page Structure */++#content {+ margin: 0 auto;+ padding: 0 2em 6em;+}++#package-header {+ background: rgb(41,56,69);+ border-top: 5px solid rgb(78,98,114);+ color: #ddd;+ padding: 0.2em;+ position: relative;+ text-align: left;+}++#package-header .caption {+ background: url(hslogo-16.png) no-repeat 0em;+ color: white;+ margin: 0 2em;+ font-weight: normal;+ font-style: normal;+ padding-left: 2em;+}++#package-header a:link, #package-header a:visited { color: white; }+#package-header a:hover { background: rgb(78,98,114); }++#module-header .caption {+ color: rgb(78,98,114);+ font-weight: bold;+ border-bottom: 1px solid #ddd;+}++table.info {+ float: right;+ padding: 0.5em 1em;+ border: 1px solid #ddd;+ color: rgb(78,98,114);+ background-color: #fff;+ max-width: 40%;+ border-spacing: 0;+ position: relative;+ top: -0.5em;+ margin: 0 0 0 2em;+}++.info th {+ padding: 0 1em 0 0;+}++div#style-menu-holder {+ position: relative;+ z-index: 2;+ display: inline;+}++#style-menu {+ position: absolute;+ z-index: 1;+ overflow: visible;+ background: #374c5e;+ margin: 0;+ text-align: center;+ right: 0;+ padding: 0;+ top: 1.25em;+}++#style-menu li {+ display: list-item;+ border-style: none;+ margin: 0;+ padding: 0;+ color: #000;+ list-style-type: none;+}++#style-menu li + li {+ border-top: 1px solid #919191;+}++#style-menu a {+ width: 6em;+ padding: 3px;+ display: block;+}++#footer {+ background: #ddd;+ border-top: 1px solid #aaa;+ padding: 0.5em 0;+ color: #666;+ text-align: center;+ position: absolute;+ bottom: 0;+ width: 100%;+ height: 3em;+}++/* @end */++/* @group Front Matter */++#table-of-contents {+ float: right;+ clear: right;+ background: #faf9dc;+ border: 1px solid #d8d7ad;+ padding: 0.5em 1em;+ max-width: 20em;+ margin: 0.5em 0 1em 1em;+}++#table-of-contents .caption {+ text-align: center;+ margin: 0;+}++#table-of-contents ul {+ list-style: none;+ margin: 0;+}++#table-of-contents ul ul {+ margin-left: 2em;+}++#description .caption {+ display: none;+}++#synopsis {+ display: block;+ position: fixed;+ right: 0;+ height: 80%;+ top: 10%;+ padding: 0;+ max-width: 75%;+ /* Ensure that synopsis covers everything (including MathJAX markup) */+ z-index: 1;+}++#synopsis .caption {+ float: left;+ width: 29px;+ color: rgba(255,255,255,0);+ height: 110px;+ margin: 0;+ font-size: 1px;+ padding: 0;+}++#synopsis p.caption.collapser {+ background: url(synopsis.png) no-repeat -64px -8px;+}++#synopsis p.caption.expander {+ background: url(synopsis.png) no-repeat 0px -8px;+}++#synopsis ul {+ height: 100%;+ overflow: auto;+ padding: 0.5em;+ margin: 0;+}++#synopsis ul ul {+ overflow: hidden;+}++#synopsis ul,+#synopsis ul li.src {+ background-color: #faf9dc;+ white-space: nowrap;+ list-style: none;+ margin-left: 0;+}++/* @end */++/* @group Main Content */++#interface div.top { margin: 2em 0; }+#interface h1 + div.top,+#interface h2 + div.top,+#interface h3 + div.top,+#interface h4 + div.top,+#interface h5 + div.top {+ margin-top: 1em;+}+#interface .src .selflink,+#interface .src .link {+ float: right;+ color: #919191;+ background: #f0f0f0;+ padding: 0 0.5em 0.2em;+ margin: 0 -0.5em 0 0;+ -moz-user-select: none;+}+#interface .src .selflink {+ border-left: 1px solid #919191;+ margin: 0 -0.5em 0 0.5em;+}++#interface span.fixity {+ color: #919191;+ border-left: 1px solid #919191;+ padding: 0.2em 0.5em 0.2em 0.5em;+ margin: 0 -1em 0 1em;+}++#interface span.rightedge {+ border-left: 1px solid #919191;+ padding: 0.2em 0 0.2em 0;+ margin: 0 0 0 1em;+}++#interface table { border-spacing: 2px; }+#interface td {+ vertical-align: top;+ padding-left: 0.5em;+}+#interface td.src {+ white-space: nowrap;+}+#interface td.doc p {+ margin: 0;+}+#interface td.doc p + p {+ margin-top: 0.8em;+}++.clearfix:after {+ clear: both;+ content: " ";+ display: block;+ height: 0;+ visibility: hidden;+}++.subs ul {+ list-style: none;+ display: table;+ margin: 0;+}++.subs ul li {+ display: table-row;+}++.subs ul li dfn {+ display: table-cell;+ font-style: normal;+ font-weight: bold;+ margin: 1px 0;+ white-space: nowrap;+}++.subs ul li > .doc {+ display: table-cell;+ padding-left: 0.5em;+ margin-bottom: 0.5em;+}++.subs ul li > .doc p {+ margin: 0;+}++/* Render short-style data instances */+.inst ul {+ height: 100%;+ padding: 0.5em;+ margin: 0;+}++.inst, .inst li {+ list-style: none;+ margin-left: 1em;+}++/* Workaround for bug in Firefox (issue #384) */+.inst-left {+ float: left;+}++.top p.src {+ border-top: 1px solid #ccc;+}++.subs, .doc {+ /* use this selector for one level of indent */+ padding-left: 2em;+}++.warning {+ color: red;+}++.arguments {+ margin-top: -0.4em;+}+.arguments .caption {+ display: none;+}++.fields { padding-left: 1em; }++.fields .caption { display: none; }++.fields p { margin: 0 0; }++/* this seems bulky to me+.methods, .constructors {+ background: #f8f8f8;+ border: 1px solid #eee;+}+*/++/* @end */++/* @group Auxillary Pages */+++.extension-list {+ list-style-type: none;+ margin-left: 0;+}++#mini {+ margin: 0 auto;+ padding: 0 1em 1em;+}++#mini > * {+ font-size: 93%; /* 12pt */+}++#mini #module-list .caption,+#mini #module-header .caption {+ font-size: 125%; /* 15pt */+}++#mini #interface h1,+#mini #interface h2,+#mini #interface h3,+#mini #interface h4 {+ font-size: 109%; /* 13pt */+ margin: 1em 0 0;+}++#mini #interface .top,+#mini #interface .src {+ margin: 0;+}++#mini #module-list ul {+ list-style: none;+ margin: 0;+}++#alphabet ul {+ list-style: none;+ padding: 0;+ margin: 0.5em 0 0;+ text-align: center;+}++#alphabet li {+ display: inline;+ margin: 0 0.25em;+}++#alphabet a {+ font-weight: bold;+}++#index .caption,+#module-list .caption { font-size: 131%; /* 17pt */ }++#index table {+ margin-left: 2em;+}++#index .src {+ font-weight: bold;+}+#index .alt {+ font-size: 77%; /* 10pt */+ font-style: italic;+ padding-left: 2em;+}++#index td + td {+ padding-left: 1em;+}++#module-list ul {+ list-style: none;+ margin: 0 0 0 2em;+}++#module-list li {+ clear: right;+}++#module-list span.collapser,+#module-list span.expander {+ background-position: 0 0.3em;+}++#module-list .package {+ float: right;+}++:target {+ background-color: #ffff00;+}++/* @end */
+ doc/API/Cabal/plus.gif view
binary file changed (absent → 59 bytes)
+ doc/API/Cabal/synopsis.png view
binary file changed (absent → 11327 bytes)
− doc/Cabal.css
@@ -1,49 +0,0 @@-body {- max-width: 18cm;-}--div {- font-family: sans-serif;- color: black;- background: white-}--h1, h2, h3, h4, h5, h6, p.title { color: #005A9C }--h1 { font: 170% sans-serif }-h2 { font: 140% sans-serif }-h3 { font: 120% sans-serif }-h4 { font: bold 100% sans-serif }-h5 { font: italic 100% sans-serif }-h6 { font: small-caps 100% sans-serif }--pre {- font-family: monospace;- border-width: 1px;- border-style: solid;- padding: 0.3em-}--pre.screen { color: #006400 }-pre.programlisting { color: maroon }--div.example {- margin: 1ex 0em;- border: solid #412e25 1px;- padding: 0ex 0.4em-}--div.example, div.example-contents {- background-color: #fffcf5-}--a:link { color: #0000C8 }-a:hover { background: #FFFFA8 }-a:active { color: #D00000 }-a:visited { color: #680098 }--h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link,-h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {- color: #005A9C;- text-decoration: none-}
+ doc/README.md view
@@ -0,0 +1,122 @@+Cabal documentation+===================++### Where to read it+These docs will be built and deployed whenever a release is made,+and can be read at: https://www.haskell.org/cabal/users-guide/++In addition, the docs are taken directly from git and hosted at:+http://cabal.readthedocs.io/+++### How to build it++* `> pip install sphinx`+* `> sphinx-build doc html`+* if you are missing dependencies, install them with pip as needed+¯\\\_(ツ)_/¯+* Python on Mac OS X dislikes `LC_CTYPE=UTF-8`, unset the env var in+terminal preferences and instead set `LC_ALL=en_US.UTF-8` or something++### Caveats, for newcomers to RST from MD+RST does not allow you to skip section levels when nesting, like MD+does.+So, you cannot have++```+ Section heading+ ===============++ Some unimportant block+ """"""""""""""""""""""+```++ instead you need to observe order and either promote your block:++```+ Section heading+ ===============++ Some not quite so important block+ ---------------------------------+```++ or introduce more subsections:++```+ Section heading+ ===============++ Subsection+ ----------++ Subsubsection+ ^^^^^^^^^^^^^++ Some unimportant block+ """"""""""""""""""""""+```++* RST simply parses a file and interpretes headings to indicate the+ start of a new block,+ * at the level implied by the header's *adornment*, if the adornment was+ previously encountered in this file,+ * at one level deeper than the previous block, otherwise.++ This means that a lot of confusion can arise when people use+ different adornments to signify the same depth in different files.++ To eliminate this confusion, please stick to the adornment order+ recommended by the Sphinx team:++```+ ####+ Part+ ####++ *******+ Chapter+ *******++ Section+ =======++ Subsection+ ----------++ Subsubsection+ ^^^^^^^^^^^^^++ Paragraph+ """""""""+```++* The Read-The-Docs stylesheet does not support multiple top-level+ sections in a file that is linked to from the top-most TOC (in+ `index.rst`). It will mess up the sidebar.+ E.g. you cannot link to a `cabal.rst` with sections "Introduction",+ "Using Cabal", "Epilogue" from `index.rst`.++ One solution is to have a single section, e.g. "All About Cabal", in+ `cabal.rst` and make the other blocks subsections of that.++ Another solution is to link via an indirection, e.g. create+ `all-about-cabal.rst`, where you include `cabal.rst` using the+ `.. toctree::` command and then link to `all-about-cabal.rst` from+ `index.rst`.+ This will effectively "push down" all blocks by one layer and solve+ the problem without having to change `cabal.rst`.+++* We use [`extlinks`](http://www.sphinx-doc.org/en/stable/ext/extlinks.html)+ to shorten links to commonly referred resources (wiki, issue trackers).++ E.g. you can use the more convenient short syntax++ :issue:`123`++ which is expanded into a hyperlink++ `#123 <https://github.com/haskell/cabal/issues/123>`__++ See `conf.py` for list of currently defined link shorteners.
+ doc/bugs-and-stability.rst view
@@ -0,0 +1,6 @@+Reporting Bugs and Stability of Cabal Interfaces+================================================++.. toctree::+ misc+
+ doc/concepts-and-development.rst view
@@ -0,0 +1,7 @@+Package Concepts and Development+================================++.. toctree::+ :maxdepth: 2++ developing-packages
+ doc/conf.py view
@@ -0,0 +1,207 @@+# -*- coding: utf-8 -*-+#+# GHC Users Guide documentation build configuration file+#+# This file is execfile()d with the current directory set to its+# containing dir.+#+import sys+import os+import sphinx_rtd_theme++# Support for :base-ref:, etc.+sys.path.insert(0, os.path.abspath('.'))+import cabaldomain++version = "2.0"++extensions = ['sphinx.ext.extlinks']++templates_path = ['_templates']+source_suffix = '.rst'+source_encoding = 'utf-8-sig'+master_doc = 'index'++# extlinks -- see http://www.sphinx-doc.org/en/stable/ext/extlinks.html+extlinks = {+ 'issue': ('https://github.com/haskell/cabal/issues/%s', '#'),++ 'ghc-wiki': ('http://ghc.haskell.org/trac/ghc/wiki/%s', ''),+ 'ghc-ticket': ('http://ghc.haskell.org/trac/ghc/ticket/%s', 'GHC #'),++ 'hackage-pkg': ('http://hackage.haskell.org/package/%s', ''),+}++# General information about the project.+project = u'Cabal'+copyright = u'2003-2017, Cabal Team'+# N.B. version comes from ghc_config+release = version # The full version, including alpha/beta/rc tags.++# Syntax highlighting+highlight_language = 'cabal'+#pygments_style = 'tango'++primary_domain = 'cabal'++# List of patterns, relative to source directory, that match files and+# directories to ignore when looking for source files.+exclude_patterns = ['.build', "*.gen.rst"]++# -- Options for HTML output ---------------------------------------------++# on_rtd is whether we are on readthedocs.org, this line of code grabbed from docs.readthedocs.org+on_rtd = os.environ.get('READTHEDOCS', None) == 'True'++if not on_rtd: # only import and set the theme if we're building docs locally+ import sphinx_rtd_theme+ html_theme = 'sphinx_rtd_theme'+ html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]++# The name for this set of Sphinx documents. If None, it defaults to+# "<project> v<release> documentation".+html_title = "Cabal <release> User's Guide"+html_short_title = "Cabal %s User's Guide" % release+html_logo = 'images/Cabal-dark.png'+html_static_path = ['images']+# Convert quotes and dashes to typographically correct entities+html_use_smartypants = True+html_show_copyright = True++# If true, an OpenSearch description file will be output, and all pages will+# contain a <link> tag referring to it. The value of this option must be the+# base URL from which the finished HTML is served.+#html_use_opensearch = ''++# This is the file name suffix for HTML files (e.g. ".xhtml").+#html_file_suffix = None++# Output file base name for HTML help builder.+htmlhelp_basename = 'CabalUsersGuide'+++# -- Options for LaTeX output ---------------------------------------------++latex_elements = {+ 'inputenc': '',+ 'utf8extra': '',+ 'preamble': '''+\usepackage{fontspec}+\usepackage{makeidx}+\setsansfont{DejaVu Sans}+\setromanfont{DejaVu Serif}+\setmonofont{DejaVu Sans Mono}+''',+}++# Grouping the document tree into LaTeX files. List of tuples+# (source start file, target name, title,+# author, documentclass [howto, manual, or own class]).+latex_documents = [+ ('index', 'users_guide.tex', u'GHC Users Guide Documentation',+ u'GHC Team', 'manual'),+]++# The name of an image file (relative to this directory) to place at the top of+# the title page.+latex_logo = 'images/logo.pdf'++# If true, show page references after internal links.+latex_show_pagerefs = True+++# -- Options for manual page output ---------------------------------------++# One entry per manual page. List of tuples+# (source start file, name, description, authors, manual section).+man_pages = [+ ('cabal', 'cabal', 'The Haskell Cabal', 'The Cabal Team', 1)+]++# If true, show URL addresses after external links.+#man_show_urls = False+++# -- Options for Texinfo output -------------------------------------------++# Grouping the document tree into Texinfo files. List of tuples+# (source start file, target name, title, author,+# dir menu entry, description, category)+texinfo_documents = [+ ('index', 'CabalUsersGuide', u'Cabal Users Guide',+ u'Cabal Team', 'CabalUsersGuide', 'The Haskell Cabal.',+ 'Compilers'),+]++from sphinx import addnodes+from docutils import nodes++def parse_ghci_cmd(env, sig, signode):+ name = sig.split(';')[0]+ sig = sig.replace(';', '')+ signode += addnodes.desc_name(name, sig)+ return name++def parse_flag(env, sig, signode):+ import re+ names = []+ for i, flag in enumerate(sig.split(',')):+ flag = flag.strip()+ sep = '='+ parts = flag.split('=')+ if len(parts) == 1:+ sep=' '+ parts = flag.split()+ if len(parts) == 0: continue++ name = parts[0]+ names.append(name)+ sig = sep + ' '.join(parts[1:])+ sig = re.sub(ur'<([-a-zA-Z ]+)>', ur'⟨\1⟩', sig)+ if i > 0:+ signode += addnodes.desc_name(', ', ', ')+ signode += addnodes.desc_name(name, name)+ if len(sig) > 0:+ signode += addnodes.desc_addname(sig, sig)++ return names[0]++def setup(app):+ from sphinx.util.docfields import Field, TypedField++ increase_python_stack()++ # the :ghci-cmd: directive used in ghci.rst+ app.add_object_type('ghci-cmd', 'ghci-cmd',+ parse_node=parse_ghci_cmd,+ objname='GHCi command',+ indextemplate='pair: %s; GHCi command')++ app.add_object_type('ghc-flag', 'ghc-flag',+ objname='GHC command-line option',+ parse_node=parse_flag,+ indextemplate='pair: %s; GHC option',+ doc_field_types=[+ Field('since', label='Introduced in GHC version', names=['since']),+ Field('default', label='Default value', names=['default']),+ Field('static')+ ])++ app.add_object_type('rts-flag', 'rts-flag',+ objname='runtime system command-line option',+ parse_node=parse_flag,+ indextemplate='pair: %s; RTS option',+ doc_field_types=[+ Field('since', label='Introduced in GHC version', names=['since']),+ ])++ cabaldomain.setup(app)++def increase_python_stack():+ # Workaround sphinx-build recursion limit overflow:+ # pickle.dump(doctree, f, pickle.HIGHEST_PROTOCOL)+ # RuntimeError: maximum recursion depth exceeded while pickling an object+ #+ # Default python allows recursion depth of 1000 calls.+ sys.setrecursionlimit(10000)+
+ doc/config-and-install.rst view
@@ -0,0 +1,5 @@+Configuration and Installing Packages+=====================================++.. toctree::+ installing-packages
− doc/developing-packages.markdown
@@ -1,2238 +0,0 @@-% Cabal User Guide: Developing Cabal packages---# Quickstart #---Lets assume we have created a project directory and already have a-Haskell module or two.--Every project needs a name, we'll call this example "proglet".--~~~~~~~~~~~-$ cd proglet/-$ ls-Proglet.hs-~~~~~~~~~~~--It is assumed that (apart from external dependencies) all the files that-make up a package live under a common project root directory. This-simple example has all the project files in one directory, but most-packages will use one or more subdirectories.--To turn this into a Cabal package we need two extra files in the-project's root directory:-- * `proglet.cabal`: containing package metadata and build information.-- * `Setup.hs`: usually containing a few standardized lines of code, but- can be customized if necessary.--We can create both files manually or we can use `cabal init` to create-them for us.--### Using "cabal init" ###--The `cabal init` command is interactive. It asks us a number of-questions starting with the package name and version.--~~~~~~~~~~-$ cabal init-Package name [default "proglet"]?-Package version [default "0.1"]?-...-~~~~~~~~~~--It also asks questions about various other bits of package metadata. For-a package that you never intend to distribute to others, these fields can-be left blank.--One of the important questions is whether the package contains a library-or an executable. Libraries are collections of Haskell modules that can-be re-used by other Haskell libraries and programs, while executables-are standalone programs.--~~~~~~~~~~-What does the package build:- 1) Library- 2) Executable-Your choice?-~~~~~~~~~~--For the moment these are the only choices. For more complex packages-(e.g. a library and multiple executables or test suites) the `.cabal`-file can be edited afterwards.--Finally, `cabal init` creates the initial `proglet.cabal` and `Setup.hs`-files, and depending on your choice of license, a `LICENSE` file as well.--~~~~~~~~~~-Generating LICENSE...-Generating Setup.hs...-Generating proglet.cabal...--You may want to edit the .cabal file and add a Description field.-~~~~~~~~~~--As this stage the `proglet.cabal` is not quite complete and before you-are able to build the package you will need to edit the file and add-some build information about the library or executable.--### Editing the .cabal file ###--Load up the `.cabal` file in a text editor. The first part of the-`.cabal` file has the package metadata and towards the end of the file-you will find the `executable` or `library` section.--You will see that the fields that have yet to be filled in are commented-out. Cabal files use "`--`" Haskell-style comment syntax. (Note that-comments are only allowed on lines on their own. Trailing comments on-other lines are not allowed because they could be confused with program-options.)--If you selected earlier to create a library package then your `.cabal`-file will have a section that looks like this:--~~~~~~~~~~~~~~~~~-library- exposed-modules: Proglet- -- other-modules:- -- build-depends:-~~~~~~~~~~~~~~~~~--Alternatively, if you selected an executable then there will be a-section like:--~~~~~~~~~~~~~~~~~-executable proglet- -- main-is:- -- other-modules:- -- build-depends:-~~~~~~~~~~~~~~~~~--The build information fields listed (but commented out) are just the few-most important and common fields. There are many others that are covered-later in this chapter.--Most of the build information fields are the same between libraries and-executables. The difference is that libraries have a number of "exposed"-modules that make up the public interface of the library, while-executables have a file containing a `Main` module.--The name of a library always matches the name of the package, so it is-not specified in the library section. Executables often follow the name-of the package too, but this is not required and the name is given-explicitly.--### Modules included in the package ###--For a library, `cabal init` looks in the project directory for files-that look like Haskell modules and adds all the modules to the-`exposed-modules` field. For modules that do not form part of your-package's public interface, you can move those modules to the-`other-modules` field. Either way, all modules in the library need to be-listed.--For an executable, `cabal init` does not try to guess which file-contains your program's `Main` module. You will need to fill in the-`main-is` field with the file name of your program's `Main` module-(including `.hs` or `.lhs` extension). Other modules included in the-executable should be listed in the `other-modules` field.--### Modules imported from other packages ###--While your library or executable may include a number of modules, it-almost certainly also imports a number of external modules from the-standard libraries or other pre-packaged libraries. (These other-libraries are of course just Cabal packages that contain a library.)--You have to list all of the library packages that your library or-executable imports modules from. Or to put it another way: you have to-list all the other packages that your package depends on.--For example, suppose the example `Proglet` module imports the module-`Data.Map`. The `Data.Map` module comes from the `containers` package,-so we must list it:--~~~~~~~~~~~~~~~~~-library- exposed-modules: Proglet- other-modules:- build-depends: containers, base == 4.*-~~~~~~~~~~~~~~~~~--In addition, almost every package also depends on the `base` library-package because it exports the standard `Prelude` module plus other-basic modules like `Data.List`.--You will notice that we have listed `base == 4.*`. This gives a-constraint on the version of the base package that our package will work-with. The most common kinds of constraints are:-- * `pkgname >= n`- * `pkgname >= n && < m`- * `pkgname == n.*`--The last is just shorthand, for example `base == 4.*` means exactly the-same thing as `base >= 4 && < 5`.--### Building the package ###--For simple packages that's it! We can now try configuring and building-the package:--~~~~~~~~~~~~~~~~-cabal configure-cabal build-~~~~~~~~~~~~~~~~--Assuming those two steps worked then you can also install the package:--~~~~~~~~~~~~~~~~-cabal install-~~~~~~~~~~~~~~~~--For libraries this makes them available for use in GHCi or to be used by-other packages. For executables it installs the program so that you can-run it (though you may first need to adjust your system's `$PATH`).--### Next steps ###--What we have covered so far should be enough for very simple packages-that you use on your own system.--The next few sections cover more details needed for more complex-packages and details needed for distributing packages to other people.--The previous chapter covers building and installing packages -- your own-packages or ones developed by other people.---# Package concepts #--Before diving into the details of writing packages it helps to-understand a bit about packages in the Haskell world and the particular-approach that Cabal takes.--### The point of packages ###--Packages are a mechanism for organising and distributing code. Packages-are particularly suited for "programming in the large", that is building-big systems by using and re-using code written by different people at-different times.--People organise code into packages based on functionality and-dependencies. Social factors are also important: most packages have a-single author, or a relatively small team of authors.--Packages are also used for distribution: the idea is that a package can-be created in one place and be moved to a different computer and be-usable in that different environment. There are a surprising number of-details that have to be got right for this to work, and a good package-system helps to simply this process and make it reliable.--Packages come in two main flavours: libraries of reusable code, and-complete programs. Libraries present a code interface, an API, while-programs can be run directly. In the Haskell world, library packages-expose a set of Haskell modules as their public interface. Cabal-packages can contain a library or executables or both.--Some programming languages have packages as a builtin language concept.-For example in Java, a package provides a local namespace for types and-other definitions. In the Haskell world, packages are not a part of the-language itself. Haskell programs consist of a number of modules, and-packages just provide a way to partition the modules into sets of-related functionality. Thus the choice of module names in Haskell is-still important, even when using packages.--### Package names and versions ###--All packages have a name, e.g. "HUnit". Package names are assumed to be-unique. Cabal package names can use letters, numbers and hyphens, but-not spaces. The namespace for Cabal packages is flat, not hierarchical.--Packages also have a version, e.g "1.1". This matches the typical way in-which packages are developed. Strictly speaking, each version of a-package is independent, but usually they are very similar. Cabal package-versions follow the conventional numeric style, consisting of a sequence-of digits such as "1.0.1" or "2.0". There are a range of common-conventions for "versioning" packages, that is giving some meaning to-the version number in terms of changes in the package. Section [TODO]-has some tips on package versioning.--The combination of package name and version is called the _package ID_-and is written with a hyphen to separate the name and version, e.g.-"HUnit-1.1".--For Cabal packages, the combination of the package name and version-_uniquely_ identifies each package. Or to put it another way: two-packages with the same name and version are considered to _be_ the same.--Strictly speaking, the package ID only identifies each Cabal _source_-package; the same Cabal source package can be configured and built in-different ways. There is a separate installed package ID that uniquely-identifies each installed package instance. Most of the time however,-users need not be aware of this detail.--### Kinds of package: Cabal vs GHC vs system ###--It can be slightly confusing at first because there are various-different notions of package floating around. Fortunately the details-are not very complicated.--Cabal packages-: Cabal packages are really source packages. That is they contain- Haskell (and sometimes C) source code.-- Cabal packages can be compiled to produce GHC packages. They can- also be translated into operating system packages.--GHC packages-: This is GHC's view on packages. GHC only cares about library- packages, not executables. Library packages have to be registered- with GHC for them to be available in GHCi or to be used when- compiling other programs or packages.-- The low-level tool `ghc-pkg` is used to register GHC packages and to- get information on what packages are currently registered.-- You never need to make GHC packages manually. When you build and- install a Cabal package containing a library then it gets registered- with GHC automatically.-- Haskell implementations other than GHC have essentially the same- concept of registered packages. For the most part, Cabal hides the- slight differences.--Operating system packages-: On operating systems like Linux and Mac OS X, the system has a- specific notion of a package and there are tools for installing and- managing packages.-- The Cabal package format is designed to allow Cabal packages to be- translated, mostly-automatically, into operating system packages.- They are usually translated 1:1, that is a single Cabal package- becomes a single system package.-- It is also possible to make Windows installers from Cabal packages,- though this is typically done for a program together with all of its- library dependencies, rather than packaging each library separately.---### Unit of distribution ###--The Cabal package is the unit of distribution. What this means is that-each Cabal package can be distributed on its own in source or binary-form. Of course there may dependencies between packages, but there is-usually a degree of flexibility in which versions of packages can work-together so distributing them independently makes sense.--It is perhaps easiest to see what being ``the unit of distribution''-means by contrast to an alternative approach. Many projects are made up-of several interdependent packages and during development these might-all be kept under one common directory tree and be built and tested-together. When it comes to distribution however, rather than-distributing them all together in a single tarball, it is required that-they each be distributed independently in their own tarballs.--Cabal's approach is to say that if you can specify a dependency on a-package then that package should be able to be distributed-independently. Or to put it the other way round, if you want to-distribute it as a single unit, then it should be a single package.---### Explicit dependencies and automatic package management ###--Cabal takes the approach that all packages dependencies are specified-explicitly and specified in a declarative way. The point is to enable-automatic package management. This means tools like `cabal` can resolve-dependencies and install a package plus all of its dependencies-automatically. Alternatively, it is possible to mechanically (or mostly-mechanically) translate Cabal packages into system packages and let the-system package manager install dependencies automatically.--It is important to track dependencies accurately so that packages can-reliably be moved from one system to another system and still be able to-build it there. Cabal is therefore relatively strict about specifying-dependencies. For example Cabal's default build system will not even let-code build if it tries to import a module from a package that isn't-listed in the `.cabal` file, even if that package is actually installed.-This helps to ensure that there are no "untracked dependencies" that-could cause the code to fail to build on some other system.--The explicit dependency approach is in contrast to the traditional-"./configure" approach where instead of specifying dependencies-declaratively, the `./configure` script checks if the dependencies are-present on the system. Some manual work is required to transform a-`./configure` based package into a Linux distribution package (or-similar). This conversion work is usually done by people other than the-package author(s). The practical effect of this is that only the most-popular packages will benefit from automatic package management. Instead,-Cabal forces the original author to specify the dependencies but the-advantage is that every package can benefit from automatic package-management.--The "./configure" approach tends to encourage packages that adapt-themselves to the environment in which they are built, for example by-disabling optional features so that they can continue to work when a-particular dependency is not available. This approach makes sense in a-world where installing additional dependencies is a tiresome manual-process and so minimising dependencies is important. The automatic-package management view is that packages should just declare what they-need and the package manager will take responsibility for ensuring that-all the dependencies are installed.--Sometimes of course optional features and optional dependencies do make-sense. Cabal packages can have optional features and varying-dependencies. These conditional dependencies are still specified in a-declarative way however and remain compatible with automatic package-management. The need to remain compatible with automatic package-management means that Cabal's conditional dependencies system is a bit-less flexible than with the "./configure" approach.--### Portability ###--One of the purposes of Cabal is to make it easier to build packages on-different platforms (operating systems and CPU architectures), with-different compiler versions and indeed even with different Haskell-implementations. (Yes, there are Haskell implementations other than-GHC!)--Cabal provides abstractions of features present in different Haskell-implementations and wherever possible it is best to take advantage of-these to increase portability. Where necessary however it is possible to-use specific features of specific implementations.--For example a package author can list in the package's `.cabal` what-language extensions the code uses. This allows Cabal to figure out if-the language extension is supported by the Haskell implementation that-the user picks. Additionally, certain language extensions such as-Template Haskell require special handling from the build system and by-listing the extension it provides the build system with enough-information to do the right thing.--Another similar example is linking with foreign libraries. Rather than-specifying GHC flags directly, the package author can list the libraries-that are needed and the build system will take care of using the right-flags for the compiler. Additionally this makes it easier for tools to-discover what system C libraries a package needs, which is useful for-tracking dependencies on system libraries (e.g. when translating into-Linux distribution packages).--In fact both of these examples fall into the category of explicitly-specifying dependencies. Not all dependencies are other Cabal packages.-Foreign libraries are clearly another kind of dependency. It's also-possible to think of language extensions as dependencies: the package-depends on a Haskell implementation that supports all those extensions.--Where compiler-specific options are needed however, there is an "escape-hatch" available. The developer can specify implementation-specific-options and more generally there is a configuration mechanism to-customise many aspects of how a package is built depending on the-Haskell implementation, the operating system, computer architecture and-user-specified configuration flags.---# Developing packages #--The Cabal package is the unit of distribution. When installed, its-purpose is to make available:-- * One or more Haskell programs.-- * At most one library, exposing a number of Haskell modules.--However having both a library and executables in a package does not work-very well; if the executables depend on the library, they must-explicitly list all the modules they directly or indirectly import from-that library. Fortunately, starting with Cabal 1.8.0.4, executables can-also declare the package that they are in as a dependency, and Cabal-will treat them as if they were in another package that depended on-the library.--Internally, the package may consist of much more than a bunch of Haskell-modules: it may also have C source code and header files, source code-meant for preprocessing, documentation, test cases, auxiliary tools etc.--A package is identified by a globally-unique _package name_, which-consists of one or more alphanumeric words separated by hyphens. To-avoid ambiguity, each of these words should contain at least one letter.-Chaos will result if two distinct packages with the same name are-installed on the same system. A particular version of the package is-distinguished by a _version number_, consisting of a sequence of one or-more integers separated by dots. These can be combined to form a single-text string called the _package ID_, using a hyphen to separate the name-from the version, e.g. "`HUnit-1.1`".--Note: Packages are not part of the Haskell language; they simply-populate the hierarchical space of module names. In GHC 6.6 and later a-program may contain multiple modules with the same name if they come-from separate packages; in all other current Haskell systems packages-may not overlap in the modules they provide, including hidden modules.---## Creating a package ##--Suppose you have a directory hierarchy containing the source files that-make up your package. You will need to add two more files to the root-directory of the package:--_package_`.cabal`--: a Unicode UTF-8 text file containing a package description.- For details of the syntax of this file, see the [section on package- descriptions](#package-descriptions).--`Setup.hs`--: a single-module Haskell program to perform various setup tasks (with- the interface described in the section on [building and installing- packages](installing-packages.html). This module should- import only modules that will be present in all Haskell- implementations, including modules of the Cabal library. The- content of this file is determined by the `build-type` setting in- the `.cabal` file. In most cases it will be trivial, calling on- the Cabal library to do most of the work.--Once you have these, you can create a source bundle of this directory-for distribution. Building of the package is discussed in the section on-[building and installing packages](installing-packages.html).--One of the purposes of Cabal is to make it easier to build a package-with different Haskell implementations. So it provides abstractions of-features present in different Haskell implementations and wherever-possible it is best to take advantage of these to increase portability.-Where necessary however it is possible to use specific features of-specific implementations. For example one of the pieces of information a-package author can put in the package's `.cabal` file is what language-extensions the code uses. This is far preferable to specifying flags for-a specific compiler as it allows Cabal to pick the right flags for the-Haskell implementation that the user picks. It also allows Cabal to-figure out if the language extension is even supported by the Haskell-implementation that the user picks. Where compiler-specific options are-needed however, there is an "escape hatch" available. The developer can-specify implementation-specific options and more generally there is a-configuration mechanism to customise many aspects of how a package is-built depending on the Haskell implementation, the Operating system,-computer architecture and user-specified configuration flags.--~~~~~~~~~~~~~~~~-name: Foo-version: 1.0--library- build-depends: base- exposed-modules: Foo- extensions: ForeignFunctionInterface- ghc-options: -Wall- if os(windows)- build-depends: Win32-~~~~~~~~~~~~~~~~--#### Example: A package containing a simple library ####--The HUnit package contains a file `HUnit.cabal` containing:--~~~~~~~~~~~~~~~~-name: HUnit-version: 1.1.1-synopsis: A unit testing framework for Haskell-homepage: http://hunit.sourceforge.net/-category: Testing-author: Dean Herington-license: BSD3-license-file: LICENSE-cabal-version: >= 1.10-build-type: Simple--library- build-depends: base >= 2 && < 4- exposed-modules: Test.HUnit.Base, Test.HUnit.Lang,- Test.HUnit.Terminal, Test.HUnit.Text, Test.HUnit- default-extensions: CPP-~~~~~~~~~~~~~~~~--and the following `Setup.hs`:--~~~~~~~~~~~~~~~~-import Distribution.Simple-main = defaultMain-~~~~~~~~~~~~~~~~--#### Example: A package containing executable programs ####--~~~~~~~~~~~~~~~~-name: TestPackage-version: 0.0-synopsis: Small package with two programs-author: Angela Author-license: BSD3-build-type: Simple-cabal-version: >= 1.2--executable program1- build-depends: HUnit- main-is: Main.hs- hs-source-dirs: prog1--executable program2- main-is: Main.hs- build-depends: HUnit- hs-source-dirs: prog2- other-modules: Utils-~~~~~~~~~~~~~~~~--with `Setup.hs` the same as above.--#### Example: A package containing a library and executable programs ####--~~~~~~~~~~~~~~~~-name: TestPackage-version: 0.0-synopsis: Package with library and two programs-license: BSD3-author: Angela Author-build-type: Simple-cabal-version: >= 1.2--library- build-depends: HUnit- exposed-modules: A, B, C--executable program1- main-is: Main.hs- hs-source-dirs: prog1- other-modules: A, B--executable program2- main-is: Main.hs- hs-source-dirs: prog2- other-modules: A, C, Utils-~~~~~~~~~~~~~~~~--with `Setup.hs` the same as above. Note that any library modules-required (directly or indirectly) by an executable must be listed again.--The trivial setup script used in these examples uses the _simple build-infrastructure_ provided by the Cabal library (see-[Distribution.Simple][dist-simple]). The simplicity lies in its-interface rather that its implementation. It automatically handles-preprocessing with standard preprocessors, and builds packages for all-the Haskell implementations.--The simple build infrastructure can also handle packages where building-is governed by system-dependent parameters, if you specify a little more-(see the section on [system-dependent-parameters](#system-dependent-parameters)). A few packages require [more-elaborate solutions](#more-complex-packages).--## Package descriptions ##--The package description file must have a name ending in "`.cabal`". It-must be a Unicode text file encoded using valid UTF-8. There must be-exactly one such file in the directory. The first part of the name is-usually the package name, and some of the tools that operate on Cabal-packages require this.--In the package description file, lines whose first non-whitespace characters-are "`--`" are treated as comments and ignored.--This file should contain of a number global property descriptions and-several sections.--* The [global properties](#package-properties) describe the package as a- whole, such as name, license, author, etc.--* Optionally, a number of _configuration flags_ can be declared. These- can be used to enable or disable certain features of a package. (see- the section on [configurations](#configurations)).--* The (optional) library section specifies the [library- properties](#library) and relevant [build- information](#build-information).--* Following is an arbitrary number of executable sections- which describe an executable program and relevant [build- information](#build-information).--Each section consists of a number of property descriptions-in the form of field/value pairs, with a syntax roughly like mail-message headers.--* Case is not significant in field names, but is significant in field- values.--* To continue a field value, indent the next line relative to the field- name.--* Field names may be indented, but all field values in the same section- must use the same indentation.--* Tabs are *not* allowed as indentation characters due to a missing- standard interpretation of tab width.--* To get a blank line in a field value, use an indented "`.`"--The syntax of the value depends on the field. Field types include:--_token_, _filename_, _directory_-: Either a sequence of one or more non-space non-comma characters, or a quoted- string in Haskell 98 lexical syntax. The latter can be used for escaping- whitespace, for example: `ghc-options: -Wall "-with-rtsopts=-T -I1"`.- Unless otherwise stated, relative filenames and directories are interpreted- from the package root directory.--_freeform_, _URL_, _address_-: An arbitrary, uninterpreted string.--_identifier_-: A letter followed by zero or more alphanumerics or underscores.--_compiler_-: A compiler flavor (one of: `GHC`, `JHC`, `UHC` or `LHC`) followed by a- version range. For example, `GHC ==6.10.3`, or `LHC >=0.6 && <0.8`.--### Modules and preprocessors ###--Haskell module names listed in the `exposed-modules` and `other-modules`-fields may correspond to Haskell source files, i.e. with names ending in-"`.hs`" or "`.lhs`", or to inputs for various Haskell preprocessors. The-simple build infrastructure understands the extensions:--* `.gc` ([greencard][])-* `.chs` ([c2hs][])-* `.hsc` (`hsc2hs`)-* `.y` and `.ly` ([happy][])-* `.x` ([alex][])-* `.cpphs` ([cpphs][])--When building, Cabal will automatically run the appropriate-preprocessor and compile the Haskell module it produces. For the-`c2hs` and `hsc2hs` preprocessors, Cabal will also automatically add,-compile and link any C sources generated by the preprocessor (produced-by `hsc2hs`'s `#def` feature or `c2hs`'s auto-generated wrapper-functions).--Some fields take lists of values, which are optionally separated by commas,-except for the `build-depends` field, where the commas are mandatory.--Some fields are marked as required. All others are optional, and unless-otherwise specified have empty default values.--### Package properties ###--These fields may occur in the first top-level properties section and-describe the package as a whole:--`name:` _package-name_ (required)-: The unique name of the package, without the version number.--`version:` _numbers_ (required)-: The package version number, usually consisting of a sequence of- natural numbers separated by dots.--`cabal-version:` _>= x.y_-: The version of the Cabal specification that this package description uses.- The Cabal specification does slowly evolve, introducing new features and- occasionally changing the meaning of existing features. By specifying- which version of the spec you are using it enables programs which process- the package description to know what syntax to expect and what each part- means.-- For historical reasons this is always expressed using _>=_ version range- syntax. No other kinds of version range make sense, in particular upper- bounds do not make sense. In future this field will specify just a version- number, rather than a version range.-- The version number you specify will affect both compatibility and- behaviour. Most tools (including the Cabal library and cabal program)- understand a range of versions of the Cabal specification. Older tools- will of course only work with older versions of the Cabal specification.- Most of the time, tools that are too old will recognise this fact and- produce a suitable error message.-- As for behaviour, new versions of the Cabal spec can change the meaning- of existing syntax. This means if you want to take advantage of the new- meaning or behaviour then you must specify the newer Cabal version.- Tools are expected to use the meaning and behaviour appropriate to the- version given in the package description.-- In particular, the syntax of package descriptions changed significantly- with Cabal version 1.2 and the `cabal-version` field is now required.- Files written in the old syntax are still recognized, so if you require- compatibility with very old Cabal versions then you may write your package- description file using the old syntax. Please consult the user's guide of- an older Cabal version for a description of that syntax.--`build-type:` _identifier_-: The type of build used by this package. Build types are the- constructors of the [BuildType][] type, defaulting to `Custom`.-- If the build type is anything other than `Custom`, then the- `Setup.hs` file *must* be exactly the standardized content- discussed below. This is because in these cases, `cabal` will- ignore the `Setup.hs` file completely, whereas other methods of- package management, such as `runhaskell Setup.hs [CMD]`, still- rely on the `Setup.hs` file.-- For build type `Simple`, the contents of `Setup.hs` must be:-- ~~~~~~~~~~~~~~~~- import Distribution.Simple- main = defaultMain- ~~~~~~~~~~~~~~~~-- For build type `Configure` (see the section on [system-dependent- parameters](#system-dependent-parameters) below), the contents of- `Setup.hs` must be:-- ~~~~~~~~~~~~~~~~- import Distribution.Simple- main = defaultMainWithHooks autoconfUserHooks- ~~~~~~~~~~~~~~~~-- For build type `Make` (see the section on [more complex- packages](installing-packages.html#more-complex-packages) below),- the contents of `Setup.hs` must be:-- ~~~~~~~~~~~~~~~~- import Distribution.Make- main = defaultMain- ~~~~~~~~~~~~~~~~-- For build type `Custom`, the file `Setup.hs` can be customized,- and will be used both by `cabal` and other tools.-- For most packages, the build type `Simple` is sufficient.--`license:` _identifier_ (default: `AllRightsReserved`)-: The type of license under which this package is distributed.- License names are the constants of the [License][dist-license] type.--`license-file:` _filename_ or `license-files:` _filename list_-: The name of a file(s) containing the precise copyright license for- this package. The license file(s) will be installed with the package.-- If you have multiple license files then use the `license-files`- field instead of (or in addition to) the `license-file` field.--`copyright:` _freeform_-: The content of a copyright notice, typically the name of the holder- of the copyright on the package and the year(s) from which copyright- is claimed. For example: `Copyright: (c) 2006-2007 Joe Bloggs`--`author:` _freeform_-: The original author of the package.-- Remember that `.cabal` files are Unicode, using the UTF-8 encoding.--`maintainer:` _address_-: The current maintainer or maintainers of the package. This is an e-mail address to which users should send bug- reports, feature requests and patches.--`stability:` _freeform_-: The stability level of the package, e.g. `alpha`, `experimental`, `provisional`,- `stable`.--`homepage:` _URL_-: The package homepage.--`bug-reports:` _URL_-: The URL where users should direct bug reports. This would normally be either:-- * A `mailto:` URL, e.g. for a person or a mailing list.-- * An `http:` (or `https:`) URL for an online bug tracking system.-- For example Cabal itself uses a web-based bug tracking system-- ~~~~~~~~~~~~~~~~- bug-reports: http://hackage.haskell.org/trac/hackage/- ~~~~~~~~~~~~~~~~--`package-url:` _URL_-: The location of a source bundle for the package. The distribution- should be a Cabal package.--`synopsis:` _freeform_-: A very short description of the package, for use in a table of- packages. This is your headline, so keep it short (one line) but as- informative as possible. Save space by not including the package- name or saying it's written in Haskell.--`description:` _freeform_-: Description of the package. This may be several paragraphs, and- should be aimed at a Haskell programmer who has never heard of your- package before.-- For library packages, this field is used as prologue text by [`setup- haddock`](installing-packages.html#setup-haddock), and thus may- contain the same markup as [haddock][] documentation comments.--`category:` _freeform_-: A classification category for future use by the package catalogue [Hackage]. These- categories have not yet been specified, but the upper levels of the- module hierarchy make a good start.--`tested-with:` _compiler list_-: A list of compilers and versions against which the package has been- tested (or at least built).--`data-files:` _filename list_-: A list of files to be installed for run-time use by the package.- This is useful for packages that use a large amount of static data,- such as tables of values or code templates. Cabal provides a way to- [find these files at- run-time](#accessing-data-files-from-package-code).-- A limited form of `*` wildcards in file names, for example- `data-files: images/*.png` matches all the `.png` files in the- `images` directory.-- The limitation is that `*` wildcards are only allowed in place of- the file name, not in the directory name or file extension. In- particular, wildcards do not include directories contents- recursively. Furthermore, if a wildcard is used it must be used with- an extension, so `data-files: data/*` is not allowed. When matching- a wildcard plus extension, a file's full extension must match- exactly, so `*.gz` matches `foo.gz` but not `foo.tar.gz`. A wildcard- that does not match any files is an error.-- The reason for providing only a very limited form of wildcard is to- concisely express the common case of a large number of related files- of the same file type without making it too easy to accidentally- include unwanted files.--`data-dir:` _directory_-: The directory where Cabal looks for data files to install, relative- to the source directory. By default, Cabal will look in the source- directory itself.--`extra-source-files:` _filename list_-: A list of additional files to be included in source distributions- built with [`setup sdist`](installing-packages.html#setup-sdist). As- with `data-files` it can use a limited form of `*` wildcards in file- names.--`extra-doc-files:` _filename list_-: A list of additional files to be included in source distributions,- and also copied to the html directory when Haddock documentation is- generated. As with `data-files` it can use a limited form of `*`- wildcards in file names.--`extra-tmp-files:` _filename list_-: A list of additional files or directories to be removed by [`setup- clean`](installing-packages.html#setup-clean). These would typically- be additional files created by additional hooks, such as the scheme- described in the section on [system-dependent- parameters](#system-dependent-parameters).--### Library ###--The library section should contain the following fields:--`exposed-modules:` _identifier list_ (required if this package contains a library)-: A list of modules added by this package.--`exposed:` _boolean_ (default: `True`)-: Some Haskell compilers (notably GHC) support the notion of packages- being "exposed" or "hidden" which means the modules they provide can- be easily imported without always having to specify which package- they come from. However this only works effectively if the modules- provided by all exposed packages do not overlap (otherwise a module- import would be ambiguous).-- Almost all new libraries use hierarchical module names that do not- clash, so it is very uncommon to have to use this field. However it- may be necessary to set `exposed: False` for some old libraries that- use a flat module namespace or where it is known that the exposed- modules would clash with other common modules.--`reexported-modules:` _exportlist _-: Supported only in GHC 7.10 and later. A list of modules to _reexport_ from- this package. The syntax of this field is `orig-pkg:Name as NewName` to- reexport module `Name` from `orig-pkg` with the new name `NewName`. We also- support abbreviated versions of the syntax: if you omit `as NewName`,- we'll reexport without renaming; if you omit `orig-pkg`, then we will- automatically figure out which package to reexport from, if it's- unambiguous.-- Reexported modules are useful for compatibility shims when a package has- been split into multiple packages, and they have the useful property that- if a package provides a module, and another package reexports it under- the same name, these are not considered a conflict (as would be the case- with a stub module.) They can also be used to resolve name conflicts.--The library section may also contain build information fields (see the-section on [build information](#build-information)).--#### Opening an interpreter session ####--While developing a package, it is often useful to make its code available inside-an interpreter session. This can be done with the `repl` command:--~~~~~~~~~~~~~~~~-cabal repl-~~~~~~~~~~~~~~~~--The name comes from the acronym [REPL], which stands for-"read-eval-print-loop". By default `cabal repl` loads the first component in a-package. If the package contains several named components, the name can be given-as an argument to `repl`. The name can be also optionally prefixed with the-component's type for disambiguation purposes. Example:--~~~~~~~~~~~~~~~~-cabal repl foo-cabal repl exe:foo-cabal repl test:bar-cabal repl bench:baz-~~~~~~~~~~~~~~~~--#### Freezing dependency versions ####--If a package is built in several different environments, such as a development-environment, a staging environment and a production environment, it may be-necessary or desirable to ensure that the same dependency versions are-selected in each environment. This can be done with the `freeze` command:--~~~~~~~~~~~~~~~~-cabal freeze-~~~~~~~~~~~~~~~~--The command writes the selected version for all dependencies to the-`cabal.config` file. All environments which share this file will use the-dependency versions specified in it.--#### Generating dependency version bounds ####--Cabal also has the ability to suggest dependency version bounds that conform to-[Package Versioning Policy][PVP], which is a recommended versioning system for-publicly released Cabal packages. This is done by running the `gen-bounds`-command:--~~~~~~~~~~~~~~~~-cabal gen-bounds-~~~~~~~~~~~~~~~~--For example, given the following dependencies specified in `build-depends`:--~~~~~~~~~~~~~~~~-foo == 0.5.2-bar == 1.1-~~~~~~~~~~~~~~~~--`gen-bounds` will suggest changing them to the following:--~~~~~~~~~~~~~~~~-foo >= 0.5.2 && < 0.6-bar >= 1.1 && < 1.2-~~~~~~~~~~~~~~~~---### Executables ###--Executable sections (if present) describe executable programs contained-in the package and must have an argument after the section label, which-defines the name of the executable. This is a freeform argument but may-not contain spaces.--The executable may be described using the following fields, as well as-build information fields (see the section on [build-information](#build-information)).--`main-is:` _filename_ (required)-: The name of the `.hs` or `.lhs` file containing the `Main` module. Note that it is the- `.hs` filename that must be listed, even if that file is generated- using a preprocessor. The source file must be relative to one of the- directories listed in `hs-source-dirs`.--#### Running executables ####--You can have Cabal build and run your executables by using the `run` command:--~~~~~~~~~~~~~~~~-$ cabal run EXECUTABLE [-- EXECUTABLE_FLAGS]-~~~~~~~~~~~~~~~~--This command will configure, build and run the executable `EXECUTABLE`. The-double dash separator is required to distinguish executable flags from `run`'s-own flags. If there is only one executable defined in the whole package, the-executable's name can be omitted. See the output of `cabal help run` for a list-of options you can pass to `cabal run`.---### Test suites ###--Test suite sections (if present) describe package test suites and must have an-argument after the section label, which defines the name of the test suite.-This is a freeform argument, but may not contain spaces. It should be unique-among the names of the package's other test suites, the package's executables,-and the package itself. Using test suite sections requires at least Cabal-version 1.9.2.--The test suite may be described using the following fields, as well as build-information fields (see the section on [build-information](#build-information)).--`type:` _interface_ (required)-: The interface type and version of the test suite. Cabal supports two test- suite interfaces, called `exitcode-stdio-1.0` and `detailed-0.9`. Each of- these types may require or disallow other fields as described below.--Test suites using the `exitcode-stdio-1.0` interface are executables-that indicate test failure with a non-zero exit code when run; they may provide-human-readable log information through the standard output and error channels.-This interface is provided primarily for compatibility with existing test-suites; it is preferred that new test suites be written for the `detailed-0.9`-interface. The `exitcode-stdio-1.0` type requires the `main-is` field.--`main-is:` _filename_ (required: `exitcode-stdio-1.0`, disallowed: `detailed-0.9`)-: The name of the `.hs` or `.lhs` file containing the `Main` module. Note that it is the- `.hs` filename that must be listed, even if that file is generated- using a preprocessor. The source file must be relative to one of the- directories listed in `hs-source-dirs`. This field is analogous to the- `main-is` field of an executable section.--Test suites using the `detailed-0.9` interface are modules exporting the symbol-`tests :: IO [Test]`. The `Test` type is exported by the module-`Distribution.TestSuite` provided by Cabal. For more details, see the example below.--The `detailed-0.9` interface allows Cabal and other test agents to inspect a-test suite's results case by case, producing detailed human- and-machine-readable log files. The `detailed-0.9` interface requires the-`test-module` field.--`test-module:` _identifier_ (required: `detailed-0.9`, disallowed: `exitcode-stdio-1.0`)-: The module exporting the `tests` symbol.--#### Example: Package using `exitcode-stdio-1.0` interface ####--The example package description and executable source file below demonstrate-the use of the `exitcode-stdio-1.0` interface.--foo.cabal:--~~~~~~~~~~~~~~~~-Name: foo-Version: 1.0-License: BSD3-Cabal-Version: >= 1.9.2-Build-Type: Simple--Test-Suite test-foo- type: exitcode-stdio-1.0- main-is: test-foo.hs- build-depends: base-~~~~~~~~~~~~~~~~--test-foo.hs:--~~~~~~~~~~~~~~~~-module Main where--import System.Exit (exitFailure)--main = do- putStrLn "This test always fails!"- exitFailure-~~~~~~~~~~~~~~~~--#### Example: Package using `detailed-0.9` interface ####--The example package description and test module source file below demonstrate-the use of the `detailed-0.9` interface. The test module also develops a simple-implementation of the interface set by `Distribution.TestSuite`, but in actual-usage the implementation would be provided by the library that provides the-testing facility.--bar.cabal:--~~~~~~~~~~~~~~~~-Name: bar-Version: 1.0-License: BSD3-Cabal-Version: >= 1.9.2-Build-Type: Simple--Test-Suite test-bar- type: detailed-0.9- test-module: Bar- build-depends: base, Cabal >= 1.9.2-~~~~~~~~~~~~~~~~--Bar.hs:--~~~~~~~~~~~~~~~~-module Bar ( tests ) where--import Distribution.TestSuite--tests :: IO [Test]-tests = return [ Test succeeds, Test fails ]- where- succeeds = TestInstance- { run = return $ Finished Pass- , name = "succeeds"- , tags = []- , options = []- , setOption = \_ _ -> Right succeeds- }- fails = TestInstance- { run = return $ Finished $ Fail "Always fails!"- , name = "fails"- , tags = []- , options = []- , setOption = \_ _ -> Right fails- }-~~~~~~~~~~~~~~~~--#### Running test suites ####--You can have Cabal run your test suites using its built-in test-runner:--~~~~~~~~~~~~~~~~-$ cabal configure --enable-tests-$ cabal build-$ cabal test-~~~~~~~~~~~~~~~~--See the output of `cabal help test` for a list of options you can pass-to `cabal test`.--### Benchmarks ###--Benchmark sections (if present) describe benchmarks contained in the package and-must have an argument after the section label, which defines the name of the-benchmark. This is a freeform argument, but may not contain spaces. It should-be unique among the names of the package's other benchmarks, the package's test-suites, the package's executables, and the package itself. Using benchmark-sections requires at least Cabal version 1.9.2.--The benchmark may be described using the following fields, as well as build-information fields (see the section on [build information](#build-information)).--`type:` _interface_ (required)-: The interface type and version of the benchmark. At the moment Cabal only- support one benchmark interface, called `exitcode-stdio-1.0`.--Benchmarks using the `exitcode-stdio-1.0` interface are executables that-indicate failure to run the benchmark with a non-zero exit code when run; they-may provide human-readable information through the standard output and error-channels.--`main-is:` _filename_ (required: `exitcode-stdio-1.0`)-: The name of the `.hs` or `.lhs` file containing the `Main` module. Note that- it is the `.hs` filename that must be listed, even if that file is generated- using a preprocessor. The source file must be relative to one of the- directories listed in `hs-source-dirs`. This field is analogous to the- `main-is` field of an executable section.--#### Example: Package using `exitcode-stdio-1.0` interface ####--The example package description and executable source file below demonstrate-the use of the `exitcode-stdio-1.0` interface.--foo.cabal:--~~~~~~~~~~~~~~~~-Name: foo-Version: 1.0-License: BSD3-Cabal-Version: >= 1.9.2-Build-Type: Simple--Benchmark bench-foo- type: exitcode-stdio-1.0- main-is: bench-foo.hs- build-depends: base, time-~~~~~~~~~~~~~~~~--bench-foo.hs:--~~~~~~~~~~~~~~~~-{-# LANGUAGE BangPatterns #-}-module Main where--import Data.Time.Clock--fib 0 = 1-fib 1 = 1-fib n = fib (n-1) + fib (n-2)--main = do- start <- getCurrentTime- let !r = fib 20- end <- getCurrentTime- putStrLn $ "fib 20 took " ++ show (diffUTCTime end start)-~~~~~~~~~~~~~~~~--#### Running benchmarks ####--You can have Cabal run your benchmark using its built-in benchmark runner:--~~~~~~~~~~~~~~~~-$ cabal configure --enable-benchmarks-$ cabal build-$ cabal bench-~~~~~~~~~~~~~~~~--See the output of `cabal help bench` for a list of options you can-pass to `cabal bench`.--### Build information ###--The following fields may be optionally present in a library, executable, test-suite or benchmark section, and give information for the building of the-corresponding library or executable. See also the sections on-[system-dependent parameters](#system-dependent-parameters) and-[configurations](#configurations) for a way to supply system-dependent values-for these fields.--`build-depends:` _package list_-: A list of packages needed to build this one. Each package can be- annotated with a version constraint.-- Version constraints use the operators `==, >=, >, <, <=` and a- version number. Multiple constraints can be combined using `&&` or- `||`. If no version constraint is specified, any version is assumed- to be acceptable. For example:-- ~~~~~~~~~~~~~~~~- library- build-depends:- base >= 2,- foo >= 1.2 && < 1.3,- bar- ~~~~~~~~~~~~~~~~-- Dependencies like `foo >= 1.2 && < 1.3` turn out to be very common- because it is recommended practise for package versions to- correspond to API versions. As of Cabal 1.6, there is a special- syntax to support this use:-- ~~~~~~~~~~~~~~~~- build-depends: foo ==1.2.*- ~~~~~~~~~~~~~~~~-- It is only syntactic sugar. It is exactly equivalent to `foo >= 1.2 && < 1.3`.-- Note: Prior to Cabal 1.8, `build-depends` specified in each section- were global to all sections. This was unintentional, but some packages- were written to depend on it, so if you need your `build-depends` to- be local to each section, you must specify at least- `Cabal-Version: >= 1.8` in your `.cabal` file.-- Note: Cabal 1.20 experimentally supported module thinning and- renaming in `build-depends`; however, this support has since been- removed and should not be used.--`other-modules:` _identifier list_-: A list of modules used by the component but not exposed to users.- For a library component, these would be hidden modules of the- library. For an executable, these would be auxiliary modules to be- linked with the file named in the `main-is` field.-- Note: Every module in the package *must* be listed in one of- `other-modules`, `exposed-modules` or `main-is` fields.--`hs-source-dirs:` _directory list_ (default: "`.`")-: Root directories for the module hierarchy.-- For backwards compatibility, the old variant `hs-source-dir` is also- recognized.--`default-extensions:` _identifier list_-: A list of Haskell extensions used by every module. These determine- corresponding compiler options enabled for all files. Extension names are- the constructors of the [Extension][extension] type. For example, `CPP`- specifies that Haskell source files are to be preprocessed with a C- preprocessor.--`other-extensions:` _identifier list_-: A list of Haskell extensions used by some (but not necessarily all) modules.- From GHC version 6.6 onward, these may be specified by placing a `LANGUAGE`- pragma in the source files affected e.g.-- ~~~~~~~~~~~~~~~~- {-# LANGUAGE CPP, MultiParamTypeClasses #-}- ~~~~~~~~~~~~~~~~-- In Cabal-1.24 the dependency solver will use this and `default-extensions` information.- Cabal prior to 1.24 will abort compilation if the current compiler doesn't provide- the extensions.-- If you use some extensions conditionally, using CPP or conditional module lists,- it is good to replicate the condition in `other-extensions` declarations:-- ~~~~~~~~~~~~~~~~- other-extensions: CPP- if impl(ghc >= 7.5)- other-extensions: PolyKinds- ~~~~~~~~~~~~~~~~-- You could also omit the conditionally used extensions, as they are for information only,- but it is recommended to replicate them in `other-extensions` declarations.--`build-tools:` _program list_-: A list of programs, possibly annotated with versions, needed to- build this package, e.g. `c2hs >= 0.15, cpphs`.If no version- constraint is specified, any version is assumed to be acceptable.--`buildable:` _boolean_ (default: `True`)-: Is the component buildable? Like some of the other fields below,- this field is more useful with the slightly more elaborate form of- the simple build infrastructure described in the section on- [system-dependent parameters](#system-dependent-parameters).--`ghc-options:` _token list_-: Additional options for GHC. You can often achieve the same effect- using the `extensions` field, which is preferred.-- Options required only by one module may be specified by placing an- `OPTIONS_GHC` pragma in the source file affected.-- As with many other fields, whitespace can be escaped by using Haskell string- syntax. Example: `ghc-options: -Wcompat "-with-rtsopts=-T -I1" -Wall`.--`ghc-prof-options:` _token list_-: Additional options for GHC when the package is built with profiling- enabled.-- Note that as of Cabal-1.24, the default profiling detail level defaults to- `exported-functions` for libraries and `toplevel-functions` for- executables. For GHC these correspond to the flags `-fprof-auto-exported`- and `-fprof-auto-top`. Prior to Cabal-1.24 the level defaulted to `none`.- These levels can be adjusted by the person building the package with the- `--profiling-detail` and `--library-profiling-detail` flags.-- It is typically better for the person building the package to pick the- profiling detail level rather than for the package author. So unless you- have special needs it is probably better not to specify any of the GHC- `-fprof-auto*` flags here. However if you wish to override the profiling- detail level, you can do so using the `ghc-prof-options` field: use- `-fno-prof-auto` or one of the other `-fprof-auto*` flags.---`ghc-shared-options:` _token list_-: Additional options for GHC when the package is built as shared library.- The options specified via this field are combined with the ones specified- via `ghc-options`, and are passed to GHC during both the compile and- link phases.--`includes:` _filename list_-: A list of header files to be included in any compilations via C.- This field applies to both header files that are already installed- on the system and to those coming with the package to be installed.- These files typically contain function prototypes for foreign- imports used by the package.--`install-includes:` _filename list_-: A list of header files from this package to be installed into- `$libdir/includes` when the package is installed. Files listed in- `install-includes:` should be found in relative to the top of the- source tree or relative to one of the directories listed in- `include-dirs`.-- `install-includes` is typically used to name header files that- contain prototypes for foreign imports used in Haskell code in this- package, for which the C implementations are also provided with the- package. Note that to include them when compiling the package- itself, they need to be listed in the `includes:` field as well.--`include-dirs:` _directory list_-: A list of directories to search for header files, when preprocessing- with `c2hs`, `hsc2hs`, `cpphs` or the C preprocessor, and- also when compiling via C.--`c-sources:` _filename list_-: A list of C source files to be compiled and linked with the Haskell files.--`js-sources:` _filename list_-: A list of JavaScript source files to be linked with the Haskell files- (only for JavaScript targets).--`extra-libraries:` _token list_-: A list of extra libraries to link with.--`extra-ghci-libraries:` _token list_-: A list of extra libraries to be used instead of 'extra-libraries' when- the package is loaded with GHCi.--`extra-lib-dirs:` _directory list_-: A list of directories to search for libraries.--`cc-options:` _token list_-: Command-line arguments to be passed to the C compiler. Since the- arguments are compiler-dependent, this field is more useful with the- setup described in the section on [system-dependent- parameters](#system-dependent-parameters).--`cpp-options:` _token list_-: Command-line arguments for pre-processing Haskell code. Applies to- haskell source and other pre-processed Haskell source like .hsc .chs.- Does not apply to C code, that's what cc-options is for.--`ld-options:` _token list_-: Command-line arguments to be passed to the linker. Since the- arguments are compiler-dependent, this field is more useful with the- setup described in the section on [system-dependent- parameters](#system-dependent-parameters)>.--`pkgconfig-depends:` _package list_-: A list of [pkg-config] packages, needed to build this package.- They can be annotated with versions, e.g. `gtk+-2.0 >= 2.10, cairo- >= 1.0`. If no version constraint is specified, any version is- assumed to be acceptable. Cabal uses `pkg-config` to find if the- packages are available on the system and to find the extra- compilation and linker options needed to use the packages.-- If you need to bind to a C library that supports `pkg-config` (use- `pkg-config --list-all` to find out if it is supported) then it is- much preferable to use this field rather than hard code options into- the other fields.--`frameworks:` _token list_-: On Darwin/MacOS X, a list of frameworks to link to. See Apple's- developer documentation for more details on frameworks. This entry- is ignored on all other platforms.--`extra-frameworks-dirs:` _directory list_-: On Darwin/MacOS X, a list of directories to search for frameworks.- This entry is ignored on all other platforms.--### Configurations ###--Library and executable sections may include conditional-blocks, which test for various system parameters and-configuration flags. The flags mechanism is rather generic,-but most of the time a flag represents certain feature, that-can be switched on or off by the package user.-Here is an example package description file using-configurations:--#### Example: A package containing a library and executable programs ####--~~~~~~~~~~~~~~~~-Name: Test1-Version: 0.0.1-Cabal-Version: >= 1.2-License: BSD3-Author: Jane Doe-Synopsis: Test package to test configurations-Category: Example--Flag Debug- Description: Enable debug support- Default: False--Flag WebFrontend- Description: Include API for web frontend.- -- Cabal checks if the configuration is possible, first- -- with this flag set to True and if not it tries with False--Library- Build-Depends: base- Exposed-Modules: Testing.Test1- Extensions: CPP-- if flag(debug)- GHC-Options: -DDEBUG- if !os(windows)- CC-Options: "-DDEBUG"- else- CC-Options: "-DNDEBUG"-- if flag(webfrontend)- Build-Depends: cgi > 0.42- Other-Modules: Testing.WebStuff--Executable test1- Main-is: T1.hs- Other-Modules: Testing.Test1- Build-Depends: base-- if flag(debug)- CC-Options: "-DDEBUG"- GHC-Options: -DDEBUG-~~~~~~~~~~~~~~~~--#### Layout ####--Flags, conditionals, library and executable sections use layout to-indicate structure. This is very similar to the Haskell layout rule.-Entries in a section have to all be indented to the same level which-must be more than the section header. Tabs are not allowed to be used-for indentation.--As an alternative to using layout you can also use explicit braces `{}`.-In this case the indentation of entries in a section does not matter,-though different fields within a block must be on different lines. Here-is a bit of the above example again, using braces:--#### Example: Using explicit braces rather than indentation for layout ####--~~~~~~~~~~~~~~~~-Name: Test1-Version: 0.0.1-Cabal-Version: >= 1.2-License: BSD3-Author: Jane Doe-Synopsis: Test package to test configurations-Category: Example--Flag Debug {- Description: Enable debug support- Default: False-}--Library {- Build-Depends: base- Exposed-Modules: Testing.Test1- Extensions: CPP- if flag(debug) {- GHC-Options: -DDEBUG- if !os(windows) {- CC-Options: "-DDEBUG"- } else {- CC-Options: "-DNDEBUG"- }- }-}-~~~~~~~~~~~~~~~~--#### Configuration Flags ####--A flag section takes the flag name as an argument and may contain the-following fields.--`description:` _freeform_-: The description of this flag.--`default:` _boolean_ (default: `True`)-: The default value of this flag.-- Note that this value may be [overridden in several- ways](installing-packages.html#controlling-flag-assignments"). The- rationale for having flags default to True is that users usually- want new features as soon as they are available. Flags representing- features that are not (yet) recommended for most users (such as- experimental features or debugging support) should therefore- explicitly override the default to False.--`manual:` _boolean_ (default: `False`)-: By default, Cabal will first try to satisfy dependencies with the- default flag value and then, if that is not possible, with the- negated value. However, if the flag is manual, then the default- value (which can be overridden by commandline flags) will be used.--#### Conditional Blocks ####--Conditional blocks may appear anywhere inside a library or executable-section. They have to follow rather strict formatting rules.-Conditional blocks must always be of the shape--~~~~~~~~~~~~~~~~- `if `_condition_- _property-descriptions-or-conditionals*_-~~~~~~~~~~~~~~~~--or--~~~~~~~~~~~~~~~~- `if `_condition_- _property-descriptions-or-conditionals*_- `else`- _property-descriptions-or-conditionals*_-~~~~~~~~~~~~~~~~--Note that the `if` and the condition have to be all on the same line.--#### Conditions ####--Conditions can be formed using boolean tests and the boolean operators-`||` (disjunction / logical "or"), `&&` (conjunction / logical "and"),-or `!` (negation / logical "not"). The unary `!` takes highest-precedence, `||` takes lowest. Precedence levels may be overridden-through the use of parentheses. For example, `os(darwin) && !arch(i386)-|| os(freebsd)` is equivalent to `(os(darwin) && !(arch(i386))) ||-os(freebsd)`.--The following tests are currently supported.--`os(`_name_`)`-: Tests if the current operating system is _name_. The argument is- tested against `System.Info.os` on the target system. There is- unfortunately some disagreement between Haskell implementations- about the standard values of `System.Info.os`. Cabal canonicalises- it so that in particular `os(windows)` works on all implementations.- If the canonicalised os names match, this test evaluates to true,- otherwise false. The match is case-insensitive.--`arch(`_name_`)`-: Tests if the current architecture is _name_. The argument is- matched against `System.Info.arch` on the target system. If the arch- names match, this test evaluates to true, otherwise false. The match- is case-insensitive.--`impl(`_compiler_`)`-: Tests for the configured Haskell implementation. An optional version- constraint may be specified (for example `impl(ghc >= 6.6.1)`). If- the configured implementation is of the right type and matches the- version constraint, then this evaluates to true, otherwise false.- The match is case-insensitive.--`flag(`_name_`)`-: Evaluates to the current assignment of the flag of the given name.- Flag names are case insensitive. Testing for flags that have not- been introduced with a flag section is an error.--`true`-: Constant value true.--`false`-: Constant value false.--#### Resolution of Conditions and Flags ####--If a package descriptions specifies configuration flags the package user can-[control these in several ways](installing-packages.html#controlling-flag-assignments).-If the user does not fix the value of a flag, Cabal will try to find a flag-assignment in the following way.-- * For each flag specified, it will assign its default value, evaluate- all conditions with this flag assignment, and check if all- dependencies can be satisfied. If this check succeeded, the package- will be configured with those flag assignments.-- * If dependencies were missing, the last flag (as by the order in- which the flags were introduced in the package description) is tried- with its alternative value and so on. This continues until either- an assignment is found where all dependencies can be satisfied, or- all possible flag assignments have been tried.--To put it another way, Cabal does a complete backtracking search to find-a satisfiable package configuration. It is only the dependencies-specified in the `build-depends` field in conditional blocks that-determine if a particular flag assignment is satisfiable (`build-tools`-are not considered). The order of the declaration and the default value-of the flags determines the search order. Flags overridden on the-command line fix the assignment of that flag, so no backtracking will be-tried for that flag.--If no suitable flag assignment could be found, the configuration phase-will fail and a list of missing dependencies will be printed. Note that-this resolution process is exponential in the worst case (i.e., in the-case where dependencies cannot be satisfied). There are some-optimizations applied internally, but the overall complexity remains-unchanged.--### Meaning of field values when using conditionals ###--During the configuration phase, a flag assignment is chosen, all-conditionals are evaluated, and the package description is combined into-a flat package descriptions. If the same field both inside a conditional-and outside then they are combined using the following rules.--- * Boolean fields are combined using conjunction (logical "and").-- * List fields are combined by appending the inner items to the outer- items, for example-- ~~~~~~~~~~~~~~~~- other-extensions: CPP- if impl(ghc)- other-extensions: MultiParamTypeClasses- ~~~~~~~~~~~~~~~~-- when compiled using GHC will be combined to-- ~~~~~~~~~~~~~~~~- other-extensions: CPP, MultiParamTypeClasses- ~~~~~~~~~~~~~~~~-- Similarly, if two conditional sections appear at the same nesting- level, properties specified in the latter will come after properties- specified in the former.-- * All other fields must not be specified in ambiguous ways. For- example-- ~~~~~~~~~~~~~~~~- Main-is: Main.hs- if flag(useothermain)- Main-is: OtherMain.hs- ~~~~~~~~~~~~~~~~-- will lead to an error. Instead use-- ~~~~~~~~~~~~~~~~- if flag(useothermain)- Main-is: OtherMain.hs- else- Main-is: Main.hs- ~~~~~~~~~~~~~~~~--### Source Repositories ###--It is often useful to be able to specify a source revision control-repository for a package. Cabal lets you specifying this information in-a relatively structured form which enables other tools to interpret and-make effective use of the information. For example the information-should be sufficient for an automatic tool to checkout the sources.--Cabal supports specifying different information for various common-source control systems. Obviously not all automated tools will support-all source control systems.--Cabal supports specifying repositories for different use cases. By-declaring which case we mean automated tools can be more useful. There-are currently two kinds defined:-- * The `head` kind refers to the latest development branch of the- package. This may be used for example to track activity of a project- or as an indication to outside developers what sources to get for- making new contributions.-- * The `this` kind refers to the branch and tag of a repository that- contains the sources for this version or release of a package. For most- source control systems this involves specifying a tag, id or hash of- some form and perhaps a branch. The purpose is to be able to- reconstruct the sources corresponding to a particular package- version. This might be used to indicate what sources to get if- someone needs to fix a bug in an older branch that is no longer an- active head branch.--You can specify one kind or the other or both. As an example here are-the repositories for the Cabal library. Note that the `this` kind of-repository specifies a tag.--~~~~~~~~~~~~~~~~-source-repository head- type: darcs- location: http://darcs.haskell.org/cabal/--source-repository this- type: darcs- location: http://darcs.haskell.org/cabal-branches/cabal-1.6/- tag: 1.6.1-~~~~~~~~~~~~~~~~--The exact fields are as follows:--`type:` _token_-: The name of the source control system used for this repository. The- currently recognised types are:-- * `darcs`- * `git`- * `svn`- * `cvs`- * `mercurial` (or alias `hg`)- * `bazaar` (or alias `bzr`)- * `arch`- * `monotone`-- This field is required.--`location:` _URL_-: The location of the repository. The exact form of this field depends- on the repository type. For example:-- * for darcs: `http://code.haskell.org/foo/`- * for git: `git://github.com/foo/bar.git`- * for CVS: `anoncvs@cvs.foo.org:/cvs`-- This field is required.--`module:` _token_-: CVS requires a named module, as each CVS server can host multiple- named repositories.-- This field is required for the CVS repository type and should not- be used otherwise.--`branch:` _token_-: Many source control systems support the notion of a branch, as a- distinct concept from having repositories in separate locations. For- example CVS, SVN and git use branches while for darcs uses different- locations for different branches. If you need to specify a branch to- identify a your repository then specify it in this field.-- This field is optional.--`tag:` _token_-: A tag identifies a particular state of a source repository. The tag- can be used with a `this` repository kind to identify the state of- a repository corresponding to a particular package version or- release. The exact form of the tag depends on the repository type.-- This field is required for the `this` repository kind.--`subdir:` _directory_-: Some projects put the sources for multiple packages under a single- source repository. This field lets you specify the relative path- from the root of the repository to the top directory for the- package, i.e. the directory containing the package's `.cabal` file.-- This field is optional. It default to empty which corresponds to the- root directory of the repository.--### Downloading a package's source ###--The `cabal get` command allows to access a package's source code - either by-unpacking a tarball downloaded from Hackage (the default) or by checking out a-working copy from the package's source repository.--~~~~~~~~~~~~~~~~-$ cabal get [FLAGS] PACKAGES-~~~~~~~~~~~~~~~~--The `get` command supports the following options:--`-d --destdir` _PATH_-: Where to place the package source, defaults to (a subdirectory of) the- current directory.--`-s --source-repository` _[head|this|...]_-: Fork the package's source repository using the appropriate version control- system. The optional argument allows to choose a specific repository kind.--## Custom setup scripts--The optional `custom-setup` stanza contains information needed for the-compilation of custom `Setup.hs` scripts,--~~~~~~~~~~~~~~~~-custom-setup- setup-depends:- base >= 4.5 && < 4.11,- Cabal < 1.25-~~~~~~~~~~~~~~~~--`setup-depends:` _package list_-: The dependencies needed to compile `Setup.hs`. See the- [`build-depends`](#build-information) section for a description of the- syntax expected by this field.--## Accessing data files from package code ##--The placement on the target system of files listed in the `data-files`-field varies between systems, and in some cases one can even move-packages around after installation (see [prefix-independence](installing-packages.html#prefix-independence)). To enable-packages to find these files in a portable way, Cabal generates a module-called `Paths_`_pkgname_ (with any hyphens in _pkgname_ replaced by-underscores) during building, so that it may be imported by modules of-the package. This module defines a function--~~~~~~~~~~~~~~~-getDataFileName :: FilePath -> IO FilePath-~~~~~~~~~~~~~~~--If the argument is a filename listed in the `data-files` field, the-result is the name of the corresponding file on the system on which the-program is running.--Note: If you decide to import the `Paths_`_pkgname_ module then it-*must* be listed in the `other-modules` field just like any other module-in your package.--The `Paths_`_pkgname_ module is not platform independent so it does not-get included in the source tarballs generated by `sdist`.--The `Paths_`_pkgname_ module also includes some other useful functions-and values, which record the version of the package and some other-directories which the package has been configured to be installed-into (e.g. data files live in `getDataDir`):--~~~~~~~~~~~~~~~-version :: Version--getBinDir :: IO FilePath-getLibDir :: IO FilePath-getDynLibDir :: IO FilePath-getDataDir :: IO FilePath-getLibexecDir :: IO FilePath-getSysconfDir :: IO FilePath-~~~~~~~~~~~~~~~--### Accessing the package version ###--The aforementioned auto generated `Paths_`_pkgname_ module also-exports the constant `version ::` [Version][data-version] which is-defined as the version of your package as specified in the `version`-field.--## System-dependent parameters ##--For some packages, especially those interfacing with C libraries,-implementation details and the build procedure depend on the build-environment. The `build-type` `Configure` can be used to handle many-such situations. In this case, `Setup.hs` should be:--~~~~~~~~~~~~~~~~-import Distribution.Simple-main = defaultMainWithHooks autoconfUserHooks-~~~~~~~~~~~~~~~~--Most packages, however, would probably do better using the `Simple`-build type and [configurations](#configurations).--The `build-type` `Configure` differs from `Simple` in two ways:--* The package root directory must contain a shell script called- `configure`. The configure step will run the script. This `configure`- script may be produced by [autoconf][] or may be hand-written. The- `configure` script typically discovers information about the system- and records it for later steps, e.g. by generating system-dependent- header files for inclusion in C source files and preprocessed Haskell- source files. (Clearly this won't work for Windows without MSYS or- Cygwin: other ideas are needed.)--* If the package root directory contains a file called- _package_`.buildinfo` after the configuration step, subsequent steps- will read it to obtain additional settings for [build- information](#build-information) fields,to be merged with the ones- given in the `.cabal` file. In particular, this file may be generated- by the `configure` script mentioned above, allowing these settings to- vary depending on the build environment.-- The build information file should have the following structure:-- > _buildinfo_- >- > `executable:` _name_- > _buildinfo_- >- > `executable:` _name_- > _buildinfo_- > ...-- where each _buildinfo_ consists of settings of fields listed in the- section on [build information](#build-information). The first one (if- present) relates to the library, while each of the others relate to- the named executable. (The names must match the package description,- but you don't have to have entries for all of them.)--Neither of these files is required. If they are absent, this setup-script is equivalent to `defaultMain`.--#### Example: Using autoconf ####--This example is for people familiar with the [autoconf][] tools.--In the X11 package, the file `configure.ac` contains:--~~~~~~~~~~~~~~~~-AC_INIT([Haskell X11 package], [1.1], [libraries@haskell.org], [X11])--# Safety check: Ensure that we are in the correct source directory.-AC_CONFIG_SRCDIR([X11.cabal])--# Header file to place defines in-AC_CONFIG_HEADERS([include/HsX11Config.h])--# Check for X11 include paths and libraries-AC_PATH_XTRA-AC_TRY_CPP([#include <X11/Xlib.h>],,[no_x=yes])--# Build the package if we found X11 stuff-if test "$no_x" = yes-then BUILD_PACKAGE_BOOL=False-else BUILD_PACKAGE_BOOL=True-fi-AC_SUBST([BUILD_PACKAGE_BOOL])--AC_CONFIG_FILES([X11.buildinfo])-AC_OUTPUT-~~~~~~~~~~~~~~~~--Then the setup script will run the `configure` script, which checks for-the presence of the X11 libraries and substitutes for variables in the-file `X11.buildinfo.in`:--~~~~~~~~~~~~~~~~-buildable: @BUILD_PACKAGE_BOOL@-cc-options: @X_CFLAGS@-ld-options: @X_LIBS@-~~~~~~~~~~~~~~~~--This generates a file `X11.buildinfo` supplying the parameters needed by-later stages:--~~~~~~~~~~~~~~~~-buildable: True-cc-options: -I/usr/X11R6/include-ld-options: -L/usr/X11R6/lib-~~~~~~~~~~~~~~~~--The `configure` script also generates a header file `include/HsX11Config.h`-containing C preprocessor defines recording the results of various tests. This-file may be included by C source files and preprocessed Haskell source files in-the package.--Note: Packages using these features will also need to list additional files such-as `configure`, templates for `.buildinfo` files, files named only in-`.buildinfo` files, header files and so on in the `extra-source-files` field to-ensure that they are included in source distributions. They should also list-files and directories generated by `configure` in the `extra-tmp-files` field to-ensure that they are removed by `setup clean`.--Quite often the files generated by `configure` need to be listed somewhere in-the package description (for example, in the `install-includes` field). However,-we usually don't want generated files to be included in the source tarball. The-solution is again provided by the `.buildinfo` file. In the above example, the-following line should be added to `X11.buildinfo`:--~~~~~~~~~~~~~~~~-install-includes: HsX11Config.h-~~~~~~~~~~~~~~~~--In this way, the generated `HsX11Config.h` file won't be included in the source-tarball in addition to `HsX11Config.h.in`, but it will be copied to the right-location during the install process. Packages that use custom `Setup.hs` scripts-can update the necessary fields programmatically instead of using the-`.buildinfo` file.---## Conditional compilation ##--Sometimes you want to write code that works with more than one version-of a dependency. You can specify a range of versions for the dependency-in the `build-depends`, but how do you then write the code that can use-different versions of the API?--Haskell lets you preprocess your code using the C preprocessor (either-the real C preprocessor, or `cpphs`). To enable this, add `extensions:-CPP` to your package description. When using CPP, Cabal provides some-pre-defined macros to let you test the version of dependent packages;-for example, suppose your package works with either version 3 or version-4 of the `base` package, you could select the available version in your-Haskell modules like this:--~~~~~~~~~~~~~~~~-#if MIN_VERSION_base(4,0,0)-... code that works with base-4 ...-#else-... code that works with base-3 ...-#endif-~~~~~~~~~~~~~~~~--In general, Cabal supplies a macro `MIN_VERSION_`_`package`_`_(A,B,C)`-for each package depended on via `build-depends`. This macro is true if-the actual version of the package in use is greater than or equal to-`A.B.C` (using the conventional ordering on version numbers, which is-lexicographic on the sequence, but numeric on each component, so for-example 1.2.0 is greater than 1.0.3).--Since version 1.20, there is also the `MIN_TOOL_VERSION_`_`tool`_ family of-macros for conditioning on the version of build tools used to build the program-(e.g. `hsc2hs`).--Cabal places the definitions of these macros into an-automatically-generated header file, which is included when-preprocessing Haskell source code by passing options to the C-preprocessor.--Cabal also allows to detect when the source code is being used for generating-documentation. The `__HADDOCK_VERSION__` macro is defined only when compiling-via [haddock][] instead of a normal Haskell compiler. The value of the-`__HADDOCK_VERSION__` macro is defined as `A*1000 + B*10 + C`, where `A.B.C` is-the Haddock version. This can be useful for working around bugs in Haddock or-generating prettier documentation in some special cases.--## More complex packages ##--For packages that don't fit the simple schemes described above, you have-a few options:-- * By using the `build-type` `Custom`, you can supply your own- `Setup.hs` file, and customize the simple build infrastructure- using _hooks_. These allow you to perform additional actions- before and after each command is run, and also to specify- additional preprocessors. A typical `Setup.hs` may look like this:-- ~~~~~~~~~~~~~~~~- import Distribution.Simple- main = defaultMainWithHooks simpleUserHooks { postHaddock = posthaddock }-- posthaddock args flags desc info = ....- ~~~~~~~~~~~~~~~~-- See `UserHooks` in [Distribution.Simple][dist-simple] for the- details, but note that this interface is experimental, and likely- to change in future releases.-- If you use a custom `Setup.hs` file you should strongly consider adding a- `custom-setup` stanza with a `setup-depends` field to ensure that your- setup script does not break with future dependency versions.-- * You could delegate all the work to `make`, though this is unlikely- to be very portable. Cabal supports this with the `build-type`- `Make` and a trivial setup library [Distribution.Make][dist-make],- which simply parses the command line arguments and invokes `make`.- Here `Setup.hs` should look like this:-- ~~~~~~~~~~~~~~~~- import Distribution.Make- main = defaultMain- ~~~~~~~~~~~~~~~~-- The root directory of the package should contain a `configure`- script, and, after that has run, a `Makefile` with a default target- that builds the package, plus targets `install`, `register`,- `unregister`, `clean`, `dist` and `docs`. Some options to commands- are passed through as follows:-- * The `--with-hc-pkg`, `--prefix`, `--bindir`, `--libdir`, `--dynlibdir`, `--datadir`,- `--libexecdir` and `--sysconfdir` options to the `configure` command are- passed on to the `configure` script. In addition the value of the- `--with-compiler` option is passed in a `--with-hc` option and all- options specified with `--configure-option=` are passed on.-- * The `--destdir` option to the `copy` command becomes a setting- of a `destdir` variable on the invocation of `make copy`. The- supplied `Makefile` should provide a `copy` target, which will- probably look like this:-- ~~~~~~~~~~~~~~~~- copy :- $(MAKE) install prefix=$(destdir)/$(prefix) \- bindir=$(destdir)/$(bindir) \- libdir=$(destdir)/$(libdir) \- dynlibdir=$(destdir)/$(dynlibdir) \- datadir=$(destdir)/$(datadir) \- libexecdir=$(destdir)/$(libexecdir) \- sysconfdir=$(destdir)/$(sysconfdir) \- ~~~~~~~~~~~~~~~~-- * Finally, with the `build-type` `Custom`, you can also write your- own setup script from scratch. It must conform to the interface- described in the section on [building and installing- packages](installing-packages.html), and you may use the Cabal- library for all or part of the work. One option is to copy the- source of `Distribution.Simple`, and alter it for your needs. Good- luck.----[dist-simple]: ../release/cabal-latest/doc/API/Cabal/Distribution-Simple.html-[dist-make]: ../release/cabal-latest/doc/API/Cabal/Distribution-Make.html-[dist-license]: ../release/cabal-latest/doc/API/Cabal/Distribution-License.html#t:License-[extension]: ../release/cabal-latest/doc/API/Cabal/Language-Haskell-Extension.html#t:Extension-[BuildType]: ../release/cabal-latest/doc/API/Cabal/Distribution-PackageDescription.html#t:BuildType-[data-version]: http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Version.html-[alex]: http://www.haskell.org/alex/-[autoconf]: http://www.gnu.org/software/autoconf/-[c2hs]: http://www.cse.unsw.edu.au/~chak/haskell/c2hs/-[cpphs]: http://projects.haskell.org/cpphs/-[greencard]: http://hackage.haskell.org/package/greencard-[haddock]: http://www.haskell.org/haddock/-[HsColour]: http://www.cs.york.ac.uk/fp/darcs/hscolour/-[happy]: http://www.haskell.org/happy/-[Hackage]: http://hackage.haskell.org/-[pkg-config]: http://www.freedesktop.org/wiki/Software/pkg-config/-[REPL]: http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop-[PVP]: https://wiki.haskell.org/Package_versioning_policy
+ doc/developing-packages.rst view
@@ -0,0 +1,2861 @@+Quickstart+==========++Lets assume we have created a project directory and already have a+Haskell module or two.++Every project needs a name, we'll call this example "proglet".++.. highlight:: console++::++ $ cd proglet/+ $ ls+ Proglet.hs++It is assumed that (apart from external dependencies) all the files that+make up a package live under a common project root directory. This+simple example has all the project files in one directory, but most+packages will use one or more subdirectories.++To turn this into a Cabal package we need two extra files in the+project's root directory:++- ``proglet.cabal``: containing package metadata and build information.++- ``Setup.hs``: usually containing a few standardized lines of code,+ but can be customized if necessary.++We can create both files manually or we can use ``cabal init`` to create+them for us.++Using "cabal init"+------------------++The ``cabal init`` command is interactive. It asks us a number of+questions starting with the package name and version.++::++ $ cabal init+ Package name [default "proglet"]?+ Package version [default "0.1"]?+ ...++It also asks questions about various other bits of package metadata. For+a package that you never intend to distribute to others, these fields+can be left blank.++One of the important questions is whether the package contains a library+or an executable. Libraries are collections of Haskell modules that can+be re-used by other Haskell libraries and programs, while executables+are standalone programs.++::++ What does the package build:+ 1) Library+ 2) Executable+ Your choice?++For the moment these are the only choices. For more complex packages+(e.g. a library and multiple executables or test suites) the ``.cabal``+file can be edited afterwards.++Finally, ``cabal init`` creates the initial ``proglet.cabal`` and+``Setup.hs`` files, and depending on your choice of license, a+``LICENSE`` file as well.++::++ Generating LICENSE...+ Generating Setup.hs...+ Generating proglet.cabal...++ You may want to edit the .cabal file and add a Description field.++As this stage the ``proglet.cabal`` is not quite complete and before you+are able to build the package you will need to edit the file and add+some build information about the library or executable.++Editing the .cabal file+-----------------------++.. highlight:: cabal++Load up the ``.cabal`` file in a text editor. The first part of the+``.cabal`` file has the package metadata and towards the end of the file+you will find the :pkg-section:`executable` or :pkg-section:`library` section.++You will see that the fields that have yet to be filled in are commented+out. Cabal files use "``--``" Haskell-style comment syntax. (Note that+comments are only allowed on lines on their own. Trailing comments on+other lines are not allowed because they could be confused with program+options.)++If you selected earlier to create a library package then your ``.cabal``+file will have a section that looks like this:++::++ library+ exposed-modules: Proglet+ -- other-modules:+ -- build-depends:++Alternatively, if you selected an executable then there will be a+section like:++::++ executable proglet+ -- main-is:+ -- other-modules:+ -- build-depends:++The build information fields listed (but commented out) are just the few+most important and common fields. There are many others that are covered+later in this chapter.++Most of the build information fields are the same between libraries and+executables. The difference is that libraries have a number of "exposed"+modules that make up the public interface of the library, while+executables have a file containing a ``Main`` module.++The name of a library always matches the name of the package, so it is+not specified in the library section. Executables often follow the name+of the package too, but this is not required and the name is given+explicitly.++Modules included in the package+-------------------------------++For a library, ``cabal init`` looks in the project directory for files+that look like Haskell modules and adds all the modules to the+:pkg-field:`library:exposed-modules` field. For modules that do not form part+of your package's public interface, you can move those modules to the+:pkg-field:`other-modules` field. Either way, all modules in the library need+to be listed.++For an executable, ``cabal init`` does not try to guess which file+contains your program's ``Main`` module. You will need to fill in the+:pkg-field:`executable:main-is` field with the file name of your program's+``Main`` module (including ``.hs`` or ``.lhs`` extension). Other modules+included in the executable should be listed in the :pkg-field:`other-modules`+field.++Modules imported from other packages+------------------------------------++While your library or executable may include a number of modules, it+almost certainly also imports a number of external modules from the+standard libraries or other pre-packaged libraries. (These other+libraries are of course just Cabal packages that contain a library.)++You have to list all of the library packages that your library or+executable imports modules from. Or to put it another way: you have to+list all the other packages that your package depends on.++For example, suppose the example ``Proglet`` module imports the module+``Data.Map``. The ``Data.Map`` module comes from the ``containers``+package, so we must list it:++::++ library+ exposed-modules: Proglet+ other-modules:+ build-depends: containers, base == 4.*++In addition, almost every package also depends on the ``base`` library+package because it exports the standard ``Prelude`` module plus other+basic modules like ``Data.List``.++You will notice that we have listed ``base == 4.*``. This gives a+constraint on the version of the base package that our package will work+with. The most common kinds of constraints are:++- ``pkgname >= n``+- ``pkgname >= n && < m``+- ``pkgname == n.*``++The last is just shorthand, for example ``base == 4.*`` means exactly+the same thing as ``base >= 4 && < 5``.++Building the package+--------------------++For simple packages that's it! We can now try configuring and building+the package:++.. code-block:: console++ $ cabal configure+ $ cabal build++Assuming those two steps worked then you can also install the package:++.. code-block:: console++ $ cabal install++For libraries this makes them available for use in GHCi or to be used by+other packages. For executables it installs the program so that you can+run it (though you may first need to adjust your system's ``$PATH``).++Next steps+----------++What we have covered so far should be enough for very simple packages+that you use on your own system.++The next few sections cover more details needed for more complex+packages and details needed for distributing packages to other people.++The previous chapter covers building and installing packages -- your own+packages or ones developed by other people.++Package concepts+================++Before diving into the details of writing packages it helps to+understand a bit about packages in the Haskell world and the particular+approach that Cabal takes.++The point of packages+---------------------++Packages are a mechanism for organising and distributing code. Packages+are particularly suited for "programming in the large", that is building+big systems by using and re-using code written by different people at+different times.++People organise code into packages based on functionality and+dependencies. Social factors are also important: most packages have a+single author, or a relatively small team of authors.++Packages are also used for distribution: the idea is that a package can+be created in one place and be moved to a different computer and be+usable in that different environment. There are a surprising number of+details that have to be got right for this to work, and a good package+system helps to simply this process and make it reliable.++Packages come in two main flavours: libraries of reusable code, and+complete programs. Libraries present a code interface, an API, while+programs can be run directly. In the Haskell world, library packages+expose a set of Haskell modules as their public interface. Cabal+packages can contain a library or executables or both.++Some programming languages have packages as a builtin language concept.+For example in Java, a package provides a local namespace for types and+other definitions. In the Haskell world, packages are not a part of the+language itself. Haskell programs consist of a number of modules, and+packages just provide a way to partition the modules into sets of+related functionality. Thus the choice of module names in Haskell is+still important, even when using packages.++Package names and versions+--------------------------++All packages have a name, e.g. "HUnit". Package names are assumed to be+unique. Cabal package names may contain letters, numbers and hyphens,+but not spaces and may also not contain a hyphened section consisting of+only numbers. The namespace for Cabal packages is flat, not+hierarchical.++Packages also have a version, e.g "1.1". This matches the typical way in+which packages are developed. Strictly speaking, each version of a+package is independent, but usually they are very similar. Cabal package+versions follow the conventional numeric style, consisting of a sequence+of digits such as "1.0.1" or "2.0". There are a range of common+conventions for "versioning" packages, that is giving some meaning to+the version number in terms of changes in the package. Section [TODO]+has some tips on package versioning.++The combination of package name and version is called the *package ID*+and is written with a hyphen to separate the name and version, e.g.+"HUnit-1.1".++For Cabal packages, the combination of the package name and version+*uniquely* identifies each package. Or to put it another way: two+packages with the same name and version are considered to *be* the same.++Strictly speaking, the package ID only identifies each Cabal *source*+package; the same Cabal source package can be configured and built in+different ways. There is a separate installed package ID that uniquely+identifies each installed package instance. Most of the time however,+users need not be aware of this detail.++Kinds of package: Cabal vs GHC vs system+----------------------------------------++It can be slightly confusing at first because there are various+different notions of package floating around. Fortunately the details+are not very complicated.++Cabal packages+ Cabal packages are really source packages. That is they contain+ Haskell (and sometimes C) source code.++ Cabal packages can be compiled to produce GHC packages. They can+ also be translated into operating system packages.++GHC packages+ This is GHC's view on packages. GHC only cares about library+ packages, not executables. Library packages have to be registered+ with GHC for them to be available in GHCi or to be used when+ compiling other programs or packages.++ The low-level tool ``ghc-pkg`` is used to register GHC packages and+ to get information on what packages are currently registered.++ You never need to make GHC packages manually. When you build and+ install a Cabal package containing a library then it gets registered+ with GHC automatically.++ Haskell implementations other than GHC have essentially the same+ concept of registered packages. For the most part, Cabal hides the+ slight differences.++Operating system packages+ On operating systems like Linux and Mac OS X, the system has a+ specific notion of a package and there are tools for installing and+ managing packages.++ The Cabal package format is designed to allow Cabal packages to be+ translated, mostly-automatically, into operating system packages.+ They are usually translated 1:1, that is a single Cabal package+ becomes a single system package.++ It is also possible to make Windows installers from Cabal packages,+ though this is typically done for a program together with all of its+ library dependencies, rather than packaging each library separately.++Unit of distribution+--------------------++The Cabal package is the unit of distribution. What this means is that+each Cabal package can be distributed on its own in source or binary+form. Of course there may dependencies between packages, but there is+usually a degree of flexibility in which versions of packages can work+together so distributing them independently makes sense.++It is perhaps easiest to see what being "the unit of distribution"+means by contrast to an alternative approach. Many projects are made up+of several interdependent packages and during development these might+all be kept under one common directory tree and be built and tested+together. When it comes to distribution however, rather than+distributing them all together in a single tarball, it is required that+they each be distributed independently in their own tarballs.++Cabal's approach is to say that if you can specify a dependency on a+package then that package should be able to be distributed+independently. Or to put it the other way round, if you want to+distribute it as a single unit, then it should be a single package.++Explicit dependencies and automatic package management+------------------------------------------------------++Cabal takes the approach that all packages dependencies are specified+explicitly and specified in a declarative way. The point is to enable+automatic package management. This means tools like ``cabal`` can+resolve dependencies and install a package plus all of its dependencies+automatically. Alternatively, it is possible to mechanically (or mostly+mechanically) translate Cabal packages into system packages and let the+system package manager install dependencies automatically.++It is important to track dependencies accurately so that packages can+reliably be moved from one system to another system and still be able to+build it there. Cabal is therefore relatively strict about specifying+dependencies. For example Cabal's default build system will not even let+code build if it tries to import a module from a package that isn't+listed in the ``.cabal`` file, even if that package is actually+installed. This helps to ensure that there are no "untracked+dependencies" that could cause the code to fail to build on some other+system.++The explicit dependency approach is in contrast to the traditional+"./configure" approach where instead of specifying dependencies+declaratively, the ``./configure`` script checks if the dependencies are+present on the system. Some manual work is required to transform a+``./configure`` based package into a Linux distribution package (or+similar). This conversion work is usually done by people other than the+package author(s). The practical effect of this is that only the most+popular packages will benefit from automatic package management.+Instead, Cabal forces the original author to specify the dependencies+but the advantage is that every package can benefit from automatic+package management.++The "./configure" approach tends to encourage packages that adapt+themselves to the environment in which they are built, for example by+disabling optional features so that they can continue to work when a+particular dependency is not available. This approach makes sense in a+world where installing additional dependencies is a tiresome manual+process and so minimising dependencies is important. The automatic+package management view is that packages should just declare what they+need and the package manager will take responsibility for ensuring that+all the dependencies are installed.++Sometimes of course optional features and optional dependencies do make+sense. Cabal packages can have optional features and varying+dependencies. These conditional dependencies are still specified in a+declarative way however and remain compatible with automatic package+management. The need to remain compatible with automatic package+management means that Cabal's conditional dependencies system is a bit+less flexible than with the "./configure" approach.++Portability+-----------++One of the purposes of Cabal is to make it easier to build packages on+different platforms (operating systems and CPU architectures), with+different compiler versions and indeed even with different Haskell+implementations. (Yes, there are Haskell implementations other than+GHC!)++Cabal provides abstractions of features present in different Haskell+implementations and wherever possible it is best to take advantage of+these to increase portability. Where necessary however it is possible to+use specific features of specific implementations.++For example a package author can list in the package's ``.cabal`` what+language extensions the code uses. This allows Cabal to figure out if+the language extension is supported by the Haskell implementation that+the user picks. Additionally, certain language extensions such as+Template Haskell require special handling from the build system and by+listing the extension it provides the build system with enough+information to do the right thing.++Another similar example is linking with foreign libraries. Rather than+specifying GHC flags directly, the package author can list the libraries+that are needed and the build system will take care of using the right+flags for the compiler. Additionally this makes it easier for tools to+discover what system C libraries a package needs, which is useful for+tracking dependencies on system libraries (e.g. when translating into+Linux distribution packages).++In fact both of these examples fall into the category of explicitly+specifying dependencies. Not all dependencies are other Cabal packages.+Foreign libraries are clearly another kind of dependency. It's also+possible to think of language extensions as dependencies: the package+depends on a Haskell implementation that supports all those extensions.++Where compiler-specific options are needed however, there is an "escape+hatch" available. The developer can specify implementation-specific+options and more generally there is a configuration mechanism to+customise many aspects of how a package is built depending on the+Haskell implementation, the operating system, computer architecture and+user-specified configuration flags.++Developing packages+===================++The Cabal package is the unit of distribution. When installed, its+purpose is to make available:++- One or more Haskell programs.++- At most one library, exposing a number of Haskell modules.++However having both a library and executables in a package does not work+very well; if the executables depend on the library, they must+explicitly list all the modules they directly or indirectly import from+that library. Fortunately, starting with Cabal 1.8.0.4, executables can+also declare the package that they are in as a dependency, and Cabal+will treat them as if they were in another package that depended on the+library.++Internally, the package may consist of much more than a bunch of Haskell+modules: it may also have C source code and header files, source code+meant for preprocessing, documentation, test cases, auxiliary tools etc.++A package is identified by a globally-unique *package name*, which+consists of one or more alphanumeric words separated by hyphens. To+avoid ambiguity, each of these words should contain at least one letter.+Chaos will result if two distinct packages with the same name are+installed on the same system. A particular version of the package is+distinguished by a *version number*, consisting of a sequence of one or+more integers separated by dots. These can be combined to form a single+text string called the *package ID*, using a hyphen to separate the name+from the version, e.g. "``HUnit-1.1``".++.. Note::++ Packages are not part of the Haskell language; they simply+ populate the hierarchical space of module names. In GHC 6.6 and later a+ program may contain multiple modules with the same name if they come+ from separate packages; in all other current Haskell systems packages+ may not overlap in the modules they provide, including hidden modules.++Creating a package+------------------++Suppose you have a directory hierarchy containing the source files that+make up your package. You will need to add two more files to the root+directory of the package:++:file:`{package}.cabal`+ a Unicode UTF-8 text file containing a package description. For+ details of the syntax of this file, see the section on+ `package descriptions`_.++:file:`Setup.hs`+ a single-module Haskell program to perform various setup tasks (with+ the interface described in the section on :ref:`installing-packages`).+ This module should import only modules that will be present in all Haskell+ implementations, including modules of the Cabal library. The content of+ this file is determined by the :pkg-field:`build-type` setting in the+ ``.cabal`` file. In most cases it will be trivial, calling on the Cabal+ library to do most of the work.++Once you have these, you can create a source bundle of this directory+for distribution. Building of the package is discussed in the section on+:ref:`installing-packages`.++One of the purposes of Cabal is to make it easier to build a package+with different Haskell implementations. So it provides abstractions of+features present in different Haskell implementations and wherever+possible it is best to take advantage of these to increase portability.+Where necessary however it is possible to use specific features of+specific implementations. For example one of the pieces of information a+package author can put in the package's ``.cabal`` file is what language+extensions the code uses. This is far preferable to specifying flags for+a specific compiler as it allows Cabal to pick the right flags for the+Haskell implementation that the user picks. It also allows Cabal to+figure out if the language extension is even supported by the Haskell+implementation that the user picks. Where compiler-specific options are+needed however, there is an "escape hatch" available. The developer can+specify implementation-specific options and more generally there is a+configuration mechanism to customise many aspects of how a package is+built depending on the Haskell implementation, the Operating system,+computer architecture and user-specified configuration flags.++::++ name: Foo+ version: 1.0++ library+ build-depends: base+ exposed-modules: Foo+ extensions: ForeignFunctionInterface+ ghc-options: -Wall+ if os(windows)+ build-depends: Win32++Example: A package containing a simple library+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^++The HUnit package contains a file ``HUnit.cabal`` containing:++::++ name: HUnit+ version: 1.1.1+ synopsis: A unit testing framework for Haskell+ homepage: http://hunit.sourceforge.net/+ category: Testing+ author: Dean Herington+ license: BSD3+ license-file: LICENSE+ cabal-version: >= 1.10+ build-type: Simple++ library+ build-depends: base >= 2 && < 4+ exposed-modules: Test.HUnit.Base, Test.HUnit.Lang,+ Test.HUnit.Terminal, Test.HUnit.Text, Test.HUnit+ default-extensions: CPP++and the following ``Setup.hs``:++.. code-block:: haskell++ import Distribution.Simple+ main = defaultMain++Example: A package containing executable programs+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^++::++ name: TestPackage+ version: 0.0+ synopsis: Small package with two programs+ author: Angela Author+ license: BSD3+ build-type: Simple+ cabal-version: >= 1.2++ executable program1+ build-depends: HUnit+ main-is: Main.hs+ hs-source-dirs: prog1++ executable program2+ main-is: Main.hs+ build-depends: HUnit+ hs-source-dirs: prog2+ other-modules: Utils++with ``Setup.hs`` the same as above.++Example: A package containing a library and executable programs+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^++::++ name: TestPackage+ version: 0.0+ synopsis: Package with library and two programs+ license: BSD3+ author: Angela Author+ build-type: Simple+ cabal-version: >= 1.2++ library+ build-depends: HUnit+ exposed-modules: A, B, C++ executable program1+ main-is: Main.hs+ hs-source-dirs: prog1+ other-modules: A, B++ executable program2+ main-is: Main.hs+ hs-source-dirs: prog2+ other-modules: A, C, Utils++with ``Setup.hs`` the same as above. Note that any library modules+required (directly or indirectly) by an executable must be listed again.++The trivial setup script used in these examples uses the *simple build+infrastructure* provided by the Cabal library (see+`Distribution.Simple <../release/cabal-latest/doc/API/Cabal/Distribution-Simple.html>`__).+The simplicity lies in its interface rather that its implementation. It+automatically handles preprocessing with standard preprocessors, and+builds packages for all the Haskell implementations.++The simple build infrastructure can also handle packages where building+is governed by system-dependent parameters, if you specify a little more+(see the section on `system-dependent parameters`_).+A few packages require `more elaborate solutions <more complex packages>`_.++Package descriptions+--------------------++The package description file must have a name ending in "``.cabal``". It+must be a Unicode text file encoded using valid UTF-8. There must be+exactly one such file in the directory. The first part of the name is+usually the package name, and some of the tools that operate on Cabal+packages require this.++In the package description file, lines whose first non-whitespace+characters are "``--``" are treated as comments and ignored.++This file should contain of a number global property descriptions and+several sections.++- The `package properties`_ describe the package+ as a whole, such as name, license, author, etc.++- Optionally, a number of *configuration flags* can be declared. These+ can be used to enable or disable certain features of a package. (see+ the section on `configurations`_).++- The (optional) library section specifies the `library`_ properties and+ relevant `build information`_.++- Following is an arbitrary number of executable sections which describe+ an executable program and relevant `build information`_.++Each section consists of a number of property descriptions in the form+of field/value pairs, with a syntax roughly like mail message headers.++- Case is not significant in field names, but is significant in field+ values.++- To continue a field value, indent the next line relative to the field+ name.++- Field names may be indented, but all field values in the same section+ must use the same indentation.++- Tabs are *not* allowed as indentation characters due to a missing+ standard interpretation of tab width.++- To get a blank line in a field value, use an indented "``.``"++The syntax of the value depends on the field. Field types include:++*token*, *filename*, *directory*+ Either a sequence of one or more non-space non-comma characters, or+ a quoted string in Haskell 98 lexical syntax. The latter can be used+ for escaping whitespace, for example:+ ``ghc-options: -Wall "-with-rtsopts=-T -I1"``. Unless otherwise+ stated, relative filenames and directories are interpreted from the+ package root directory.+*freeform*, *URL*, *address*+ An arbitrary, uninterpreted string.+*identifier*+ A letter followed by zero or more alphanumerics or underscores.+*compiler*+ A compiler flavor (one of: ``GHC``, ``JHC``, ``UHC`` or ``LHC``)+ followed by a version range. For example, ``GHC ==6.10.3``, or+ ``LHC >=0.6 && <0.8``.++Modules and preprocessors+^^^^^^^^^^^^^^^^^^^^^^^^^++Haskell module names listed in the :pkg-field:`library:exposed-modules` and+:pkg-field:`library:other-modules` fields may correspond to Haskell source+files, i.e. with names ending in "``.hs``" or "``.lhs``", or to inputs for+various Haskell preprocessors. The simple build infrastructure understands the+extensions:++- ``.gc`` (:hackage-pkg:`greencard`)+- ``.chs`` (:hackage-pkg:`c2hs`)+- ``.hsc`` (:hackage-pkg:`hsc2hs`)+- ``.y`` and ``.ly`` (happy_)+- ``.x`` (alex_)+- ``.cpphs`` (cpphs_)++When building, Cabal will automatically run the appropriate preprocessor+and compile the Haskell module it produces. For the ``c2hs`` and+``hsc2hs`` preprocessors, Cabal will also automatically add, compile and+link any C sources generated by the preprocessor (produced by+``hsc2hs``'s ``#def`` feature or ``c2hs``'s auto-generated wrapper+functions).++Some fields take lists of values, which are optionally separated by+commas, except for the :pkg-field:`build-depends` field, where the commas are+mandatory.++Some fields are marked as required. All others are optional, and unless+otherwise specified have empty default values.++Package properties+^^^^^^^^^^^^^^^^^^++These fields may occur in the first top-level properties section and+describe the package as a whole:++.. pkg-field:: name: package-name (required)++ The unique name of the package, without the version number.++.. pkg-field:: version: numbers (required)++ The package version number, usually consisting of a sequence of+ natural numbers separated by dots.++.. pkg-field:: cabal-version: >= x.y++ The version of the Cabal specification that this package description+ uses. The Cabal specification does slowly evolve, introducing new+ features and occasionally changing the meaning of existing features.+ By specifying which version of the spec you are using it enables+ programs which process the package description to know what syntax+ to expect and what each part means.++ For historical reasons this is always expressed using *>=* version+ range syntax. No other kinds of version range make sense, in+ particular upper bounds do not make sense. In future this field will+ specify just a version number, rather than a version range.++ The version number you specify will affect both compatibility and+ behaviour. Most tools (including the Cabal library and cabal+ program) understand a range of versions of the Cabal specification.+ Older tools will of course only work with older versions of the+ Cabal specification. Most of the time, tools that are too old will+ recognise this fact and produce a suitable error message.++ As for behaviour, new versions of the Cabal spec can change the+ meaning of existing syntax. This means if you want to take advantage+ of the new meaning or behaviour then you must specify the newer+ Cabal version. Tools are expected to use the meaning and behaviour+ appropriate to the version given in the package description.++ In particular, the syntax of package descriptions changed+ significantly with Cabal version 1.2 and the :pkg-field:`cabal-version`+ field is now required. Files written in the old syntax are still+ recognized, so if you require compatibility with very old Cabal+ versions then you may write your package description file using the+ old syntax. Please consult the user's guide of an older Cabal+ version for a description of that syntax.++.. pkg-field:: build-type: identifier++ :default: ``Custom``++ The type of build used by this package. Build types are the+ constructors of the+ `BuildType <../release/cabal-latest/doc/API/Cabal/Distribution-PackageDescription.html#t:BuildType>`__+ type, defaulting to ``Custom``.++ If the build type is anything other than ``Custom``, then the+ ``Setup.hs`` file *must* be exactly the standardized content+ discussed below. This is because in these cases, ``cabal`` will+ ignore the ``Setup.hs`` file completely, whereas other methods of+ package management, such as ``runhaskell Setup.hs [CMD]``, still+ rely on the ``Setup.hs`` file.++ For build type ``Simple``, the contents of ``Setup.hs`` must be:++ .. code-block:: haskell++ import Distribution.Simple+ main = defaultMain++ For build type ``Configure`` (see the section on `system-dependent+ parameters`_ below), the contents of+ ``Setup.hs`` must be:++ .. code-block:: haskell++ import Distribution.Simple+ main = defaultMainWithHooks autoconfUserHooks++ For build type ``Make`` (see the section on `more complex packages`_ below),+ the contents of ``Setup.hs`` must be:++ .. code-block:: haskell++ import Distribution.Make+ main = defaultMain++ For build type ``Custom``, the file ``Setup.hs`` can be customized,+ and will be used both by ``cabal`` and other tools.++ For most packages, the build type ``Simple`` is sufficient.++.. pkg-field:: license: identifier++ :default: ``AllRightsReserved``++ The type of license under which this package is distributed. License+ names are the constants of the+ `License <../release/cabal-latest/doc/API/Cabal/Distribution-License.html#t:License>`__+ type.++.. pkg-field:: license-file: filename+.. pkg-field:: license-files: filename list++ The name of a file(s) containing the precise copyright license for+ this package. The license file(s) will be installed with the+ package.++ If you have multiple license files then use the :pkg-field:`license-files`+ field instead of (or in addition to) the :pkg-field:`license-file` field.++.. pkg-field:: copyright: freeform++ The content of a copyright notice, typically the name of the holder+ of the copyright on the package and the year(s) from which copyright+ is claimed. For example::++ copyright: (c) 2006-2007 Joe Bloggs++.. pkg-field:: author: freeform++ The original author of the package.++ Remember that ``.cabal`` files are Unicode, using the UTF-8+ encoding.++.. pkg-field:: maintainer: address++ The current maintainer or maintainers of the package. This is an+ e-mail address to which users should send bug reports, feature+ requests and patches.++.. pkg-field:: stability: freeform++ The stability level of the package, e.g. ``alpha``,+ ``experimental``, ``provisional``, ``stable``.++.. pkg-field:: homepage: URL++ The package homepage.++.. pkg-field:: bug-reports: URL++ The URL where users should direct bug reports. This would normally+ be either:++ - A ``mailto:`` URL, e.g. for a person or a mailing list.++ - An ``http:`` (or ``https:``) URL for an online bug tracking+ system.++ For example Cabal itself uses a web-based bug tracking system++ ::++ bug-reports: https://github.com/haskell/cabal/issues++.. pkg-field:: package-url: URL++ The location of a source bundle for the package. The distribution+ should be a Cabal package.++.. pkg-field:: synopsis: freeform++ A very short description of the package, for use in a table of+ packages. This is your headline, so keep it short (one line) but as+ informative as possible. Save space by not including the package+ name or saying it's written in Haskell.++.. pkg-field:: description: freeform++ Description of the package. This may be several paragraphs, and+ should be aimed at a Haskell programmer who has never heard of your+ package before.++ For library packages, this field is used as prologue text by+ :ref:`setup-haddock` and thus may contain the same markup as Haddock_+ documentation comments.++.. pkg-field:: category: freeform++ A classification category for future use by the package catalogue+ Hackage_. These categories have not+ yet been specified, but the upper levels of the module hierarchy+ make a good start.++.. pkg-field:: tested-with: compiler list++ A list of compilers and versions against which the package has been+ tested (or at least built).++.. pkg-field:: data-files: filename list++ A list of files to be installed for run-time use by the package.+ This is useful for packages that use a large amount of static data,+ such as tables of values or code templates. Cabal provides a way to+ `find these files at run-time <accessing data files from package code>`_.++ A limited form of ``*`` wildcards in file names, for example+ ``data-files: images/*.png`` matches all the ``.png`` files in the+ ``images`` directory.++ The limitation is that ``*`` wildcards are only allowed in place of+ the file name, not in the directory name or file extension. In+ particular, wildcards do not include directories contents+ recursively. Furthermore, if a wildcard is used it must be used with+ an extension, so ``data-files: data/*`` is not allowed. When+ matching a wildcard plus extension, a file's full extension must+ match exactly, so ``*.gz`` matches ``foo.gz`` but not+ ``foo.tar.gz``. A wildcard that does not match any files is an+ error.++ The reason for providing only a very limited form of wildcard is to+ concisely express the common case of a large number of related files+ of the same file type without making it too easy to accidentally+ include unwanted files.++.. pkg-field:: data-dir: directory++ The directory where Cabal looks for data files to install, relative+ to the source directory. By default, Cabal will look in the source+ directory itself.++.. pkg-field:: extra-source-files: filename list++ A list of additional files to be included in source distributions+ built with :ref:`setup-sdist`. As with :pkg-field:`data-files` it can use+ a limited form of ``*`` wildcards in file names.++.. pkg-field:: extra-doc-files: filename list++ A list of additional files to be included in source distributions,+ and also copied to the html directory when Haddock documentation is+ generated. As with :pkg-field:`data-files` it can use a limited form of+ ``*`` wildcards in file names.++.. pkg-field:: extra-tmp-files: filename list++ A list of additional files or directories to be removed by+ :ref:`setup-clean`. These would typically be additional files created by+ additional hooks, such as the scheme described in the section on+ `system-dependent parameters`_++Library+^^^^^^^++.. pkg-section:: library+ :synopsis: Library build information.++ Build information for libraries. There can be only one library in a+ package, and it's name is the same as package name set by global+ :pkg-field:`name` field.++The library section should contain the following fields:++.. pkg-field:: exposed-modules: identifier list++ :required: if this package contains a library++ A list of modules added by this package.++.. pkg-field:: exposed: boolean++ :default: ``True``++ Some Haskell compilers (notably GHC) support the notion of packages+ being "exposed" or "hidden" which means the modules they provide can+ be easily imported without always having to specify which package+ they come from. However this only works effectively if the modules+ provided by all exposed packages do not overlap (otherwise a module+ import would be ambiguous).++ Almost all new libraries use hierarchical module names that do not+ clash, so it is very uncommon to have to use this field. However it+ may be necessary to set ``exposed: False`` for some old libraries+ that use a flat module namespace or where it is known that the+ exposed modules would clash with other common modules.++.. pkg-field:: reexported-modules: exportlist++ Supported only in GHC 7.10 and later. A list of modules to+ *reexport* from this package. The syntax of this field is+ ``orig-pkg:Name as NewName`` to reexport module ``Name`` from+ ``orig-pkg`` with the new name ``NewName``. We also support+ abbreviated versions of the syntax: if you omit ``as NewName``,+ we'll reexport without renaming; if you omit ``orig-pkg``, then we+ will automatically figure out which package to reexport from, if+ it's unambiguous.++ Reexported modules are useful for compatibility shims when a package+ has been split into multiple packages, and they have the useful+ property that if a package provides a module, and another package+ reexports it under the same name, these are not considered a+ conflict (as would be the case with a stub module.) They can also be+ used to resolve name conflicts.++The library section may also contain build information fields (see the+section on `build information`_).++Cabal 2.0 and later support "internal libraries", which are extra named+libraries (as opposed to the usual unnamed library section). For+example, suppose that your test suite needs access to some internal+modules in your library, which you do not otherwise want to export. You+could put these modules in an internal library, which the main library+and the test suite :pkg-field:`build-depends` upon. Then your Cabal file might+look something like this:++::++ name: foo+ version: 1.0+ license: BSD3+ cabal-version: >= 1.23+ build-type: Simple++ library foo-internal+ exposed-modules: Foo.Internal+ build-depends: base++ library+ exposed-modules: Foo.Public+ build-depends: foo-internal, base++ test-suite test-foo+ type: exitcode-stdio-1.0+ main-is: test-foo.hs+ build-depends: foo-internal, base++Internal libraries are also useful for packages that define multiple+executables, but do not define a publically accessible library. Internal+libraries are only visible internally in the package (so they can only+be added to the :pkg-field:`build-depends` of same-package libraries,+executables, test suites, etc.) Internal libraries locally shadow any+packages which have the same name (so don't name an internal library+with the same name as an external dependency.)++Opening an interpreter session+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^++While developing a package, it is often useful to make its code+available inside an interpreter session. This can be done with the+``repl`` command:++.. code-block:: console++ $ cabal repl++The name comes from the acronym+`REPL <http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`__,+which stands for "read-eval-print-loop". By default ``cabal repl`` loads+the first component in a package. If the package contains several named+components, the name can be given as an argument to ``repl``. The name+can be also optionally prefixed with the component's type for+disambiguation purposes. Example:++.. code-block:: console++ $ cabal repl foo+ $ cabal repl exe:foo+ $ cabal repl test:bar+ $ cabal repl bench:baz++Freezing dependency versions+""""""""""""""""""""""""""""++If a package is built in several different environments, such as a+development environment, a staging environment and a production+environment, it may be necessary or desirable to ensure that the same+dependency versions are selected in each environment. This can be done+with the ``freeze`` command:++.. code-block:: console++ $ cabal freeze++The command writes the selected version for all dependencies to the+``cabal.config`` file. All environments which share this file will use+the dependency versions specified in it.++Generating dependency version bounds+""""""""""""""""""""""""""""""""""""++Cabal also has the ability to suggest dependency version bounds that+conform to `Package Versioning Policy`_, which is+a recommended versioning system for publicly released Cabal packages.+This is done by running the ``gen-bounds`` command:++.. code-block:: console++ $ cabal gen-bounds++For example, given the following dependencies specified in+:pkg-field:`build-depends`:++::++ build-depends:+ foo == 0.5.2+ bar == 1.1++``gen-bounds`` will suggest changing them to the following:++::++ build-depends:+ foo >= 0.5.2 && < 0.6+ bar >= 1.1 && < 1.2++Listing outdated dependency version bounds+""""""""""""""""""""""""""""""""""""""""""++Manually updating dependency version bounds in a ``.cabal`` file or a+freeze file can be tedious, especially when there's a lot of+dependencies. The ``cabal outdated`` command is designed to help with+that. It will print a list of packages for which there is a new+version on Hackage that is outside the version bound specified in the+``build-depends`` field. The ``outdated`` command can also be+configured to act on the freeze file (both old- and new-style) and+ignore major (or all) version bumps on Hackage for a subset of+dependencies.++The following flags are supported by the ``outdated`` command:++``--freeze-file``+ Read dependency version bounds from the freeze file (``cabal.config``)+ instead of the package description file (``$PACKAGENAME.cabal``).+``--new-freeze-file``+ Read dependency version bounds from the new-style freeze file+ (``cabal.project.freeze``) instead of the package description file.+``--simple-output``+ Print only the names of outdated dependencies, one per line.+``--exit-code``+ Exit with a non-zero exit code when there are outdated dependencies.+``-q, --quiet``+ Don't print any output. Implies ``-v0`` and ``--exit-code``.+``--ignore`` *PACKAGENAMES*+ Don't warn about outdated dependency version bounds for the packages in this+ list.+``--minor`` *[PACKAGENAMES]*+ Ignore major version bumps for these packages. E.g. if there's a version 2.0+ of a package ``pkg`` on Hackage and the freeze file specifies the constraint+ ``pkg == 1.9``, ``cabal outdated --freeze --minor=pkg`` will only consider+ the ``pkg`` outdated when there's a version of ``pkg`` on Hackage satisfying+ ``pkg > 1.9 && < 2.0``. ``--minor`` can also be used without arguments, in+ that case major version bumps are ignored for all packages.++Examples:++.. code-block:: console++ $ cd /some/package+ $ cabal outdated+ Outdated dependencies:+ haskell-src-exts <1.17 (latest: 1.19.1)+ language-javascript <0.6 (latest: 0.6.0.9)+ unix ==2.7.2.0 (latest: 2.7.2.1)++ $ cabal outdated --simple-output+ haskell-src-exts+ language-javascript+ unix++ $ cabal outdated --ignore=haskell-src-exts+ Outdated dependencies:+ language-javascript <0.6 (latest: 0.6.0.9)+ unix ==2.7.2.0 (latest: 2.7.2.1)++ $ cabal outdated --ignore=haskell-src-exts,language-javascript,unix+ All dependencies are up to date.++ $ cabal outdated --ignore=haskell-src-exts,language-javascript,unix -q+ $ echo $?+ 0++ $ cd /some/other/package+ $ cabal outdated --freeze-file+ Outdated dependencies:+ HTTP ==4000.3.3 (latest: 4000.3.4)+ HUnit ==1.3.1.1 (latest: 1.5.0.0)++ $ cabal outdated --freeze-file --ignore=HTTP --minor=HUnit+ Outdated dependencies:+ HUnit ==1.3.1.1 (latest: 1.3.1.2)+++Executables+^^^^^^^^^^^++.. pkg-section:: executable name+ :synopsis: Exectuable build info section.++ Executable sections (if present) describe executable programs contained+ in the package and must have an argument after the section label, which+ defines the name of the executable. This is a freeform argument but may+ not contain spaces.++The executable may be described using the following fields, as well as+build information fields (see the section on `build information`_).++.. pkg-field:: main-is: filename (required)++ The name of the ``.hs`` or ``.lhs`` file containing the ``Main``+ module. Note that it is the ``.hs`` filename that must be listed,+ even if that file is generated using a preprocessor. The source file+ must be relative to one of the directories listed in+ :pkg-field:`hs-source-dirs`.++.. pkg-field:: scope: token++ Whether the executable is ``public`` (default) or ``private``, i.e. meant to+ be run by other programs rather than the user. Private executables are+ installed into `$libexecdir/$libexecsubdir`.++Running executables+"""""""""""""""""""++You can have Cabal build and run your executables by using the ``run``+command:++.. code-block:: console++ $ cabal run EXECUTABLE [-- EXECUTABLE_FLAGS]++This command will configure, build and run the executable+``EXECUTABLE``. The double dash separator is required to distinguish+executable flags from ``run``'s own flags. If there is only one+executable defined in the whole package, the executable's name can be+omitted. See the output of ``cabal help run`` for a list of options you+can pass to ``cabal run``.++Test suites+^^^^^^^^^^^++.. pkg-section:: test name+ :synopsis: Test suit build information.++ Test suite sections (if present) describe package test suites and must+ have an argument after the section label, which defines the name of the+ test suite. This is a freeform argument, but may not contain spaces. It+ should be unique among the names of the package's other test suites, the+ package's executables, and the package itself. Using test suite sections+ requires at least Cabal version 1.9.2.++The test suite may be described using the following fields, as well as+build information fields (see the section on `build information`_).++.. pkg-field:: type: interface (required)++ The interface type and version of the test suite. Cabal supports two+ test suite interfaces, called ``exitcode-stdio-1.0`` and+ ``detailed-0.9``. Each of these types may require or disallow other+ fields as described below.++Test suites using the ``exitcode-stdio-1.0`` interface are executables+that indicate test failure with a non-zero exit code when run; they may+provide human-readable log information through the standard output and+error channels. The ``exitcode-stdio-1.0`` type requires the ``main-is``+field.++.. pkg-field:: main-is: filename+ :synopsis: Module containing tests main function.++ :required: ``exitcode-stdio-1.0``+ :disallowed: ``detailed-0.9``++ The name of the ``.hs`` or ``.lhs`` file containing the ``Main``+ module. Note that it is the ``.hs`` filename that must be listed,+ even if that file is generated using a preprocessor. The source file+ must be relative to one of the directories listed in+ :pkg-field:`hs-source-dirs`. This field is analogous to the ``main-is`` field+ of an executable section.++Test suites using the ``detailed-0.9`` interface are modules exporting+the symbol ``tests :: IO [Test]``. The ``Test`` type is exported by the+module ``Distribution.TestSuite`` provided by Cabal. For more details,+see the example below.++The ``detailed-0.9`` interface allows Cabal and other test agents to+inspect a test suite's results case by case, producing detailed human-+and machine-readable log files. The ``detailed-0.9`` interface requires+the :pkg-field:`test-module` field.++.. pkg-field:: test-module: identifier++ :required: ``detailed-0.9``+ :disallowed: ``exitcode-stdio-1.0``++ The module exporting the ``tests`` symbol.++Example: Package using ``exitcode-stdio-1.0`` interface+"""""""""""""""""""""""""""""""""""""""""""""""""""""""++The example package description and executable source file below+demonstrate the use of the ``exitcode-stdio-1.0`` interface.++.. code-block:: cabal+ :caption: foo.cabal++ Name: foo+ Version: 1.0+ License: BSD3+ Cabal-Version: >= 1.9.2+ Build-Type: Simple++ Test-Suite test-foo+ type: exitcode-stdio-1.0+ main-is: test-foo.hs+ build-depends: base++.. code-block:: haskell+ :caption: test-foo.hs++ module Main where++ import System.Exit (exitFailure)++ main = do+ putStrLn "This test always fails!"+ exitFailure++Example: Package using ``detailed-0.9`` interface+"""""""""""""""""""""""""""""""""""""""""""""""""++The example package description and test module source file below+demonstrate the use of the ``detailed-0.9`` interface. The test module+also develops a simple implementation of the interface set by+``Distribution.TestSuite``, but in actual usage the implementation would+be provided by the library that provides the testing facility.++.. code-block:: cabal+ :caption: bar.cabal++ Name: bar+ Version: 1.0+ License: BSD3+ Cabal-Version: >= 1.9.2+ Build-Type: Simple++ Test-Suite test-bar+ type: detailed-0.9+ test-module: Bar+ build-depends: base, Cabal >= 1.9.2+++.. code-block:: haskell+ :caption: Bar.hs++ module Bar ( tests ) where++ import Distribution.TestSuite++ tests :: IO [Test]+ tests = return [ Test succeeds, Test fails ]+ where+ succeeds = TestInstance+ { run = return $ Finished Pass+ , name = "succeeds"+ , tags = []+ , options = []+ , setOption = \_ _ -> Right succeeds+ }+ fails = TestInstance+ { run = return $ Finished $ Fail "Always fails!"+ , name = "fails"+ , tags = []+ , options = []+ , setOption = \_ _ -> Right fails+ }++Running test suites+"""""""""""""""""""++You can have Cabal run your test suites using its built-in test runner:++::++ $ cabal configure --enable-tests+ $ cabal build+ $ cabal test++See the output of ``cabal help test`` for a list of options you can pass+to ``cabal test``.++Benchmarks+^^^^^^^^^^++.. pkg-section:: benchmark name+ :since: 1.9.2+ :synopsis: Benchmark build information.++ Benchmark sections (if present) describe benchmarks contained in the+ package and must have an argument after the section label, which defines+ the name of the benchmark. This is a freeform argument, but may not+ contain spaces. It should be unique among the names of the package's+ other benchmarks, the package's test suites, the package's executables,+ and the package itself. Using benchmark sections requires at least Cabal+ version 1.9.2.++The benchmark may be described using the following fields, as well as+build information fields (see the section on `build information`_).++.. pkg-field:: type: interface (required)++ The interface type and version of the benchmark. At the moment Cabal+ only support one benchmark interface, called ``exitcode-stdio-1.0``.++Benchmarks using the ``exitcode-stdio-1.0`` interface are executables+that indicate failure to run the benchmark with a non-zero exit code+when run; they may provide human-readable information through the+standard output and error channels.++.. pkg-field:: main-is: filename++ :required: ``exitcode-stdio-1.0``++ The name of the ``.hs`` or ``.lhs`` file containing the ``Main``+ module. Note that it is the ``.hs`` filename that must be listed,+ even if that file is generated using a preprocessor. The source file+ must be relative to one of the directories listed in+ :pkg-field:`hs-source-dirs`. This field is analogous to the ``main-is``+ field of an executable section.++Example: Package using ``exitcode-stdio-1.0`` interface+"""""""""""""""""""""""""""""""""""""""""""""""""""""""++The example package description and executable source file below+demonstrate the use of the ``exitcode-stdio-1.0`` interface.++.. code-block:: cabal+ :caption: foo.cabal+ :name: foo-bench.cabal++ Name: foo+ Version: 1.0+ License: BSD3+ Cabal-Version: >= 1.9.2+ Build-Type: Simple++ Benchmark bench-foo+ type: exitcode-stdio-1.0+ main-is: bench-foo.hs+ build-depends: base, time++.. code-block:: haskell+ :caption: bench-foo.hs++ {-# LANGUAGE BangPatterns #-}+ module Main where++ import Data.Time.Clock++ fib 0 = 1+ fib 1 = 1+ fib n = fib (n-1) + fib (n-2)++ main = do+ start <- getCurrentTime+ let !r = fib 20+ end <- getCurrentTime+ putStrLn $ "fib 20 took " ++ show (diffUTCTime end start)++Running benchmarks+""""""""""""""""""++You can have Cabal run your benchmark using its built-in benchmark+runner:++::++ $ cabal configure --enable-benchmarks+ $ cabal build+ $ cabal bench++See the output of ``cabal help bench`` for a list of options you can+pass to ``cabal bench``.++Foreign libraries+^^^^^^^^^^^^^^^^^++Foreign libraries are system libraries intended to be linked against+programs written in C or other "foreign" languages. They+come in two primary flavours: dynamic libraries (``.so`` files on Linux,+``.dylib`` files on OSX, ``.dll`` files on Windows, etc.) are linked against+executables when the executable is run (or even lazily during+execution), while static libraries (``.a`` files on Linux/OSX, ``.lib``+files on Windows) get linked against the executable at compile time.++Foreign libraries only work with GHC 7.8 and later.++A typical stanza for a foreign library looks like++::++ foreign-library myforeignlib+ type: native-shared+ lib-version-info: 6:3:2++ if os(Windows)+ options: standalone+ mod-def-file: MyForeignLib.def++ other-modules: MyForeignLib.SomeModule+ MyForeignLib.SomeOtherModule+ build-depends: base >=4.7 && <4.9+ hs-source-dirs: src+ c-sources: csrc/MyForeignLibWrapper.c+ default-language: Haskell2010++.. pkg-field:: type: foreign library type++ Cabal recognizes ``native-static`` and ``native-shared`` here, although+ we currently only support building `native-shared` libraries.++.. pkg-field:: options: foreign library option list++ Options for building the foreign library, typically specific to the+ specified type of foreign library. Currently we only support+ ``standalone`` here. A standalone dynamic library is one that does not+ have any dependencies on other (Haskell) shared libraries; without+ the ``standalone`` option the generated library would have dependencies+ on the Haskell runtime library (``libHSrts``), the base library+ (``libHSbase``), etc. Currently, ``standalone`` *must* be used on Windows+ and *must not* be used on any other platform.++.. pkg-field:: mod-def-file: filename++ This option can only be used when creating dynamic Windows libraries+ (that is, when using ``native-shared`` and the ``os`` is ``Windows``). If+ used, it must be a path to a _module definition file_. The details of+ module definition files are beyond the scope of this document; see the+ `GHC <https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/win32-dlls.html>`_+ manual for some details and some further pointers.++.. pkg-field:: lib-version-info: current:revision:age++ This field is currently only used on Linux.++ This field specifies a Libtool-style version-info field that sets+ an appropriate ABI version for the foreign library. Note that the+ three numbers specified in this field do not directly specify the+ actual ABI version: ``6:3:2`` results in library version ``4.2.3``.++ With this field set, the SONAME of the library is set, and symlinks+ are installed.++ How you should bump this field on an ABI change depends on the+ breakage you introduce:++ - Programs using the previous version may use the new version as+ drop-in replacement, and programs using the new version can also+ work with the previous one. In other words, no recompiling nor+ relinking is needed. In this case, bump ``revision`` only, don't+ touch current nor age.+ - Programs using the previous version may use the new version as+ drop-in replacement, but programs using the new version may use+ APIs not present in the previous one. In other words, a program+ linking against the new version may fail with "unresolved+ symbols" if linking against the old version at runtime: set+ revision to 0, bump current and age.+ - Programs may need to be changed, recompiled, and relinked in+ order to use the new version. Bump current, set revision and age+ to 0.++ Also refer to the Libtool documentation on the version-info field.++.. pkg-field:: lib-version-linux: version++ This field is only used on Linux.++ Specifies the library ABI version directly for foreign libraries+ built on Linux: so specifying ``4.2.3`` causes a library+ ``libfoo.so.4.2.3`` to be built with SONAME ``libfoo.so.4``, and+ appropriate symlinks ``libfoo.so.4`` and ``libfoo.so`` to be+ installed.++Note that typically foreign libraries should export a way to initialize+and shutdown the Haskell runtime. In the example above, this is done by+the ``csrc/MyForeignLibWrapper.c`` file, which might look something like++.. code-block:: c++ #include <stdlib.h>+ #include "HsFFI.h"++ HsBool myForeignLibInit(void){+ int argc = 2;+ char *argv[] = { "+RTS", "-A32m", NULL };+ char **pargv = argv;++ // Initialize Haskell runtime+ hs_init(&argc, &pargv);++ // do any other initialization here and+ // return false if there was a problem+ return HS_BOOL_TRUE;+ }++ void myForeignLibExit(void){+ hs_exit();+ }++With modern ghc regular libraries are installed in directories that contain+package keys. This isn't usually a problem because the package gets registered+in ghc's package DB and so we can figure out what the location of the library+is. Foreign libraries however don't get registered, which means that we'd have+to have a way of finding out where a platform library got installed (other than by+searching the ``lib/`` directory). Instead, we install foreign libraries in+``~/.cabal/lib``, much like we install executables in ``~/.cabal/bin``.++Build information+^^^^^^^^^^^^^^^^^+.. pkg-section:: None++The following fields may be optionally present in a library, executable,+test suite or benchmark section, and give information for the building+of the corresponding library or executable. See also the sections on+`system-dependent parameters`_ and `configurations`_ for a way to supply+system-dependent values for these fields.++.. pkg-field:: build-depends: package list++ A list of packages needed to build this one. Each package can be+ annotated with a version constraint.++ Version constraints use the operators ``==, >=, >, <, <=`` and a+ version number. Multiple constraints can be combined using ``&&`` or+ ``||``. If no version constraint is specified, any version is+ assumed to be acceptable. For example:++ ::++ library+ build-depends:+ base >= 2,+ foo >= 1.2.3 && < 1.3,+ bar++ Dependencies like ``foo >= 1.2.3 && < 1.3`` turn out to be very+ common because it is recommended practise for package versions to+ correspond to API versions (see PVP_).++ Since Cabal 1.6, there is a special wildcard syntax to help with+ such ranges++ ::++ build-depends: foo ==1.2.*++ It is only syntactic sugar. It is exactly equivalent to+ ``foo >= 1.2 && < 1.3``.++ Starting with Cabal 2.0, there's a new syntactic sugar to support+ PVP_-style+ major upper bounds conveniently, and is inspired by similiar+ syntactic sugar found in other language ecosystems where it's often+ called the "Caret" operator:++ ::++ build-depends: foo ^>= 1.2.3.4,+ bar ^>= 1++ The declaration above is exactly equivalent to++ ::++ build-depends: foo >= 1.2.3.4 && < 1.3,+ bar >= 1 && < 1.1++ .. Note::++ Prior to Cabal 1.8, ``build-depends`` specified in each+ section were global to all sections. This was unintentional, but+ some packages were written to depend on it, so if you need your+ :pkg-field:`build-depends` to be local to each section, you must specify+ at least ``Cabal-Version: >= 1.8`` in your ``.cabal`` file.++ .. Note::++ Cabal 1.20 experimentally supported module thinning and+ renaming in ``build-depends``; however, this support has since been+ removed and should not be used.++.. pkg-field:: other-modules: identifier list++ A list of modules used by the component but not exposed to users.+ For a library component, these would be hidden modules of the+ library. For an executable, these would be auxiliary modules to be+ linked with the file named in the ``main-is`` field.++ .. Note::++ Every module in the package *must* be listed in one of+ :pkg-field:`other-modules`, :pkg-field:`library:exposed-modules` or+ :pkg-field:`executable:main-is` fields.++.. pkg-field:: hs-source-dirs: directory list++ :default: ``.``++ Root directories for the module hierarchy.++ For backwards compatibility, the old variant ``hs-source-dir`` is+ also recognized.++.. pkg-field:: default-extensions: identifier list++ A list of Haskell extensions used by every module. These determine+ corresponding compiler options enabled for all files. Extension+ names are the constructors of the+ `Extension <../release/cabal-latest/doc/API/Cabal/Language-Haskell-Extension.html#t:Extension>`__+ type. For example, ``CPP`` specifies that Haskell source files are+ to be preprocessed with a C preprocessor.++.. pkg-field:: other-extensions: identifier list++ A list of Haskell extensions used by some (but not necessarily all)+ modules. From GHC version 6.6 onward, these may be specified by+ placing a ``LANGUAGE`` pragma in the source files affected e.g.++ .. code-block:: haskell++ {-# LANGUAGE CPP, MultiParamTypeClasses #-}++ In Cabal-1.24 the dependency solver will use this and+ :pkg-field:`default-extensions` information. Cabal prior to 1.24 will abort+ compilation if the current compiler doesn't provide the extensions.++ If you use some extensions conditionally, using CPP or conditional+ module lists, it is good to replicate the condition in+ :pkg-field:`other-extensions` declarations:++ ::++ other-extensions: CPP+ if impl(ghc >= 7.5)+ other-extensions: PolyKinds++ You could also omit the conditionally used extensions, as they are+ for information only, but it is recommended to replicate them in+ :pkg-field:`other-extensions` declarations.++.. pkg-field:: extensions: identifier list+ :deprecated:++ Deprecated in favor of :pkg-field:`default-extensions`.++.. pkg-field:: build-tool-depends: package:executable list++ A list of Haskell programs needed to build this component.+ Each is specified by the package containing the executable and the name of the executable itself, separated by a colon, and optionally followed by a version bound.+ It is fine for the package to be the current one, in which case this is termed an *internal*, rather than *external* executable dependency.++ External dependencies can (and should) contain a version bound like conventional :pkg-field:`build-depends` dependencies.+ Internal deps should not contain a version bound, as they will be always resolved within the same configuration of the package in the build plan.+ Specifically, version bounds that include the package's version will be warned for being extraneous, and version bounds that exclude the package's version will raise and error for being impossible to follow.++ Cabal can make sure that specified programs are built and on the ``PATH`` before building the component in question.+ It will always do so for internal dependencies, and also do so for external dependencies when using Nix-style local builds.++ :pkg-field:`build-tool-depends` was added in Cabal 2.0, and it will+ be ignored (with a warning) with old versions of Cabal. See+ :pkg-field:`build-tools` for more information about backwards+ compatibility.++.. pkg-field:: build-tools: program list+ :deprecated:++ Deprecated in favor of :pkg-field:`build-tool-depends`, but `see below for backwards compatibility information. <buildtoolsbc>`_++ A list of Haskell programs needed to build this component.+ Each may be followed by an optional version bound.+ Confusingly, each program in the list either refer to one of three things:++ 1. Another executables in the same package++ 2. One of a hard-coded set of packages containing common build tools+ (possibly extended by a ``Custom`` setup script)++ 3. A pre-built executable that should already be on the ``PATH``+ (Supported only by Cabal 2.0 and later.)++ These cases are listed in order of priority:+ an executable in the package will override any of the hard-coded packages with the same name,+ and a hard-coded package will override any executable on the ``PATH``.++ In the first two cases, the list entry is desugared into a :pkg-field:`build-tool-depends` entry.+ In the first case, the entry is desugared into a :pkg-field:`build-tool-depends` entry by prefixing with ``$pkg:``.+ In the second case, it is desugared by looking up the package and executable name in a hard-coded table.+ In either case, the optional version bound is passed through unchanged.+ Refer to the documentation for :pkg-field:`build-tool-depends` to understand the desugared field's meaning, along with restrictions on version bounds.++ .. _buildtoolsbc:++ Although this field is deprecated in favor of :pkg-field:`build-tool-depends`, there are some situations where you may prefer to use :pkg-field:`build-tool` in cases (1) and (2), as it is supported by more versions of Cabal.+ In case (3), :pkg-field:`build-tool-depends` is better for backwards-compatibility, as it will be ignored by old versions of Cabal; if you add the executable to :pkg-field:`build-tools`, a setup script built against old Cabal will choke.+ If an old version of Cabal is used, an end-user will have to manually arrange for the requested executable to be in your ``PATH``.++.. pkg-field:: buildable: boolean++ :default: ``True``++ Is the component buildable? Like some of the other fields below,+ this field is more useful with the slightly more elaborate form of+ the simple build infrastructure described in the section on+ `system-dependent parameters`_.++.. pkg-field:: ghc-options: token list++ Additional options for GHC. You can often achieve the same effect+ using the :pkg-field:`extensions` field, which is preferred.++ Options required only by one module may be specified by placing an+ ``OPTIONS_GHC`` pragma in the source file affected.++ As with many other fields, whitespace can be escaped by using+ Haskell string syntax. Example:+ ``ghc-options: -Wcompat "-with-rtsopts=-T -I1" -Wall``.++.. pkg-field:: ghc-prof-options: token list++ Additional options for GHC when the package is built with profiling+ enabled.++ Note that as of Cabal-1.24, the default profiling detail level+ defaults to ``exported-functions`` for libraries and+ ``toplevel-functions`` for executables. For GHC these correspond to+ the flags ``-fprof-auto-exported`` and ``-fprof-auto-top``. Prior to+ Cabal-1.24 the level defaulted to ``none``. These levels can be+ adjusted by the person building the package with the+ ``--profiling-detail`` and ``--library-profiling-detail`` flags.++ It is typically better for the person building the package to pick+ the profiling detail level rather than for the package author. So+ unless you have special needs it is probably better not to specify+ any of the GHC ``-fprof-auto*`` flags here. However if you wish to+ override the profiling detail level, you can do so using the+ :pkg-field:`ghc-prof-options` field: use ``-fno-prof-auto`` or one of the+ other ``-fprof-auto*`` flags.++.. pkg-field:: ghc-shared-options: token list++ Additional options for GHC when the package is built as shared+ library. The options specified via this field are combined with the+ ones specified via :pkg-field:`ghc-options`, and are passed to GHC during+ both the compile and link phases.++.. pkg-field:: includes: filename list++ A list of header files to be included in any compilations via C.+ This field applies to both header files that are already installed+ on the system and to those coming with the package to be installed.+ The former files should be found in absolute paths, while the latter+ files should be found in paths relative to the top of the source+ tree or relative to one of the directories listed in+ :pkg-field:`include-dirs`.++ These files typically contain function prototypes for foreign+ imports used by the package. This is in contrast to+ :pkg-field:`install-includes`, which lists header files that are intended+ to be exposed to other packages that transitively depend on this+ library.++.. pkg-field:: install-includes: filename list++ A list of header files from this package to be installed into+ ``$libdir/includes`` when the package is installed. Files listed in+ :pkg-field:`install-includes` should be found in relative to the top of the+ source tree or relative to one of the directories listed in+ :pkg-field:`include-dirs`.++ :pkg-field:`install-includes` is typically used to name header files that+ contain prototypes for foreign imports used in Haskell code in this+ package, for which the C implementations are also provided with the+ package. For example, here is a ``.cabal`` file for a hypothetical+ ``bindings-clib`` package that bundles the C source code for ``clib``::++ include-dirs: cbits+ c-sources: clib.c+ install-includes: clib.h++ Now any package that depends (directly or transitively) on the+ ``bindings-clib`` library can use ``clib.h``.++ Note that in order for files listed in :pkg-field:`install-includes` to be+ usable when compiling the package itself, they need to be listed in+ the :pkg-field:`includes` field as well.++.. pkg-field:: include-dirs: directory list++ A list of directories to search for header files, when preprocessing+ with ``c2hs``, ``hsc2hs``, ``cpphs`` or the C preprocessor, and also+ when compiling via C. Directories can be absolute paths (e.g., for+ system directories) or paths that are relative to the top of the+ source tree. Cabal looks in these directories when attempting to+ locate files listed in :pkg-field:`includes` and+ :pkg-field:`install-includes`.++.. pkg-field:: c-sources: filename list++ A list of C source files to be compiled and linked with the Haskell+ files.++.. pkg-field:: js-sources: filename list++ A list of JavaScript source files to be linked with the Haskell+ files (only for JavaScript targets).++.. pkg-field:: extra-libraries: token list++ A list of extra libraries to link with.++.. pkg-field:: extra-ghci-libraries: token list++ A list of extra libraries to be used instead of 'extra-libraries'+ when the package is loaded with GHCi.++.. pkg-field:: extra-lib-dirs: directory list++ A list of directories to search for libraries.++.. pkg-field:: cc-options: token list++ Command-line arguments to be passed to the C compiler. Since the+ arguments are compiler-dependent, this field is more useful with the+ setup described in the section on `system-dependent parameters`_.++.. pkg-field:: cpp-options: token list++ Command-line arguments for pre-processing Haskell code. Applies to+ haskell source and other pre-processed Haskell source like .hsc+ .chs. Does not apply to C code, that's what cc-options is for.++.. pkg-field:: ld-options: token list++ Command-line arguments to be passed to the linker. Since the+ arguments are compiler-dependent, this field is more useful with the+ setup described in the section on `system-dependent parameters`_.++.. pkg-field:: pkgconfig-depends: package list++ A list of+ `pkg-config <http://www.freedesktop.org/wiki/Software/pkg-config/>`__+ packages, needed to build this package. They can be annotated with+ versions, e.g. ``gtk+-2.0 >= 2.10, cairo >= 1.0``. If no version+ constraint is specified, any version is assumed to be acceptable.+ Cabal uses ``pkg-config`` to find if the packages are available on+ the system and to find the extra compilation and linker options+ needed to use the packages.++ If you need to bind to a C library that supports ``pkg-config`` (use+ ``pkg-config --list-all`` to find out if it is supported) then it is+ much preferable to use this field rather than hard code options into+ the other fields.++.. pkg-field:: frameworks: token list++ On Darwin/MacOS X, a list of frameworks to link to. See Apple's+ developer documentation for more details on frameworks. This entry+ is ignored on all other platforms.++.. pkg-field:: extra-frameworks-dirs: directory list++ On Darwin/MacOS X, a list of directories to search for frameworks.+ This entry is ignored on all other platforms.++Configurations+^^^^^^^^^^^^^^++Library and executable sections may include conditional blocks, which+test for various system parameters and configuration flags. The flags+mechanism is rather generic, but most of the time a flag represents+certain feature, that can be switched on or off by the package user.+Here is an example package description file using configurations:++Example: A package containing a library and executable programs+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""++::++ Name: Test1+ Version: 0.0.1+ Cabal-Version: >= 1.2+ License: BSD3+ Author: Jane Doe+ Synopsis: Test package to test configurations+ Category: Example++ Flag Debug+ Description: Enable debug support+ Default: False++ Flag WebFrontend+ Description: Include API for web frontend.+ -- Cabal checks if the configuration is possible, first+ -- with this flag set to True and if not it tries with False++ Library+ Build-Depends: base+ Exposed-Modules: Testing.Test1+ Extensions: CPP++ if flag(debug)+ GHC-Options: -DDEBUG+ if !os(windows)+ CC-Options: "-DDEBUG"+ else+ CC-Options: "-DNDEBUG"++ if flag(webfrontend)+ Build-Depends: cgi > 0.42+ Other-Modules: Testing.WebStuff++ Executable test1+ Main-is: T1.hs+ Other-Modules: Testing.Test1+ Build-Depends: base++ if flag(debug)+ CC-Options: "-DDEBUG"+ GHC-Options: -DDEBUG++Layout+""""""++Flags, conditionals, library and executable sections use layout to+indicate structure. This is very similar to the Haskell layout rule.+Entries in a section have to all be indented to the same level which+must be more than the section header. Tabs are not allowed to be used+for indentation.++As an alternative to using layout you can also use explicit braces+``{}``. In this case the indentation of entries in a section does not+matter, though different fields within a block must be on different+lines. Here is a bit of the above example again, using braces:++Example: Using explicit braces rather than indentation for layout+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""++::++ Name: Test1+ Version: 0.0.1+ Cabal-Version: >= 1.2+ License: BSD3+ Author: Jane Doe+ Synopsis: Test package to test configurations+ Category: Example++ Flag Debug {+ Description: Enable debug support+ Default: False+ }++ Library {+ Build-Depends: base+ Exposed-Modules: Testing.Test1+ Extensions: CPP+ if flag(debug) {+ GHC-Options: -DDEBUG+ if !os(windows) {+ CC-Options: "-DDEBUG"+ } else {+ CC-Options: "-DNDEBUG"+ }+ }+ }++Configuration Flags+"""""""""""""""""""++.. pkg-section:: flag name+ :synopsis: Flag declaration.++ Flag section declares a flag which can be used in `conditional blocks`_.++A flag section may contain the following fields:++.. pkg-field:: description: freeform++ The description of this flag.++.. pkg-field:: default: boolean++ :default: ``True``++ The default value of this flag.++ .. note::++ This value may be `overridden in several+ ways <installing-packages.html#controlling-flag-assignments>`__. The+ rationale for having flags default to True is that users usually+ want new features as soon as they are available. Flags representing+ features that are not (yet) recommended for most users (such as+ experimental features or debugging support) should therefore+ explicitly override the default to False.++.. pkg-field:: manual: boolean++ :default: ``False``++ By default, Cabal will first try to satisfy dependencies with the+ default flag value and then, if that is not possible, with the+ negated value. However, if the flag is manual, then the default+ value (which can be overridden by commandline flags) will be used.++Conditional Blocks+^^^^^^^^^^^^^^^^^^++Conditional blocks may appear anywhere inside a library or executable+section. They have to follow rather strict formatting rules. Conditional+blocks must always be of the shape++::++ if condition+ property-descriptions-or-conditionals++or++::++ if condition+ property-descriptions-or-conditionals+ else+ property-descriptions-or-conditionals++Note that the ``if`` and the condition have to be all on the same line.++Conditions+""""""""""++Conditions can be formed using boolean tests and the boolean operators+``||`` (disjunction / logical "or"), ``&&`` (conjunction / logical+"and"), or ``!`` (negation / logical "not"). The unary ``!`` takes+highest precedence, ``||`` takes lowest. Precedence levels may be+overridden through the use of parentheses. For example,+``os(darwin) && !arch(i386) || os(freebsd)`` is equivalent to+``(os(darwin) && !(arch(i386))) || os(freebsd)``.++The following tests are currently supported.++:samp:`os({name})`+ Tests if the current operating system is *name*. The argument is+ tested against ``System.Info.os`` on the target system. There is+ unfortunately some disagreement between Haskell implementations+ about the standard values of ``System.Info.os``. Cabal canonicalises+ it so that in particular ``os(windows)`` works on all+ implementations. If the canonicalised os names match, this test+ evaluates to true, otherwise false. The match is case-insensitive.+:samp:`arch({name})`+ Tests if the current architecture is *name*. The argument is matched+ against ``System.Info.arch`` on the target system. If the arch names+ match, this test evaluates to true, otherwise false. The match is+ case-insensitive.+:samp:`impl({compiler})`+ Tests for the configured Haskell implementation. An optional version+ constraint may be specified (for example ``impl(ghc >= 6.6.1)``). If+ the configured implementation is of the right type and matches the+ version constraint, then this evaluates to true, otherwise false.+ The match is case-insensitive.++ Note that including a version constraint in an ``impl`` test causes+ it to check for two properties:++ - The current compiler has the specified name, and++ - The compiler's version satisfied the specified version constraint++ As a result, ``!impl(ghc >= x.y.z)`` is not entirely equivalent to+ ``impl(ghc < x.y.z)``. The test ``!impl(ghc >= x.y.z)`` checks that:++ - The current compiler is not GHC, or++ - The version of GHC is earlier than version x.y.z.++:samp:`flag({name})`+ Evaluates to the current assignment of the flag of the given name.+ Flag names are case insensitive. Testing for flags that have not+ been introduced with a flag section is an error.+``true``+ Constant value true.+``false``+ Constant value false.++Resolution of Conditions and Flags+""""""""""""""""""""""""""""""""""++If a package descriptions specifies configuration flags the package user+can `control these in several+ways <installing-packages.html#controlling-flag-assignments>`__. If the+user does not fix the value of a flag, Cabal will try to find a flag+assignment in the following way.++- For each flag specified, it will assign its default value, evaluate+ all conditions with this flag assignment, and check if all+ dependencies can be satisfied. If this check succeeded, the package+ will be configured with those flag assignments.++- If dependencies were missing, the last flag (as by the order in which+ the flags were introduced in the package description) is tried with+ its alternative value and so on. This continues until either an+ assignment is found where all dependencies can be satisfied, or all+ possible flag assignments have been tried.++To put it another way, Cabal does a complete backtracking search to find+a satisfiable package configuration. It is only the dependencies+specified in the :pkg-field:`build-depends` field in conditional blocks that+determine if a particular flag assignment is satisfiable+(:pkg-field:`build-tools` are not considered). The order of the declaration and+the default value of the flags determines the search order. Flags+overridden on the command line fix the assignment of that flag, so no+backtracking will be tried for that flag.++If no suitable flag assignment could be found, the configuration phase+will fail and a list of missing dependencies will be printed. Note that+this resolution process is exponential in the worst case (i.e., in the+case where dependencies cannot be satisfied). There are some+optimizations applied internally, but the overall complexity remains+unchanged.++Meaning of field values when using conditionals+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^++During the configuration phase, a flag assignment is chosen, all+conditionals are evaluated, and the package description is combined into+a flat package descriptions. If the same field both inside a conditional+and outside then they are combined using the following rules.++- Boolean fields are combined using conjunction (logical "and").++- List fields are combined by appending the inner items to the outer+ items, for example++ ::++ other-extensions: CPP+ if impl(ghc)+ other-extensions: MultiParamTypeClasses++ when compiled using GHC will be combined to++ ::++ other-extensions: CPP, MultiParamTypeClasses++ Similarly, if two conditional sections appear at the same nesting+ level, properties specified in the latter will come after properties+ specified in the former.++- All other fields must not be specified in ambiguous ways. For example++ ::++ Main-is: Main.hs+ if flag(useothermain)+ Main-is: OtherMain.hs++ will lead to an error. Instead use++ ::++ if flag(useothermain)+ Main-is: OtherMain.hs+ else+ Main-is: Main.hs++Source Repositories+^^^^^^^^^^^^^^^^^^^++.. pkg-section:: source-repository++It is often useful to be able to specify a source revision control+repository for a package. Cabal lets you specifying this information in+a relatively structured form which enables other tools to interpret and+make effective use of the information. For example the information+should be sufficient for an automatic tool to checkout the sources.++Cabal supports specifying different information for various common+source control systems. Obviously not all automated tools will support+all source control systems.++Cabal supports specifying repositories for different use cases. By+declaring which case we mean automated tools can be more useful. There+are currently two kinds defined:++- The ``head`` kind refers to the latest development branch of the+ package. This may be used for example to track activity of a project+ or as an indication to outside developers what sources to get for+ making new contributions.++- The ``this`` kind refers to the branch and tag of a repository that+ contains the sources for this version or release of a package. For+ most source control systems this involves specifying a tag, id or+ hash of some form and perhaps a branch. The purpose is to be able to+ reconstruct the sources corresponding to a particular package+ version. This might be used to indicate what sources to get if+ someone needs to fix a bug in an older branch that is no longer an+ active head branch.++You can specify one kind or the other or both. As an example here are+the repositories for the Cabal library. Note that the ``this`` kind of+repository specifies a tag.++::++ source-repository head+ type: darcs+ location: http://darcs.haskell.org/cabal/++ source-repository this+ type: darcs+ location: http://darcs.haskell.org/cabal-branches/cabal-1.6/+ tag: 1.6.1++The exact fields are as follows:++.. pkg-field:: type: token++ The name of the source control system used for this repository. The+ currently recognised types are:++ - ``darcs``+ - ``git``+ - ``svn``+ - ``cvs``+ - ``mercurial`` (or alias ``hg``)+ - ``bazaar`` (or alias ``bzr``)+ - ``arch``+ - ``monotone``++ This field is required.++.. pkg-field:: location: URL++ The location of the repository. The exact form of this field depends+ on the repository type. For example:++ - for darcs: ``http://code.haskell.org/foo/``+ - for git: ``git://github.com/foo/bar.git``+ - for CVS: ``anoncvs@cvs.foo.org:/cvs``++ This field is required.++.. pkg-field:: module: token++ CVS requires a named module, as each CVS server can host multiple+ named repositories.++ This field is required for the CVS repository type and should not be+ used otherwise.++.. pkg-field:: branch: token++ Many source control systems support the notion of a branch, as a+ distinct concept from having repositories in separate locations. For+ example CVS, SVN and git use branches while for darcs uses different+ locations for different branches. If you need to specify a branch to+ identify a your repository then specify it in this field.++ This field is optional.++.. pkg-field:: tag: token++ A tag identifies a particular state of a source repository. The tag+ can be used with a ``this`` repository kind to identify the state of+ a repository corresponding to a particular package version or+ release. The exact form of the tag depends on the repository type.++ This field is required for the ``this`` repository kind.++.. pkg-field:: subdir: directory++ Some projects put the sources for multiple packages under a single+ source repository. This field lets you specify the relative path+ from the root of the repository to the top directory for the+ package, i.e. the directory containing the package's ``.cabal``+ file.++ This field is optional. It default to empty which corresponds to the+ root directory of the repository.++Downloading a package's source+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^++The ``cabal get`` command allows to access a package's source code -+either by unpacking a tarball downloaded from Hackage (the default) or+by checking out a working copy from the package's source repository.++::++ $ cabal get [FLAGS] PACKAGES++The ``get`` command supports the following options:++``-d --destdir`` *PATH*+ Where to place the package source, defaults to (a subdirectory of)+ the current directory.+``-s --source-repository`` *[head\|this\|...]*+ Fork the package's source repository using the appropriate version+ control system. The optional argument allows to choose a specific+ repository kind.+``--index-state`` *[HEAD\|@<unix-timestamp>\|<iso8601-utc-timestamp>]*+ Use source package index state as it existed at a previous time. Accepts+ unix-timestamps (e.g. ``@1474732068``), ISO8601 UTC timestamps (e.g.+ ``2016-09-24T17:47:48Z``), or ``HEAD`` (default).+ This determines which package versions are available as well as which+ ``.cabal`` file revision is selected (unless ``--pristine`` is used).+``--pristine``+ Unpack the original pristine tarball, rather than updating the+ ``.cabal`` file with the latest revision from the package archive.++Custom setup scripts+--------------------++.. pkg-section:: custom-setup+ :synopsis: Custom Setup.hs build information.+ :since: 1.24++ The optional :pkg-section:`custom-setup` stanza contains information needed+ for the compilation of custom ``Setup.hs`` scripts,++::++ custom-setup+ setup-depends:+ base >= 4.5 && < 4.11,+ Cabal < 1.25++.. pkg-field:: setup-depends: package list+ :since: 1.24++ The dependencies needed to compile ``Setup.hs``. See the+ :pkg-field:`build-depends` field for a description of the syntax expected by+ this field.++Autogenerated modules+---------------------++Modules that are built automatically at setup, created with a custom+setup script, must appear on :pkg-field:`other-modules` for the library,+executable, test-suite or benchmark stanzas or also on+:pkg-field:`library:exposed-modules` for libraries to be used, but are not+really on the package when distributed. This makes commands like sdist fail+because the file is not found.++This special modules must appear again on the :pkg-field:`autogen-modules`+field of the stanza that is using it, besides :pkg-field:`other-modules` or+:pkg-field:`library:exposed-modules`. With this there is no need to create+complex build hooks for this poweruser case.++.. pkg-field:: autogen-modules: module list++ .. TODO: document autogen-modules field++Right now :pkg-field:`executable:main-is` modules are not supported on+:pkg-field:`autogen-modules`.++::++ Library+ default-language: Haskell2010+ build-depends: base+ exposed-modules:+ MyLibrary+ MyLibHelperModule+ other-modules:+ MyLibModule+ autogen-modules:+ MyLibHelperModule++ Executable Exe+ default-language: Haskell2010+ main-is: Dummy.hs+ build-depends: base+ other-modules:+ MyExeModule+ MyExeHelperModule+ autogen-modules:+ MyExeHelperModule++Accessing data files from package code+--------------------------------------++The placement on the target system of files listed in+the :pkg-field:`data-files` field varies between systems, and in some cases+one can even move packages around after installation (see `prefix+independence <installing-packages.html#prefix-independence>`__). To+enable packages to find these files in a portable way, Cabal generates a+module called :file:`Paths_{pkgname}` (with any hyphens in *pkgname*+replaced by underscores) during building, so that it may be imported by+modules of the package. This module defines a function++.. code-block:: haskell++ getDataFileName :: FilePath -> IO FilePath++If the argument is a filename listed in the :pkg-field:`data-files` field, the+result is the name of the corresponding file on the system on which the+program is running.++.. Note::++ If you decide to import the :file:`Paths_{pkgname}` module then it+ *must* be listed in the :pkg-field:`other-modules` field just like any other+ module in your package and on :pkg-field:`autogen-modules` as the file is+ autogenerated.++The :file:`Paths_{pkgname}` module is not platform independent, as any+other autogenerated module, so it does not get included in the source+tarballs generated by ``sdist``.++The :file:`Paths_{pkgname}` module also includes some other useful+functions and values, which record the version of the package and some+other directories which the package has been configured to be installed+into (e.g. data files live in ``getDataDir``):++.. code-block:: haskell++ version :: Version++ getBinDir :: IO FilePath+ getLibDir :: IO FilePath+ getDynLibDir :: IO FilePath+ getDataDir :: IO FilePath+ getLibexecDir :: IO FilePath+ getSysconfDir :: IO FilePath++The actual location of all these directories can be individually+overridden at runtime using environment variables of the form+``pkg_name_var``, where ``pkg_name`` is the name of the package with all+hyphens converted into underscores, and ``var`` is either ``bindir``,+``libdir``, ``dynlibdir``, ``datadir``, ``libexedir`` or ``sysconfdir``. For example,+the configured data directory for ``pretty-show`` is controlled with the+``pretty_show_datadir`` environment variable.++Accessing the package version+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^++The aforementioned auto generated :file:`Paths_{pkgname}` module also+exports the constant ``version ::``+`Version <http://hackage.haskell.org/package/base/docs/Data-Version.html>`__+which is defined as the version of your package as specified in the+``version`` field.++System-dependent parameters+---------------------------++For some packages, especially those interfacing with C libraries,+implementation details and the build procedure depend on the build+environment. The ``build-type`` ``Configure`` can be used to handle many+such situations. In this case, ``Setup.hs`` should be:++.. code-block:: haskell++ import Distribution.Simple+ main = defaultMainWithHooks autoconfUserHooks++Most packages, however, would probably do better using the ``Simple``+build type and `configurations`_.++The :pkg-field:`build-type` ``Configure`` differs from ``Simple`` in two ways:++- The package root directory must contain a shell script called+ ``configure``. The configure step will run the script. This+ ``configure`` script may be produced by+ `autoconf <http://www.gnu.org/software/autoconf/>`__ or may be+ hand-written. The ``configure`` script typically discovers+ information about the system and records it for later steps, e.g. by+ generating system-dependent header files for inclusion in C source+ files and preprocessed Haskell source files. (Clearly this won't work+ for Windows without MSYS or Cygwin: other ideas are needed.)++- If the package root directory contains a file called+ *package*\ ``.buildinfo`` after the configuration step, subsequent+ steps will read it to obtain additional settings for `build+ information`_ fields,to be merged with the ones+ given in the ``.cabal`` file. In particular, this file may be+ generated by the ``configure`` script mentioned above, allowing these+ settings to vary depending on the build environment.++The build information file should have the following structure:++ *buildinfo*++ ``executable:`` *name* *buildinfo*++ ``executable:`` *name* *buildinfo* ...++where each *buildinfo* consists of settings of fields listed in the+section on `build information`_. The first one (if+present) relates to the library, while each of the others relate to the+named executable. (The names must match the package description, but you+don't have to have entries for all of them.)++Neither of these files is required. If they are absent, this setup+script is equivalent to ``defaultMain``.++Example: Using autoconf+^^^^^^^^^^^^^^^^^^^^^^^++This example is for people familiar with the+`autoconf <http://www.gnu.org/software/autoconf/>`__ tools.++In the X11 package, the file ``configure.ac`` contains:++.. code-block:: shell++ AC_INIT([Haskell X11 package], [1.1], [libraries@haskell.org], [X11])++ # Safety check: Ensure that we are in the correct source directory.+ AC_CONFIG_SRCDIR([X11.cabal])++ # Header file to place defines in+ AC_CONFIG_HEADERS([include/HsX11Config.h])++ # Check for X11 include paths and libraries+ AC_PATH_XTRA+ AC_TRY_CPP([#include <X11/Xlib.h>],,[no_x=yes])++ # Build the package if we found X11 stuff+ if test "$no_x" = yes+ then BUILD_PACKAGE_BOOL=False+ else BUILD_PACKAGE_BOOL=True+ fi+ AC_SUBST([BUILD_PACKAGE_BOOL])++ AC_CONFIG_FILES([X11.buildinfo])+ AC_OUTPUT++Then the setup script will run the ``configure`` script, which checks+for the presence of the X11 libraries and substitutes for variables in+the file ``X11.buildinfo.in``:++::++ buildable: @BUILD_PACKAGE_BOOL@+ cc-options: @X_CFLAGS@+ ld-options: @X_LIBS@++This generates a file ``X11.buildinfo`` supplying the parameters needed+by later stages:++::++ buildable: True+ cc-options: -I/usr/X11R6/include+ ld-options: -L/usr/X11R6/lib++The ``configure`` script also generates a header file+``include/HsX11Config.h`` containing C preprocessor defines recording+the results of various tests. This file may be included by C source+files and preprocessed Haskell source files in the package.++.. Note::++ Packages using these features will also need to list additional+ files such as ``configure``, templates for ``.buildinfo`` files, files+ named only in ``.buildinfo`` files, header files and so on in the+ :pkg-field:`extra-source-files` field to ensure that they are included in+ source distributions. They should also list files and directories generated+ by ``configure`` in the :pkg-field:`extra-tmp-files` field to ensure that+ they are removed by ``setup clean``.++Quite often the files generated by ``configure`` need to be listed+somewhere in the package description (for example, in the+:pkg-field:`install-includes` field). However, we usually don't want generated+files to be included in the source tarball. The solution is again+provided by the ``.buildinfo`` file. In the above example, the following+line should be added to ``X11.buildinfo``:++::++ install-includes: HsX11Config.h++In this way, the generated ``HsX11Config.h`` file won't be included in+the source tarball in addition to ``HsX11Config.h.in``, but it will be+copied to the right location during the install process. Packages that+use custom ``Setup.hs`` scripts can update the necessary fields+programmatically instead of using the ``.buildinfo`` file.++Conditional compilation+-----------------------++Sometimes you want to write code that works with more than one version+of a dependency. You can specify a range of versions for the dependency+in the :pkg-field:`build-depends`, but how do you then write the code that can+use different versions of the API?++Haskell lets you preprocess your code using the C preprocessor (either+the real C preprocessor, or ``cpphs``). To enable this, add+``extensions: CPP`` to your package description. When using CPP, Cabal+provides some pre-defined macros to let you test the version of+dependent packages; for example, suppose your package works with either+version 3 or version 4 of the ``base`` package, you could select the+available version in your Haskell modules like this:++.. code-block:: cpp++ #if MIN_VERSION_base(4,0,0)+ ... code that works with base-4 ...+ #else+ ... code that works with base-3 ...+ #endif++In general, Cabal supplies a macro+``MIN_VERSION_``\ *``package``*\ ``_(A,B,C)`` for each package depended+on via :pkg-field:`build-depends`. This macro is true if the actual version of+the package in use is greater than or equal to ``A.B.C`` (using the+conventional ordering on version numbers, which is lexicographic on the+sequence, but numeric on each component, so for example 1.2.0 is greater+than 1.0.3).++Since version 1.20, the ``MIN_TOOL_VERSION_``\ *``tool``*+family of macros lets you condition on the version of build tools used to+build the program (e.g. ``hsc2hs``).++Since version 1.24, the macro ``CURRENT_COMPONENT_ID``, which+expands to the string of the component identifier that uniquely+identifies this component. Furthermore, if the package is a library,+the macro ``CURRENT_PACKAGE_KEY`` records the identifier that was passed+to GHC for use in symbols and for type equality.++Since version 2.0, the macro ``CURRENT_PACKAGE_VERSION`` expands+to the string version number of the current package.++Cabal places the definitions of these macros into an+automatically-generated header file, which is included when+preprocessing Haskell source code by passing options to the C+preprocessor.++Cabal also allows to detect when the source code is being used for+generating documentation. The ``__HADDOCK_VERSION__`` macro is defined+only when compiling via Haddock_+instead of a normal Haskell compiler. The value of the+``__HADDOCK_VERSION__`` macro is defined as ``A*1000 + B*10 + C``, where+``A.B.C`` is the Haddock version. This can be useful for working around+bugs in Haddock or generating prettier documentation in some special+cases.++More complex packages+---------------------++For packages that don't fit the simple schemes described above, you have+a few options:++- By using the :pkg-field:`build-type` ``Custom``, you can supply your own+ ``Setup.hs`` file, and customize the simple build infrastructure+ using *hooks*. These allow you to perform additional actions before+ and after each command is run, and also to specify additional+ preprocessors. A typical ``Setup.hs`` may look like this:++ .. code-block:: haskell++ import Distribution.Simple+ main = defaultMainWithHooks simpleUserHooks { postHaddock = posthaddock }++ posthaddock args flags desc info = ....++ See ``UserHooks`` in+ `Distribution.Simple <../release/cabal-latest/doc/API/Cabal/Distribution-Simple.html>`__+ for the details, but note that this interface is experimental, and+ likely to change in future releases.++ If you use a custom ``Setup.hs`` file you should strongly consider+ adding a :pkg-section:`custom-setup` stanza with a+ :pkg-field:`custom-setup:setup-depends` field to ensure that your setup+ script does not break with future dependency versions.++- You could delegate all the work to ``make``, though this is unlikely+ to be very portable. Cabal supports this with the :pkg-field:`build-type`+ ``Make`` and a trivial setup library+ `Distribution.Make <../release/cabal-latest/doc/API/Cabal/Distribution-Make.html>`__,+ which simply parses the command line arguments and invokes ``make``.+ Here ``Setup.hs`` should look like this:++ .. code-block:: haskell++ import Distribution.Make+ main = defaultMain++ The root directory of the package should contain a ``configure``+ script, and, after that has run, a ``Makefile`` with a default target+ that builds the package, plus targets ``install``, ``register``,+ ``unregister``, ``clean``, ``dist`` and ``docs``. Some options to+ commands are passed through as follows:++ - The ``--with-hc-pkg``, ``--prefix``, ``--bindir``, ``--libdir``,+ ``--dynlibdir``, ``--datadir``, ``--libexecdir`` and ``--sysconfdir`` options to+ the ``configure`` command are passed on to the ``configure``+ script. In addition the value of the ``--with-compiler`` option is+ passed in a ``--with-hc`` option and all options specified with+ ``--configure-option=`` are passed on.++ - The ``--destdir`` option to the ``copy`` command becomes a setting+ of a ``destdir`` variable on the invocation of ``make copy``. The+ supplied ``Makefile`` should provide a ``copy`` target, which will+ probably look like this:++ .. code-block:: make++ copy :+ $(MAKE) install prefix=$(destdir)/$(prefix) \+ bindir=$(destdir)/$(bindir) \+ libdir=$(destdir)/$(libdir) \+ dynlibdir=$(destdir)/$(dynlibdir) \+ datadir=$(destdir)/$(datadir) \+ libexecdir=$(destdir)/$(libexecdir) \+ sysconfdir=$(destdir)/$(sysconfdir) \++- Finally, with the :pkg-field:`build-type` ``Custom``, you can also write your+ own setup script from scratch. It must conform to the interface+ described in the section on `building and installing+ packages <installing-packages.html>`__, and you may use the Cabal+ library for all or part of the work. One option is to copy the source+ of ``Distribution.Simple``, and alter it for your needs. Good luck.+++.. include:: references.inc
+ doc/images/Cabal-dark.png view
binary file changed (absent → 7086 bytes)
− doc/index.markdown
@@ -1,201 +0,0 @@-% Cabal User Guide-**Version: 1.24.2.0**--Cabal is the standard package system for [Haskell] software. It helps-people to configure, build and install Haskell software and to-distribute it easily to other users and developers.--There is a command line tool called `cabal` for working with Cabal-packages. It helps with installing existing packages and also helps-people developing their own packages. It can be used to work with local-packages or to install packages from online package archives, including-automatically installing dependencies. By default it is configured to-use [Hackage] which is Haskell's central package archive that contains-thousands of libraries and applications in the Cabal package format.--# Contents #-- * [Introduction](#introduction)- - [What's in a package](#whats-in-a-package)- - [A tool for working with packages](#a-tool-for-working-with-packages)- * [Building, installing and managing packages](installing-packages.html)- * [Creating packages](developing-packages.html)- * [Reporting bugs and deficiencies](misc.html#reporting-bugs-and-deficiencies)- * [Stability of Cabal interfaces](misc.html#stability-of-cabal-interfaces)--# Introduction #--Cabal is a package system for Haskell software. The point of a package-system is to enable software developers and users to easily distribute,-use and reuse software. A package system makes it easier for developers-to get their software into the hands of users. Equally importantly, it-makes it easier for software developers to be able to reuse software-components written by other developers.--Packaging systems deal with packages and with Cabal we call them _Cabal-packages_. The Cabal package is the unit of distribution. Every Cabal-package has a name and a version number which are used to identify the-package, e.g. `filepath-1.0`.--Cabal packages can depend on other Cabal packages. There are tools-to enable automated package management. This means it is possible for-developers and users to install a package plus all of the other Cabal-packages that it depends on. It also means that it is practical to make-very modular systems using lots of packages that reuse code written by-many developers.--Cabal packages are source based and are typically (but not necessarily)-portable to many platforms and Haskell implementations. The Cabal-package format is designed to make it possible to translate into other-formats, including binary packages for various systems.--When distributed, Cabal packages use the standard compressed tarball-format, with the file extension `.tar.gz`, e.g. `filepath-1.0.tar.gz`.--Note that packages are not part of the Haskell language, rather they-are a feature provided by the combination of Cabal and GHC (and several-other Haskell implementations).---## A tool for working with packages ##--There is a command line tool, called "`cabal`", that users and developers-can use to build and install Cabal packages. It can be used for both-local packages and for packages available remotely over the network. It-can automatically install Cabal packages plus any other Cabal packages-they depend on.--Developers can use the tool with packages in local directories, e.g.--~~~~~~~~~~~~~~~~-cd foo/-cabal install-~~~~~~~~~~~~~~~~--While working on a package in a local directory, developers can run the-individual steps to configure and build, and also generate documentation-and run test suites and benchmarks.--It is also possible to install several local packages at once, e.g.--~~~~~~~~~~~~~~~~-cabal install foo/ bar/-~~~~~~~~~~~~~~~~--Developers and users can use the tool to install packages from remote-Cabal package archives. By default, the `cabal` tool is configured to-use the central Haskell package archive called [Hackage] but it-is possible to use it with any other suitable archive.--~~~~~~~~~~~~~~~~-cabal install xmonad-~~~~~~~~~~~~~~~~--This will install the `xmonad` package plus all of its dependencies.--In addition to packages that have been published in an archive,-developers can install packages from local or remote tarball files,-for example--~~~~~~~~~~~~~~~~-cabal install foo-1.0.tar.gz-cabal install http://example.com/foo-1.0.tar.gz-~~~~~~~~~~~~~~~~--Cabal provides a number of ways for a user to customise how and where a-package is installed. They can decide where a package will be installed,-which Haskell implementation to use and whether to build optimised code-or build with the ability to profile code. It is not expected that users-will have to modify any of the information in the `.cabal` file.--For full details, see the section on [building and installing-packages](installing-packages.html).--Note that `cabal` is not the only tool for working with Cabal packages.-Due to the standardised format and a library for reading `.cabal` files,-there are several other special-purpose tools.--## What's in a package ##--A Cabal package consists of:-- * Haskell software, including libraries, executables and tests- * metadata about the package in a standard human and machine- readable format (the "`.cabal`" file)- * a standard interface to build the package (the "`Setup.hs`" file)--The `.cabal` file contains information about the package, supplied by-the package author. In particular it lists the other Cabal packages-that the package depends on.--For full details on what goes in the `.cabal` and `Setup.hs` files, and-for all the other features provided by the build system, see the section-on [developing packages](developing-packages.html).---## Cabal featureset ##--Cabal and its associated tools and websites covers:-- * a software build system- * software configuration- * packaging for distribution- * automated package management- * natively using the `cabal` command line tool; or- * by translation into native package formats such as RPM or deb- * web and local Cabal package archives- * central Hackage website with 1000's of Cabal packages--Some parts of the system can be used without others. In particular the-built-in build system for simple packages is optional: it is possible-to use custom build systems.--## Similar systems ##--The Cabal system is roughly comparable with the system of Python Eggs,-Ruby Gems or Perl distributions. Each system has a notion of-distributable packages, and has tools to manage the process of-distributing and installing packages.--Hackage is an online archive of Cabal packages. It is roughly comparable-to CPAN but with rather fewer packages (around 5,000 vs 28,000).--Cabal is often compared with autoconf and automake and there is some-overlap in functionality. The most obvious similarity is that the-command line interface for actually configuring and building packages-follows the same steps and has many of the same configuration-parameters.--~~~~~~~~~~-./configure --prefix=...-make-make install-~~~~~~~~~~--compared to--~~~~~~~~~~-cabal configure --prefix=...-cabal build-cabal install-~~~~~~~~~~--Cabal's build system for simple packages is considerably less flexible-than make/automake, but has builtin knowledge of how to build Haskell-code and requires very little manual configuration. Cabal's simple build-system is also portable to Windows, without needing a Unix-like-environment such as cygwin/mingwin.--Compared to autoconf, Cabal takes a somewhat different approach to-package configuration. Cabal's approach is designed for automated-package management. Instead of having a configure script that tests for-whether dependencies are available, Cabal packages specify their-dependencies. There is some scope for optional and conditional-dependencies. By having package authors specify dependencies it makes it-possible for tools to install a package and all of its dependencies-automatically. It also makes it possible to translate (in a-mostly-automatically way) into another package format like RPM or deb-which also have automatic dependency resolution.--[Haskell]: http://www.haskell.org/-[Hackage]: http://hackage.haskell.org/
+ doc/index.rst view
@@ -0,0 +1,14 @@++Welcome to the Cabal User Guide+===============================++.. toctree::+ :maxdepth: 2+ :numbered:++ intro+ config-and-install+ concepts-and-development+ bugs-and-stability+ nix-local-build-overview+ nix-integration
− doc/installing-packages.markdown
@@ -1,1303 +0,0 @@-% Cabal User Guide--# Configuration #--## Overview ##--The global configuration file for `cabal-install` is `~/.cabal/config`. If you-do not have this file, `cabal` will create it for you on the first call to-`cabal update`. Alternatively, you can explicitly ask `cabal` to create it for-you using--> `cabal user-config update`--Most of the options in this configuration file are also available as command-line arguments, and the corresponding documentation can be used to lookup their-meaning. The created configuration file only specifies values for a handful of-options. Most options are left at their default value, which it documents;-for instance,--~~~~~~~~~~~~~~~~--- executable-stripping: True-~~~~~~~~~~~~~~~~--means that the configuration file currently does not specify a value for the-`executable-stripping` option (the line is commented out), and that the default-is `True`; if you wanted to disable stripping of executables by default, you-would change this line to--~~~~~~~~~~~~~~~~-executable-stripping: False-~~~~~~~~~~~~~~~~--You can also use `cabal user-config update` to migrate configuration files-created by older versions of `cabal`.--## Repository specification ##--An important part of the configuration if the specification of the repository.-When `cabal` creates a default config file, it configures the repository to-be the central Hackage server:--~~~~~~~~~~~~~~~~-repository hackage.haskell.org- url: http://hackage.haskell.org/-~~~~~~~~~~~~~~~~--The name of the repository is given on the first line, and can be anything;-packages downloaded from this repository will be cached under-`~/.cabal/packages/hackage.haskell.org` (or whatever name you specify; you can-change the prefix by changing the value of `remote-repo-cache`). If you want,-you can configure multiple repositories, and `cabal` will combine them and be-able to download packages from any of them.--### Using secure repositories ###--For repositories that support the TUF security infrastructure (this includes-Hackage), you can enable secure access to the repository by specifying:--~~~~~~~~~~~~~~~~-repository hackage.haskell.org- url: http://hackage.haskell.org/- secure: True- root-keys: <root-key-IDs>- key-threshold: <key-threshold>-~~~~~~~~~~~~~~~~--The `<root-key-IDs>` and `<key-threshold>` values are used for bootstrapping. As-part of the TUF infrastructure the repository will contain a file `root.json`-(for instance,-[http://hackage.haskell.org/root.json](http://hackage.haskell.org/root.json))-which the client needs to do verification. However, how can `cabal` verify the-`root.json` file _itself_? This is known as bootstrapping: if you specify a list-of root key IDs and a corresponding threshold, `cabal` will verify that the-downloaded `root.json` file has been signed with at least `<key-threshold>`-keys from your set of `<root-key-IDs>`.--You can, but are not recommended to, omit these two fields. In that case `cabal`-will download the `root.json` field and use it without verification. Although-this bootstrapping step is then unsafe, all subsequent access is secure-(provided that the downloaded `root.json` was not tempered with). Of course,-adding `root-keys` and `key-threshold` to your repository specification only-shifts the problem, because now you somehow need to make sure that the key IDs-you received were the right ones. How that is done is however outside the scope-of `cabal` proper.--More information about the security infrastructure can be found at-[https://github.com/well-typed/hackage-security](https://github.com/well-typed/hackage-security).--### Legacy repositories ###--Currently `cabal` supports two kinds of “legacy” repositories. The-first is specified using--~~~~~~~~~~~~~~~~-remote-repo: hackage.haskell.org:http://hackage.haskell.org/packages/archive-~~~~~~~~~~~~~~~~--This is just syntactic sugar for--~~~~~~~~~~~~~~~~-repository hackage.haskell.org- url: hackage.haskell.org:http://hackage.haskell.org/packages/archive-~~~~~~~~~~~~~~~~--although, in (and only in) the specific case of Hackage, the URL-`http://hackage.haskell.org/packages/archive` will be silently translated to-`http://hackage.haskell.org/`.--The second kind of legacy repositories are so-called “local”-repositories:--~~~~~~~~~~~~~~~~-local-repo: my-local-repo:/path/to/local/repo-~~~~~~~~~~~~~~~~--This can be used to access repositories on the local file system. However, the-layout of these local repositories is different from the layout of remote-repositories, and usage of these local repositories is deprecated.--### Secure local repositories ###--If you want to use repositories on your local file system, it is recommended-instead to use a _secure_ local repository:--~~~~~~~~~~~~~~~~-repository my-local-repo- url: file:/path/to/local/repo- secure: True- root-keys: <root-key-IDs>- key-threshold: <key-threshold>-~~~~~~~~~~~~~~~~--The layout of these secure local repos matches the layout of remote repositories-exactly; the-[hackage-repo-tool](http://hackage.haskell.org/package/hackage-repo-tool) can be-used to create and manage such repositories.--# Building and installing packages #--After you've unpacked a Cabal package, you can build it by moving into-the root directory of the package and running the `cabal` tool there:--> `cabal [command] [option...]`--The _command_ argument selects a particular step in the build/install process.--You can also get a summary of the command syntax with--> `cabal help`--Alternatively, you can also use the `Setup.hs` or `Setup.lhs` script:--> `runhaskell Setup.hs [command] [option...]`--For the summary of the command syntax, run:--> `cabal help`--or--> `runhaskell Setup.hs --help`--## Building and installing a system package ##--~~~~~~~~~~~~~~~~-runhaskell Setup.hs configure --ghc-runhaskell Setup.hs build-runhaskell Setup.hs install-~~~~~~~~~~~~~~~~--The first line readies the system to build the tool using GHC; for-example, it checks that GHC exists on the system. The second line-performs the actual building, while the last both copies the build-results to some permanent place and registers the package with GHC.--## Building and installing a user package ##--~~~~~~~~~~~~~~~~-runhaskell Setup.hs configure --user-runhaskell Setup.hs build-runhaskell Setup.hs install-~~~~~~~~~~~~~~~~--The package is installed under the user's home directory and is-registered in the user's package database (`--user`).--## Installing packages from Hackage ##--The `cabal` tool also can download, configure, build and install a [Hackage]-package and all of its dependencies in a single step. To do this, run:--~~~~~~~~~~~~~~~~-cabal install [PACKAGE...]-~~~~~~~~~~~~~~~~--To browse the list of available packages, visit the [Hackage] web site.--## Developing with sandboxes ##--By default, any dependencies of the package are installed into the global or-user package databases (e.g. using `cabal install --only-dependencies`). If-you're building several different packages that have incompatible dependencies,-this can cause the build to fail. One way to avoid this problem is to build each-package in an isolated environment ("sandbox"), with a sandbox-local package-database. Because sandboxes are per-project, inconsistent dependencies can be-simply disallowed.--For more on sandboxes, see also-[this article](http://coldwa.st/e/blog/2013-08-20-Cabal-sandbox.html).--### Sandboxes: basic usage ###--To initialise a fresh sandbox in the current directory, run `cabal sandbox-init`. All subsequent commands (such as `build` and `install`) from this point-will use the sandbox.--~~~~~~~~~~~~~~~-$ cd /path/to/my/haskell/library-$ cabal sandbox init # Initialise the sandbox-$ cabal install --only-dependencies # Install dependencies into the sandbox-$ cabal build # Build your package inside the sandbox-~~~~~~~~~~~~~~~--It can be useful to make a source package available for installation in the-sandbox - for example, if your package depends on a patched or an unreleased-version of a library. This can be done with the `cabal sandbox add-source`-command - think of it as "local [Hackage]". If an add-source dependency is later-modified, it is reinstalled automatically.--~~~~~~~~~~~~~~~-$ cabal sandbox add-source /my/patched/library # Add a new add-source dependency-$ cabal install --dependencies-only # Install it into the sandbox-$ cabal build # Build the local package-$ $EDITOR /my/patched/library/Source.hs # Modify the add-source dependency-$ cabal build # Modified dependency is automatically reinstalled-~~~~~~~~~~~~~~~--Normally, the sandbox settings (such as optimisation level) are inherited from-the main Cabal config file (`$HOME/cabal/config`). Sometimes, though, you need-to change some settings specifically for a single sandbox. You can do this by-creating a `cabal.config` file in the same directory with your-`cabal.sandbox.config` (which was created by `sandbox init`). This file has the-same syntax as the main Cabal config file.--~~~~~~~~~~~~~~~-$ cat cabal.config-documentation: True-constraints: foo == 1.0, bar >= 2.0, baz-$ cabal build # Uses settings from the cabal.config file-~~~~~~~~~~~~~~~--When you have decided that you no longer want to build your package inside a-sandbox, just delete it:--~~~~~~~~~~~~~~~-$ cabal sandbox delete # Built-in command-$ rm -rf .cabal-sandbox cabal.sandbox.config # Alternative manual method-~~~~~~~~~~~~~~~--### Sandboxes: advanced usage ###--The default behaviour of the `add-source` command is to track modifications done-to the added dependency and reinstall the sandbox copy of the package when-needed. Sometimes this is not desirable: in these cases you can use `add-source---snapshot`, which disables the change tracking. In addition to `add-source`,-there are also `list-sources` and `delete-source` commands.--Sometimes one wants to share a single sandbox between multiple packages. This-can be easily done with the `--sandbox` option:--~~~~~~~~~~~~~~~-$ mkdir -p /path/to/shared-sandbox-$ cd /path/to/shared-sandbox-$ cabal sandbox init --sandbox .-$ cd /path/to/package-a-$ cabal sandbox init --sandbox /path/to/shared-sandbox-$ cd /path/to/package-b-$ cabal sandbox init --sandbox /path/to/shared-sandbox-~~~~~~~~~~~~~~~--Note that `cabal sandbox init --sandbox .` puts all sandbox files into the-current directory. By default, `cabal sandbox init` initialises a new sandbox in-a newly-created subdirectory of the current working directory-(`./.cabal-sandbox`).--Using multiple different compiler versions simultaneously is also supported, via-the `-w` option:--~~~~~~~~~~~~~~~-$ cabal sandbox init-$ cabal install --only-dependencies -w /path/to/ghc-1 # Install dependencies for both compilers-$ cabal install --only-dependencies -w /path/to/ghc-2-$ cabal configure -w /path/to/ghc-1 # Build with the first compiler-$ cabal build-$ cabal configure -w /path/to/ghc-2 # Build with the second compiler-$ cabal build-~~~~~~~~~~~~~~~--It can be occasionally useful to run the compiler-specific package manager tool-(e.g. `ghc-pkg`) tool on the sandbox package DB directly (for example, you may-need to unregister some packages). The `cabal sandbox hc-pkg` command is a-convenient wrapper that runs the compiler-specific package manager tool with the-arguments:--~~~~~~~~~~~~~~~-$ cabal -v sandbox hc-pkg list-Using a sandbox located at /path/to/.cabal-sandbox-'ghc-pkg' '--global' '--no-user-package-conf'- '--package-conf=/path/to/.cabal-sandbox/i386-linux-ghc-7.4.2-packages.conf.d'- 'list'-[...]-~~~~~~~~~~~~~~~--The `--require-sandbox` option makes all sandbox-aware commands-(`install`/`build`/etc.) exit with error if there is no sandbox present. This-makes it harder to accidentally modify the user package database. The option can-be also turned on via the per-user configuration file (`~/.cabal/config`) or the-per-project one (`$PROJECT_DIR/cabal.config`). The error can be squelched with-`--no-require-sandbox`.--The option `--sandbox-config-file` allows to specify the location of the-`cabal.sandbox.config` file (by default, `cabal` searches for it in the current-directory). This provides the same functionality as shared sandboxes, but-sometimes can be more convenient. Example:--~~~~~~~~~~~~~~~-$ mkdir my/sandbox-$ cd my/sandbox-$ cabal sandbox init-$ cd /path/to/my/project-$ cabal --sandbox-config-file=/path/to/my/sandbox/cabal.sandbox.config install-# Uses the sandbox located at /path/to/my/sandbox/.cabal-sandbox-$ cd ~-$ cabal --sandbox-config-file=/path/to/my/sandbox/cabal.sandbox.config install-# Still uses the same sandbox-~~~~~~~~~~~~~~~--The sandbox config file can be also specified via the `CABAL_SANDBOX_CONFIG`-environment variable.--Finally, the flag `--ignore-sandbox` lets you temporarily ignore an existing-sandbox:--~~~~~~~~~~~~~~~-$ mkdir my/sandbox-$ cd my/sandbox-$ cabal sandbox init-$ cabal --ignore-sandbox install text-# Installs 'text' in the user package database ('~/.cabal').-~~~~~~~~~~~~~~~--## Creating a binary package ##--When creating binary packages (e.g. for Red Hat or Debian) one needs to-create a tarball that can be sent to another system for unpacking in the-root directory:--~~~~~~~~~~~~~~~~-runhaskell Setup.hs configure --prefix=/usr-runhaskell Setup.hs build-runhaskell Setup.hs copy --destdir=/tmp/mypkg-tar -czf mypkg.tar.gz /tmp/mypkg/-~~~~~~~~~~~~~~~~--If the package contains a library, you need two additional steps:--~~~~~~~~~~~~~~~~-runhaskell Setup.hs register --gen-script-runhaskell Setup.hs unregister --gen-script-~~~~~~~~~~~~~~~~--This creates shell scripts `register.sh` and `unregister.sh`, which must-also be sent to the target system. After unpacking there, the package-must be registered by running the `register.sh` script. The-`unregister.sh` script would be used in the uninstall procedure of the-package. Similar steps may be used for creating binary packages for-Windows.---The following options are understood by all commands:--`--help`, `-h` or `-?`-: List the available options for the command.--`--verbose=`_n_ or `-v`_n_-: Set the verbosity level (0-3). The normal level is 1; a missing _n_- defaults to 2.--The various commands and the additional options they support are-described below. In the simple build infrastructure, any other options-will be reported as errors.--## setup configure ##--Prepare to build the package. Typically, this step checks that the-target platform is capable of building the package, and discovers-platform-specific features that are needed during the build.--The user may also adjust the behaviour of later stages using the options-listed in the following subsections. In the simple build-infrastructure, the values supplied via these options are recorded in a-private file read by later stages.--If a user-supplied `configure` script is run (see the section on-[system-dependent-parameters](developing-packages.html#system-dependent-parameters) or on-[complex packages](developing-packages.html#more-complex-packages)), it-is passed the `--with-hc-pkg`, `--prefix`, `--bindir`, `--libdir`, `--dynlibdir`,-`--datadir`, `--libexecdir` and `--sysconfdir` options. In addition the-value of the `--with-compiler` option is passed in a `--with-hc` option-and all options specified with `--configure-option=` are passed on.--### Programs used for building ###--The following options govern the programs used to process the source-files of a package:--`--ghc` or `-g`, `--jhc`, `--lhc`, `--uhc`-: Specify which Haskell implementation to use to build the package.- At most one of these flags may be given. If none is given, the- implementation under which the setup script was compiled or- interpreted is used.--`--with-compiler=`_path_ or `-w`_path_-: Specify the path to a particular compiler. If given, this must match- the implementation selected above. The default is to search for the- usual name of the selected implementation.-- This flag also sets the default value of the `--with-hc-pkg` option- to the package tool for this compiler. Check the output of `setup- configure -v` to ensure that it finds the right package tool (or use- `--with-hc-pkg` explicitly).---`--with-hc-pkg=`_path_-: Specify the path to the package tool, e.g. `ghc-pkg`. The package- tool must be compatible with the compiler specified by- `--with-compiler`. If this option is omitted, the default value is- determined from the compiler selected.--`--with-`_`prog`_`=`_path_-: Specify the path to the program _prog_. Any program known to Cabal- can be used in place of _prog_. It can either be a fully path or the- name of a program that can be found on the program search path. For- example: `--with-ghc=ghc-6.6.1` or- `--with-cpphs=/usr/local/bin/cpphs`.- The full list of accepted programs is not enumerated in this user guide.- Rather, run `cabal install --help` to view the list.--`--`_`prog`_`-options=`_options_-: Specify additional options to the program _prog_. Any program known- to Cabal can be used in place of _prog_. For example:- `--alex-options="--template=mytemplatedir/"`. The _options_ is split- into program options based on spaces. Any options containing embedded- spaced need to be quoted, for example- `--foo-options='--bar="C:\Program File\Bar"'`. As an alternative- that takes only one option at a time but avoids the need to quote,- use `--`_`prog`_`-option` instead.--`--`_`prog`_`-option=`_option_-: Specify a single additional option to the program _prog_. For- passing an option that contain embedded spaces, such as a file name- with embedded spaces, using this rather than `--`_`prog`_`-options`- means you do not need an additional level of quoting. Of course if- you are using a command shell you may still need to quote, for- example `--foo-options="--bar=C:\Program File\Bar"`.--All of the options passed with either `--`_`prog`_`-options` or-`--`_`prog`_`-option` are passed in the order they were specified on the-configure command line.--### Installation paths ###--The following options govern the location of installed files from a-package:--`--prefix=`_dir_-: The root of the installation. For example for a global install you- might use `/usr/local` on a Unix system, or `C:\Program Files` on a- Windows system. The other installation paths are usually- subdirectories of _prefix_, but they don't have to be.-- In the simple build system, _dir_ may contain the following path- variables: `$pkgid`, `$pkg`, `$version`, `$compiler`, `$os`,- `$arch`, `$abi`, `$abitag`--`--bindir=`_dir_-: Executables that the user might invoke are installed here.-- In the simple build system, _dir_ may contain the following path- variables: `$prefix`, `$pkgid`, `$pkg`, `$version`, `$compiler`,- `$os`, `$arch`, `$abi`, `$abitag--`--libdir=`_dir_-: Object-code libraries are installed here.-- In the simple build system, _dir_ may contain the following path- variables: `$prefix`, `$bindir`, `$pkgid`, `$pkg`, `$version`,- `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--`--dynlibdir=`_dir_-: Dynamic libraries are installed here.-- By default, this is set to `$libdir/$abi`, which is usually not equal to- `$libdir/$libsubdir`.-- In the simple build system, _dir_ may contain the following path- variables: `$prefix`, `$bindir`, `$libdir`, `$pkgid`, `$pkg`, `$version`,- `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`---`--libexecdir=`_dir_-: Executables that are not expected to be invoked directly by the user- are installed here.-- In the simple build system, _dir_ may contain the following path- variables: `$prefix`, `$bindir`, `$libdir`, `$libsubdir`, `$pkgid`,- `$pkg`, `$version`, `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--`--datadir`=_dir_-: Architecture-independent data files are installed here.-- In the simple build system, _dir_ may contain the following path- variables: `$prefix`, `$bindir`, `$libdir`, `$libsubdir`, `$pkgid`, `$pkg`,- `$version`, `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--`--sysconfdir=`_dir_-: Installation directory for the configuration files.-- In the simple build system, _dir_ may contain the following path variables:- `$prefix`, `$bindir`, `$libdir`, `$libsubdir`, `$pkgid`, `$pkg`, `$version`,- `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--In addition the simple build system supports the following installation path options:--`--libsubdir=`_dir_-: A subdirectory of _libdir_ in which libraries are actually- installed. For example, in the simple build system on Unix, the- default _libdir_ is `/usr/local/lib`, and _libsubdir_ contains the- package identifier and compiler, e.g. `mypkg-0.2/ghc-6.4`, so- libraries would be installed in `/usr/local/lib/mypkg-0.2/ghc-6.4`.-- _dir_ may contain the following path variables: `$pkgid`, `$pkg`,- `$version`, `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--`--datasubdir=`_dir_-: A subdirectory of _datadir_ in which data files are actually- installed.-- _dir_ may contain the following path variables: `$pkgid`, `$pkg`,- `$version`, `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--`--docdir=`_dir_-: Documentation files are installed relative to this directory.-- _dir_ may contain the following path variables: `$prefix`, `$bindir`,- `$libdir`, `$libsubdir`, `$datadir`, `$datasubdir`, `$pkgid`, `$pkg`,- `$version`, `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--`--htmldir=`_dir_-: HTML documentation files are installed relative to this directory.-- _dir_ may contain the following path variables: `$prefix`, `$bindir`,- `$libdir`, `$libsubdir`, `$datadir`, `$datasubdir`, `$docdir`, `$pkgid`,- `$pkg`, `$version`, `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--`--program-prefix=`_prefix_-: Prepend _prefix_ to installed program names.-- _prefix_ may contain the following path variables: `$pkgid`, `$pkg`,- `$version`, `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--`--program-suffix=`_suffix_-: Append _suffix_ to installed program names. The most obvious use for- this is to append the program's version number to make it possible- to install several versions of a program at once:- `--program-suffix='$version'`.-- _suffix_ may contain the following path variables: `$pkgid`, `$pkg`,- `$version`, `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`--#### Path variables in the simple build system ####--For the simple build system, there are a number of variables that can be-used when specifying installation paths. The defaults are also specified-in terms of these variables. A number of the variables are actually for-other paths, like `$prefix`. This allows paths to be specified relative-to each other rather than as absolute paths, which is important for-building relocatable packages (see [prefix-independence](#prefix-independence)).--`$prefix`-: The path variable that stands for the root of the installation. For- an installation to be relocatable, all other installation paths must- be relative to the `$prefix` variable.--`$bindir`-: The path variable that expands to the path given by the `--bindir`- configure option (or the default).--`$libdir`-: As above but for `--libdir`--`$dynlibdir`-: As above but for `--dynlibdir`--`$libsubdir`-: As above but for `--libsubdir`--`$datadir`-: As above but for `--datadir`--`$datasubdir`-: As above but for `--datasubdir`--`$docdir`-: As above but for `--docdir`--`$pkgid`-: The name and version of the package, e.g. `mypkg-0.2`--`$pkg`-: The name of the package, e.g. `mypkg`--`$version`-: The version of the package, e.g. `0.2`--`$compiler`-: The compiler being used to build the package, e.g. `ghc-6.6.1`--`$os`-: The operating system of the computer being used to build the- package, e.g. `linux`, `windows`, `osx`, `freebsd` or `solaris`--`$arch`-: The architecture of the computer being used to build the package, e.g.- `i386`, `x86_64`, `ppc` or `sparc`--`$abitag`-: An optional tag that a compiler can use for telling incompatible ABI's- on the same architecture apart. GHCJS encodes the underlying GHC version- in the ABI tag.--`$abi`-: A shortcut for getting a path that completely identifies the platform in terms- of binary compatibility. Expands to the same value as `$arch-$os-compiler-$abitag`- if the compiler uses an abi tag, `$arch-$os-$compiler` if it doesn't.--#### Paths in the simple build system ####--For the simple build system, the following defaults apply:--Option Windows Default Unix Default-------- ---------------- --------------`--prefix` (global) `C:\Program Files\Haskell` `/usr/local`-`--prefix` (per-user) `C:\Documents And Settings\user\Application Data\cabal` `$HOME/.cabal`-`--bindir` `$prefix\bin` `$prefix/bin`-`--libdir` `$prefix` `$prefix/lib`-`--libsubdir` (others) `$pkgid\$compiler` `$pkgid/$compiler`-`--dynlibdir` `$libdir\$abi` `$libdir/$abi`-`--libexecdir` `$prefix\$pkgid` `$prefix/libexec`-`--datadir` (executable) `$prefix` `$prefix/share`-`--datadir` (library) `C:\Program Files\Haskell` `$prefix/share`-`--datasubdir` `$pkgid` `$pkgid`-`--docdir` `$prefix\doc\$pkgid` `$datadir/doc/$pkgid`-`--sysconfdir` `$prefix\etc` `$prefix/etc`-`--htmldir` `$docdir\html` `$docdir/html`-`--program-prefix` (empty) (empty)-`--program-suffix` (empty) (empty)---#### Prefix-independence ####--On Windows it is possible to obtain the pathname of the running program. This-means that we can construct an installable executable package that is-independent of its absolute install location. The executable can find its-auxiliary files by finding its own path and knowing the location of the other-files relative to `$bindir`. Prefix-independence is particularly useful: it-means the user can choose the install location (i.e. the value of `$prefix`) at-install-time, rather than having to bake the path into the binary when it is-built.--In order to achieve this, we require that for an executable on Windows,-all of `$bindir`, `$libdir`, `$dynlibdir`, `$datadir` and `$libexecdir` begin with-`$prefix`. If this is not the case then the compiled executable will-have baked-in all absolute paths.--The application need do nothing special to achieve prefix-independence.-If it finds any files using `getDataFileName` and the [other functions-provided for the-purpose](developing-packages.html#accessing-data-files-from-package-code),-the files will be accessed relative to the location of the current-executable.--A library cannot (currently) be prefix-independent, because it will be-linked into an executable whose file system location bears no relation-to the library package.--### Controlling Flag Assignments ###--Flag assignments (see the [resolution of conditions and-flags](developing-packages.html#resolution-of-conditions-and-flags)) can-be controlled with the following command line options.--`-f` _flagname_ or `-f` `-`_flagname_-: Force the specified flag to `true` or `false` (if preceded with a `-`). Later- specifications for the same flags will override earlier, i.e.,- specifying `-fdebug -f-debug` is equivalent to `-f-debug`--`--flags=`_flagspecs_-: Same as `-f`, but allows specifying multiple flag assignments at- once. The parameter is a space-separated list of flag names (to- force a flag to `true`), optionally preceded by a `-` (to force a- flag to `false`). For example, `--flags="debug -feature1 feature2"` is- equivalent to `-fdebug -f-feature1 -ffeature2`.--### Building Test Suites ###--`--enable-tests`-: Build the test suites defined in the package description file during the- `build` stage. Check for dependencies required by the test suites. If the- package is configured with this option, it will be possible to run the test- suites with the `test` command after the package is built.--`--disable-tests`-: (default) Do not build any test suites during the `build` stage.- Do not check for dependencies required only by the test suites. It will not- be possible to invoke the `test` command without reconfiguring the package.--`--enable-coverage`-: Build libraries and executables (including test suites) with Haskell- Program Coverage enabled. Running the test suites will automatically- generate coverage reports with HPC.--`--disable-coverage`-: (default) Do not enable Haskell Program Coverage.--### Miscellaneous options ##--`--user`-: Does a per-user installation. This changes the [default installation- prefix](#paths-in-the-simple-build-system). It also allow- dependencies to be satisfied by the user's package database, in- addition to the global database. This also implies a default of- `--user` for any subsequent `install` command, as packages- registered in the global database should not depend on packages- registered in a user's database.--`--global`-: (default) Does a global installation. In this case package- dependencies must be satisfied by the global package database. All- packages in the user's package database will be ignored. Typically- the final installation step will require administrative privileges.--`--package-db=`_db_-: Allows package dependencies to be satisfied from this additional- package database _db_ in addition to the global package database.- All packages in the user's package database will be ignored. The- interpretation of _db_ is implementation-specific. Typically it will- be a file or directory. Not all implementations support arbitrary- package databases.--`--default-user-config=` _file_-: Allows a "default" `cabal.config` freeze file to be passed in- manually. This file will only be used if one does not exist in the- project directory already. Typically, this can be set from the global- cabal `config` file so as to provide a default set of partial- constraints to be used by projects, providing a way for users to peg- themselves to stable package collections.--`--enable-optimization`[=_n_] or `-O`[_n_]-: (default) Build with optimization flags (if available). This is- appropriate for production use, taking more time to build faster- libraries and programs.-- The optional _n_ value is the optimisation level. Some compilers- support multiple optimisation levels. The range is 0 to 2. Level 0- is equivalent to `--disable-optimization`, level 1 is the default if- no _n_ parameter is given. Level 2 is higher optimisation if the- compiler supports it. Level 2 is likely to lead to longer compile- times and bigger generated code.--`--disable-optimization`-: Build without optimization. This is suited for development: building- will be quicker, but the resulting library or programs will be slower.--`--enable-profiling`-: Build libraries and executables with profiling enabled (for compilers- that support profiling as a separate mode). For this to work, all- libraries used by this package must also have been built with profiling- support. For libraries this involves building an additional instance of- the library in addition to the normal non-profiling instance. For- executables it changes the single executable to be built in profiling mode.-- This flag covers both libraries and executables, but can be overridden- by the `--enable-library-profiling` flag.-- See also the `--profiling-detail` flag below.--`--disable-profiling`-: (default) Do not enable profiling in generated libraries and executables.--`--enable-library-profiling` or `-p`-: As with `--enable-profiling` above, but it applies only for libraries. So- this generates an additional profiling instance of the library in addition- to the normal non-profiling instance.-- The `--enable-profiling` flag controls the profiling mode for both- libraries and executables, but if different modes are desired for- libraries versus executables then use `--enable-library-profiling` as well.--`--disable-library-profiling`-: (default) Do not generate an additional profiling version of the- library.--`--profiling-detail`[=_level_]-: Some compilers that support profiling, notably GHC, can allocate costs to- different parts of the program and there are different levels of- granularity or detail with which this can be done. In particular for GHC- this concept is called "cost centers", and GHC can automatically add cost- centers, and can do so in different ways.-- This flag covers both libraries and executables, but can be overridden- by the `--library-profiling-detail` flag.-- Currently this setting is ignored for compilers other than GHC. The levels- that cabal currently supports are:-- `default`- : For GHC this uses `exported-functions` for libraries and- `toplevel-functions` for executables.-- `none`- : No costs will be assigned to any code within this component.-- `exported-functions`- : Costs will be assigned at the granularity of all top level functions- exported from each module. In GHC specifically, this is for non-inline- functions.-- `toplevel-functions`- : Costs will be assigned at the granularity of all top level functions- in each module, whether they are exported from the module or not.- In GHC specifically, this is for non-inline functions.-- `all-functions`- : Costs will be assigned at the granularity of all functions in each- module, whether top level or local. In GHC specifically, this is for- non-inline toplevel or where-bound functions or values.-- This flag is new in Cabal-1.24. Prior versions used the equivalent of- `none` above.--`--library-profiling-detail`[=_level_]-: As with `--profiling-detail` above, but it applies only for libraries.-- The level for both libraries and executables is set by the- `--profiling-detail` flag, but if different levels are desired for- libraries versus executables then use `--library-profiling-detail` as well.---`--enable-library-vanilla`-: (default) Build ordinary libraries (as opposed to profiling- libraries). This is independent of the `--enable-library-profiling`- option. If you enable both, you get both.--`--disable-library-vanilla`-: Do not build ordinary libraries. This is useful in conjunction with- `--enable-library-profiling` to build only profiling libraries,- rather than profiling and ordinary libraries.--`--enable-library-for-ghci`-: (default) Build libraries suitable for use with GHCi.--`--disable-library-for-ghci`-: Not all platforms support GHCi and indeed on some platforms, trying- to build GHCi libs fails. In such cases this flag can be used as a- workaround.--`--enable-split-objs`-: Use the GHC `-split-objs` feature when building the library. This- reduces the final size of the executables that use the library by- allowing them to link with only the bits that they use rather than- the entire library. The downside is that building the library takes- longer and uses considerably more memory.--`--disable-split-objs`-: (default) Do not use the GHC `-split-objs` feature. This makes- building the library quicker but the final executables that use the- library will be larger.--`--enable-executable-stripping`-: (default) When installing binary executable programs, run the- `strip` program on the binary. This can considerably reduce the size- of the executable binary file. It does this by removing debugging- information and symbols. While such extra information is useful for- debugging C programs with traditional debuggers it is rarely helpful- for debugging binaries produced by Haskell compilers.-- Not all Haskell implementations generate native binaries. For such- implementations this option has no effect.--`--disable-executable-stripping`-: Do not strip binary executables during installation. You might want- to use this option if you need to debug a program using gdb, for- example if you want to debug the C parts of a program containing- both Haskell and C code. Another reason is if your are building a- package for a system which has a policy of managing the stripping- itself (such as some Linux distributions).--`--enable-shared`-: Build shared library. This implies a separate compiler run to- generate position independent code as required on most platforms.--`--disable-shared`-: (default) Do not build shared library.--`--enable-executable-dynamic`-: Link executables dynamically. The executable's library dependencies should- be built as shared objects. This implies `--enable-shared` unless- `--disable-shared` is explicitly specified.--`--disable-executable-dynamic`-: (default) Link executables statically.--`--configure-option=`_str_-: An extra option to an external `configure` script, if one is used- (see the section on [system-dependent- parameters](developing-packages.html#system-dependent-parameters)).- There can be several of these options.--`--extra-include-dirs`[=_dir_]-: An extra directory to search for C header files. You can use this- flag multiple times to get a list of directories.-- You might need to use this flag if you have standard system header- files in a non-standard location that is not mentioned in the- package's `.cabal` file. Using this option has the same affect as- appending the directory _dir_ to the `include-dirs` field in each- library and executable in the package's `.cabal` file. The advantage- of course is that you do not have to modify the package at all.- These extra directories will be used while building the package and- for libraries it is also saved in the package registration- information and used when compiling modules that use the library.--`--extra-lib-dirs`[=_dir_]-: An extra directory to search for system libraries files. You can use- this flag multiple times to get a list of directories.--`--extra-framework-dirs`[=_dir_]-: An extra directory to search for frameworks (OS X only). You can use this- flag multiple times to get a list of directories.-- You might need to use this flag if you have standard system- libraries in a non-standard location that is not mentioned in the- package's `.cabal` file. Using this option has the same affect as- appending the directory _dir_ to the `extra-lib-dirs` field in each- library and executable in the package's `.cabal` file. The advantage- of course is that you do not have to modify the package at all.- These extra directories will be used while building the package and- for libraries it is also saved in the package registration- information and used when compiling modules that use the library.--`--allow-newer`[=_pkgs_]-: Selectively relax upper bounds in dependencies without editing the- package description.-- If you want to install a package A that depends on B >= 1.0 && < 2.0, but- you have the version 2.0 of B installed, you can compile A against B 2.0 by- using `cabal install --allow-newer=B A`. This works for the whole package- index: if A also depends on C that in turn depends on B < 2.0, C's- dependency on B will be also relaxed.-- Example:-- ~~~~~~~~~~~~~~~~- $ cd foo- $ cabal configure- Resolving dependencies...- cabal: Could not resolve dependencies:- [...]- $ cabal configure --allow-newer- Resolving dependencies...- Configuring foo...- ~~~~~~~~~~~~~~~~-- Additional examples:-- ~~~~~~~~~~~~~~~~- # Relax upper bounds in all dependencies.- $ cabal install --allow-newer foo-- # Relax upper bounds only in dependencies on bar, baz and quux.- $ cabal install --allow-newer=bar,baz,quux foo-- # Relax the upper bound on bar and force bar==2.1.- $ cabal install --allow-newer=bar --constraint="bar==2.1" foo- ~~~~~~~~~~~~~~~~-- It's also possible to limit the scope of `--allow-newer` to single- packages with the `--allow-newer=scope:dep` syntax. This means that the- dependency on `dep` will be relaxed only for the package `scope`.-- Example:-- ~~~~~~~~~~~~~~~~- # Relax upper bound in foo's dependency on base; also relax upper bound in- # every package's dependency on lens.- $ cabal install --allow-newer=foo:base,lens-- # Relax upper bounds in foo's dependency on base and bar's dependency- # on time; also relax the upper bound in the dependency on lens specified by- # any package.- $ cabal install --allow-newer=foo:base,lens --allow-newer=bar:time- ~~~~~~~~~~~~~~~~-- Finally, one can enable `--allow-newer` permanently by setting `allow-newer:- True` in the `~/.cabal/config` file. Enabling 'allow-newer' selectively is- also supported in the config file (`allow-newer: foo, bar, baz:base`).--`--constraint=`_constraint_-: Restrict solutions involving a package to a given version range.- For example, `cabal install --constraint="bar==2.1"` will only consider- install plans that do not use `bar` at all, or `bar` of version 2.1.-- As a special case, `cabal install --constraint="bar -none"` prevents `bar`- from being used at all (`-none` abbreviates `> 1 && < 1`); `cabal install- --constraint="bar installed"` prevents reinstallation of the `bar` package;- `cabal install --constraint="bar +foo -baz"` specifies that the flag `foo`- should be turned on and the `baz` flag should be turned off.--## setup build ##--Perform any preprocessing or compilation needed to make this package ready for installation.--This command takes the following options:----_prog_-options=_options_, --_prog_-option=_option_-: These are mostly the same as the [options configure- step](#setup-configure). Unlike the options specified at the- configure step, any program options specified at the build step are- not persistent but are used for that invocation only. They options- specified at the build step are in addition not in replacement of- any options specified at the configure step.--## setup haddock ##--Build the documentation for the package using [haddock][]. By default,-only the documentation for the exposed modules is generated (but see the-`--executables` and `--internal` flags below).--This command takes the following options:--`--hoogle`-: Generate a file `dist/doc/html/`_pkgid_`.txt`, which can be- converted by [Hoogle](http://www.haskell.org/hoogle/) into a- database for searching. This is equivalent to running [haddock][]- with the `--hoogle` flag.--`--html-location=`_url_-: Specify a template for the location of HTML documentation for- prerequisite packages. The substitutions ([see- listing](#paths-in-the-simple-build-system)) are applied to the- template to obtain a location for each package, which will be used- by hyperlinks in the generated documentation. For example, the- following command generates links pointing at [Hackage] pages:-- > setup haddock --html-location='http://hackage.haskell.org/packages/archive/$pkg/latest/doc/html'-- Here the argument is quoted to prevent substitution by the shell. If- this option is omitted, the location for each package is obtained- using the package tool (e.g. `ghc-pkg`).--`--executables`-: Also run [haddock][] for the modules of all the executable programs.- By default [haddock][] is run only on the exported modules.--`--internal`-: Run [haddock][] for the all modules, including unexposed ones, and- make [haddock][] generate documentation for unexported symbols as- well.--`--css=`_path_-: The argument _path_ denotes a CSS file, which is passed to- [haddock][] and used to set the style of the generated- documentation. This is only needed to override the default style- that [haddock][] uses.--`--hyperlink-source`-: Generate [haddock][] documentation integrated with [HsColour][].- First, [HsColour][] is run to generate colourised code. Then- [haddock][] is run to generate HTML documentation. Each entity- shown in the documentation is linked to its definition in the- colourised code.--`--hscolour-css=`_path_-: The argument _path_ denotes a CSS file, which is passed to [HsColour][] as in-- > runhaskell Setup.hs hscolour --css=_path_--## setup hscolour ##--Produce colourised code in HTML format using [HsColour][]. Colourised-code for exported modules is put in `dist/doc/html/`_pkgid_`/src`.--This command takes the following options:--`--executables`-: Also run [HsColour][] on the sources of all executable programs.- Colourised code is put in `dist/doc/html/`_pkgid_/_executable_`/src`.--`--css=`_path_-: Use the given CSS file for the generated HTML files. The CSS file- defines the colours used to colourise code. Note that this copies- the given CSS file to the directory with the generated HTML files- (renamed to `hscolour.css`) rather than linking to it.--## setup install ##--Copy the files into the install locations and (for library packages)-register the package with the compiler, i.e. make the modules it-contains available to programs.--The [install locations](#installation-paths) are determined by options-to `setup configure`.--This command takes the following options:--`--global`-: Register this package in the system-wide database. (This is the- default, unless the `--user` option was supplied to the `configure`- command.)--`--user`-: Register this package in the user's local package database. (This is- the default if the `--user` option was supplied to the `configure`- command.)--## setup copy ##--Copy the files without registering them. This command is mainly of use-to those creating binary packages.--This command takes the following option:--`--destdir=`_path_--Specify the directory under which to place installed files. If this is-not given, then the root directory is assumed.--## setup register ##--Register this package with the compiler, i.e. make the modules it-contains available to programs. This only makes sense for library-packages. Note that the `install` command incorporates this action. The-main use of this separate command is in the post-installation step for a-binary package.--This command takes the following options:--`--global`-: Register this package in the system-wide database. (This is the default.)---`--user`-: Register this package in the user's local package database.---`--gen-script`-: Instead of registering the package, generate a script containing- commands to perform the registration. On Unix, this file is called- `register.sh`, on Windows, `register.bat`. This script might be- included in a binary bundle, to be run after the bundle is unpacked- on the target system.--`--gen-pkg-config`[=_path_]-: Instead of registering the package, generate a package registration- file. This only applies to compilers that support package- registration files which at the moment is only GHC. The file should- be used with the compiler's mechanism for registering packages. This- option is mainly intended for packaging systems. If possible use the- `--gen-script` option instead since it is more portable across- Haskell implementations. The _path_ is- optional and can be used to specify a particular output file to- generate. Otherwise, by default the file is the package name and- version with a `.conf` extension.--`--inplace`-: Registers the package for use directly from the build tree, without- needing to install it. This can be useful for testing: there's no- need to install the package after modifying it, just recompile and- test.-- This flag does not create a build-tree-local package database. It- still registers the package in one of the user or global databases.-- However, there are some caveats. It only works with GHC- (currently). It only works if your package doesn't depend on having- any supplemental files installed --- plain Haskell libraries should- be fine.--## setup unregister ##--Deregister this package with the compiler.--This command takes the following options:--`--global`-: Deregister this package in the system-wide database. (This is the default.)--`--user`-: Deregister this package in the user's local package database.--`--gen-script`-: Instead of deregistering the package, generate a script containing- commands to perform the deregistration. On Unix, this file is- called `unregister.sh`, on Windows, `unregister.bat`. This script- might be included in a binary bundle, to be run on the target- system.--## setup clean ##--Remove any local files created during the `configure`, `build`,-`haddock`, `register` or `unregister` steps, and also any files and-directories listed in the `extra-tmp-files` field.--This command takes the following options:--`--save-configure` or `-s`-: Keeps the configuration information so it is not necessary to run- the configure step again before building.--## setup test ##--Run the test suites specified in the package description file. Aside from-the following flags, Cabal accepts the name of one or more test suites on the-command line after `test`. When supplied, Cabal will run only the named test-suites, otherwise, Cabal will run all test suites in the package.--`--builddir=`_dir_-: The directory where Cabal puts generated build files (default: `dist`).- Test logs will be located in the `test` subdirectory.--`--human-log=`_path_-: The template used to name human-readable test logs; the path is relative- to `dist/test`. By default, logs are named according to the template- `$pkgid-$test-suite.log`, so that each test suite will be logged to its own- human-readable log file. Template variables allowed are: `$pkgid`,- `$compiler`, `$os`, `$arch`, `$abi`, `$abitag`, `$test-suite`, and `$result`.--`--machine-log=`_path_-: The path to the machine-readable log, relative to `dist/test`. The default- template is `$pkgid.log`. Template variables allowed are: `$pkgid`,- `$compiler`, `$os`, `$arch`, `$abi`, `$abitag` and `$result`.--`--show-details=`_filter_-: Determines if the results of individual test cases are shown on the- terminal. May be `always` (always show), `never` (never show), `failures`- (show only failed results), or `streaming` (show all results in real time).--`--test-options=`_options_-: Give extra options to the test executables.--`--test-option=`_option_-: give an extra option to the test executables. There is no need to quote- options containing spaces because a single option is assumed, so options- will not be split on spaces.--## setup sdist ##--Create a system- and compiler-independent source distribution in a file-_package_-_version_`.tar.gz` in the `dist` subdirectory, for-distribution to package builders. When unpacked, the commands listed in-this section will be available.--The files placed in this distribution are the package description file,-the setup script, the sources of the modules named in the package-description file, and files named in the `license-file`, `main-is`,-`c-sources`, `js-sources`, `data-files`, `extra-source-files` and-`extra-doc-files` fields.--This command takes the following option:--`--snapshot`-: Append today's date (in "YYYYMMDD" format) to the version number for- the generated source package. The original package is unaffected.---[dist-simple]: ../release/cabal-latest/doc/API/Cabal/Distribution-Simple.html-[dist-make]: ../release/cabal-latest/doc/API/Cabal/Distribution-Make.html-[dist-license]: ../release/cabal-latest/doc/API/Cabal/Distribution-License.html#t:License-[extension]: ../release/cabal-latest/doc/API/Cabal/Language-Haskell-Extension.html#t:Extension-[BuildType]: ../release/cabal-latest/doc/API/Cabal/Distribution-PackageDescription.html#t:BuildType-[alex]: http://www.haskell.org/alex/-[autoconf]: http://www.gnu.org/software/autoconf/-[c2hs]: http://www.cse.unsw.edu.au/~chak/haskell/c2hs/-[cpphs]: http://projects.haskell.org/cpphs/-[greencard]: http://hackage.haskell.org/package/greencard-[haddock]: http://www.haskell.org/haddock/-[HsColour]: http://www.cs.york.ac.uk/fp/darcs/hscolour/-[happy]: http://www.haskell.org/happy/-[Hackage]: http://hackage.haskell.org/-[pkg-config]: http://www.freedesktop.org/wiki/Software/pkg-config/
+ doc/installing-packages.rst view
@@ -0,0 +1,1702 @@+Configuration+=============++.. highlight:: cabal++Overview+--------++The global configuration file for ``cabal-install`` is+``~/.cabal/config``. If you do not have this file, ``cabal`` will create+it for you on the first call to ``cabal update``. Alternatively, you can+explicitly ask ``cabal`` to create it for you using++.. code-block:: console++ $ cabal user-config update++Most of the options in this configuration file are also available as+command line arguments, and the corresponding documentation can be used+to lookup their meaning. The created configuration file only specifies+values for a handful of options. Most options are left at their default+value, which it documents; for instance,++::++ -- executable-stripping: True++means that the configuration file currently does not specify a value for+the ``executable-stripping`` option (the line is commented out), and+that the default is ``True``; if you wanted to disable stripping of+executables by default, you would change this line to++::++ executable-stripping: False++You can also use ``cabal user-config update`` to migrate configuration+files created by older versions of ``cabal``.++Repository specification+------------------------++An important part of the configuration if the specification of the+repository. When ``cabal`` creates a default config file, it configures+the repository to be the central Hackage server:++::++ repository hackage.haskell.org+ url: http://hackage.haskell.org/++The name of the repository is given on the first line, and can be+anything; packages downloaded from this repository will be cached under+``~/.cabal/packages/hackage.haskell.org`` (or whatever name you specify;+you can change the prefix by changing the value of+``remote-repo-cache``). If you want, you can configure multiple+repositories, and ``cabal`` will combine them and be able to download+packages from any of them.++Using secure repositories+^^^^^^^^^^^^^^^^^^^^^^^^^++For repositories that support the TUF security infrastructure (this+includes Hackage), you can enable secure access to the repository by+specifying:++::++ repository hackage.haskell.org+ url: http://hackage.haskell.org/+ secure: True+ root-keys: <root-key-IDs>+ key-threshold: <key-threshold>++The ``<root-key-IDs>`` and ``<key-threshold>`` values are used for+bootstrapping. As part of the TUF infrastructure the repository will+contain a file ``root.json`` (for instance,+http://hackage.haskell.org/root.json) which the client needs to do+verification. However, how can ``cabal`` verify the ``root.json`` file+*itself*? This is known as bootstrapping: if you specify a list of root+key IDs and a corresponding threshold, ``cabal`` will verify that the+downloaded ``root.json`` file has been signed with at least+``<key-threshold>`` keys from your set of ``<root-key-IDs>``.++You can, but are not recommended to, omit these two fields. In that case+``cabal`` will download the ``root.json`` field and use it without+verification. Although this bootstrapping step is then unsafe, all+subsequent access is secure (provided that the downloaded ``root.json``+was not tempered with). Of course, adding ``root-keys`` and+``key-threshold`` to your repository specification only shifts the+problem, because now you somehow need to make sure that the key IDs you+received were the right ones. How that is done is however outside the+scope of ``cabal`` proper.++More information about the security infrastructure can be found at+https://github.com/well-typed/hackage-security.++Legacy repositories+^^^^^^^^^^^^^^^^^^^++Currently ``cabal`` supports two kinds of “legacy” repositories. The+first is specified using++::++ remote-repo: hackage.haskell.org:http://hackage.haskell.org/packages/archive++This is just syntactic sugar for++::++ repository hackage.haskell.org+ url: hackage.haskell.org:http://hackage.haskell.org/packages/archive++although, in (and only in) the specific case of Hackage, the URL+``http://hackage.haskell.org/packages/archive`` will be silently+translated to ``http://hackage.haskell.org/``.++The second kind of legacy repositories are so-called “local”+repositories:++::++ local-repo: my-local-repo:/path/to/local/repo++This can be used to access repositories on the local file system.+However, the layout of these local repositories is different from the+layout of remote repositories, and usage of these local repositories is+deprecated.++Secure local repositories+^^^^^^^^^^^^^^^^^^^^^^^^^++If you want to use repositories on your local file system, it is+recommended instead to use a *secure* local repository:++::++ repository my-local-repo+ url: file:/path/to/local/repo+ secure: True+ root-keys: <root-key-IDs>+ key-threshold: <key-threshold>++The layout of these secure local repos matches the layout of remote+repositories exactly; the :hackage-pkg:`hackage-repo-tool`+can be used to create and manage such repositories.++.. _installing-packages:++Building and installing packages+================================++.. highlight:: console++After you've unpacked a Cabal package, you can build it by moving into+the root directory of the package and running the ``cabal`` tool there:++::++ $ cabal [command] [option...]++The *command* argument selects a particular step in the build/install+process.++You can also get a summary of the command syntax with++::++ $ cabal help++Alternatively, you can also use the ``Setup.hs`` or ``Setup.lhs``+script:++::++ $ runhaskell Setup.hs [command] [option...]++For the summary of the command syntax, run:++::++ $ cabal help++or++::++ $ runhaskell Setup.hs --help++Building and installing a system package+----------------------------------------++::++ $ runhaskell Setup.hs configure --ghc+ $ runhaskell Setup.hs build+ $ runhaskell Setup.hs install++The first line readies the system to build the tool using GHC; for+example, it checks that GHC exists on the system. The second line+performs the actual building, while the last both copies the build+results to some permanent place and registers the package with GHC.++Building and installing a user package+--------------------------------------++::++ $ runhaskell Setup.hs configure --user+ $ runhaskell Setup.hs build+ $ runhaskell Setup.hs install++The package is installed under the user's home directory and is+registered in the user's package database (:option:`setup configure --user`).++Installing packages from Hackage+--------------------------------++The ``cabal`` tool also can download, configure, build and install a+Hackage_ package and all of its+dependencies in a single step. To do this, run:++::++ $ cabal install [PACKAGE...]++To browse the list of available packages, visit the+Hackage_ web site.++Developing with sandboxes+-------------------------++By default, any dependencies of the package are installed into the+global or user package databases (e.g. using+``cabal install --only-dependencies``). If you're building several+different packages that have incompatible dependencies, this can cause+the build to fail. One way to avoid this problem is to build each+package in an isolated environment ("sandbox"), with a sandbox-local+package database. Because sandboxes are per-project, inconsistent+dependencies can be simply disallowed.++For more on sandboxes, see also `this+article <http://coldwa.st/e/blog/2013-08-20-Cabal-sandbox.html>`__.++Sandboxes: basic usage+^^^^^^^^^^^^^^^^^^^^^^++To initialise a fresh sandbox in the current directory, run+``cabal sandbox init``. All subsequent commands (such as ``build`` and+``install``) from this point will use the sandbox.++::++ $ cd /path/to/my/haskell/library+ $ cabal sandbox init # Initialise the sandbox+ $ cabal install --only-dependencies # Install dependencies into the sandbox+ $ cabal build # Build your package inside the sandbox++It can be useful to make a source package available for installation in+the sandbox - for example, if your package depends on a patched or an+unreleased version of a library. This can be done with the+``cabal sandbox add-source`` command - think of it as "local Hackage_".+If an add-source dependency is later modified, it is reinstalled automatically.++::++ $ cabal sandbox add-source /my/patched/library # Add a new add-source dependency+ $ cabal install --dependencies-only # Install it into the sandbox+ $ cabal build # Build the local package+ $ $EDITOR /my/patched/library/Source.hs # Modify the add-source dependency+ $ cabal build # Modified dependency is automatically reinstalled++Normally, the sandbox settings (such as optimisation level) are+inherited from the main Cabal config file (``$HOME/cabal/config``).+Sometimes, though, you need to change some settings specifically for a+single sandbox. You can do this by creating a ``cabal.config`` file in+the same directory with your ``cabal.sandbox.config`` (which was created+by ``sandbox init``). This file has the same syntax as the main Cabal+config file.++::++ $ cat cabal.config+ documentation: True+ constraints: foo == 1.0, bar >= 2.0, baz+ $ cabal build # Uses settings from the cabal.config file++When you have decided that you no longer want to build your package+inside a sandbox, just delete it:++::++ $ cabal sandbox delete # Built-in command+ $ rm -rf .cabal-sandbox cabal.sandbox.config # Alternative manual method++Sandboxes: advanced usage+^^^^^^^^^^^^^^^^^^^^^^^^^++The default behaviour of the ``add-source`` command is to track+modifications done to the added dependency and reinstall the sandbox+copy of the package when needed. Sometimes this is not desirable: in+these cases you can use ``add-source --snapshot``, which disables the+change tracking. In addition to ``add-source``, there are also+``list-sources`` and ``delete-source`` commands.++Sometimes one wants to share a single sandbox between multiple packages.+This can be easily done with the ``--sandbox`` option:++::++ $ mkdir -p /path/to/shared-sandbox+ $ cd /path/to/shared-sandbox+ $ cabal sandbox init --sandbox .+ $ cd /path/to/package-a+ $ cabal sandbox init --sandbox /path/to/shared-sandbox+ $ cd /path/to/package-b+ $ cabal sandbox init --sandbox /path/to/shared-sandbox++Note that ``cabal sandbox init --sandbox .`` puts all sandbox files into+the current directory. By default, ``cabal sandbox init`` initialises a+new sandbox in a newly-created subdirectory of the current working+directory (``./.cabal-sandbox``).++Using multiple different compiler versions simultaneously is also+supported, via the ``-w`` option:++::++ $ cabal sandbox init+ $ cabal install --only-dependencies -w /path/to/ghc-1 # Install dependencies for both compilers+ $ cabal install --only-dependencies -w /path/to/ghc-2+ $ cabal configure -w /path/to/ghc-1 # Build with the first compiler+ $ cabal build+ $ cabal configure -w /path/to/ghc-2 # Build with the second compiler+ $ cabal build++It can be occasionally useful to run the compiler-specific package+manager tool (e.g. ``ghc-pkg``) tool on the sandbox package DB directly+(for example, you may need to unregister some packages). The+``cabal sandbox hc-pkg`` command is a convenient wrapper that runs the+compiler-specific package manager tool with the arguments:++::++ $ cabal -v sandbox hc-pkg list+ Using a sandbox located at /path/to/.cabal-sandbox+ 'ghc-pkg' '--global' '--no-user-package-conf'+ '--package-conf=/path/to/.cabal-sandbox/i386-linux-ghc-7.4.2-packages.conf.d'+ 'list'+ [...]++The ``--require-sandbox`` option makes all sandbox-aware commands+(``install``/``build``/etc.) exit with error if there is no sandbox+present. This makes it harder to accidentally modify the user package+database. The option can be also turned on via the per-user+configuration file (``~/.cabal/config``) or the per-project one+(``$PROJECT_DIR/cabal.config``). The error can be squelched with+``--no-require-sandbox``.++The option ``--sandbox-config-file`` allows to specify the location of+the ``cabal.sandbox.config`` file (by default, ``cabal`` searches for it+in the current directory). This provides the same functionality as+shared sandboxes, but sometimes can be more convenient. Example:++::++ $ mkdir my/sandbox+ $ cd my/sandbox+ $ cabal sandbox init+ $ cd /path/to/my/project+ $ cabal --sandbox-config-file=/path/to/my/sandbox/cabal.sandbox.config install+ # Uses the sandbox located at /path/to/my/sandbox/.cabal-sandbox+ $ cd ~+ $ cabal --sandbox-config-file=/path/to/my/sandbox/cabal.sandbox.config install+ # Still uses the same sandbox++The sandbox config file can be also specified via the+``CABAL_SANDBOX_CONFIG`` environment variable.++Finally, the flag ``--ignore-sandbox`` lets you temporarily ignore an+existing sandbox:++::++ $ mkdir my/sandbox+ $ cd my/sandbox+ $ cabal sandbox init+ $ cabal --ignore-sandbox install text+ # Installs 'text' in the user package database ('~/.cabal').++Creating a binary package+-------------------------++When creating binary packages (e.g. for Red Hat or Debian) one needs to+create a tarball that can be sent to another system for unpacking in the+root directory:++::++ $ runhaskell Setup.hs configure --prefix=/usr+ $ runhaskell Setup.hs build+ $ runhaskell Setup.hs copy --destdir=/tmp/mypkg+ $ tar -czf mypkg.tar.gz /tmp/mypkg/++If the package contains a library, you need two additional steps:++::++ $ runhaskell Setup.hs register --gen-script+ $ runhaskell Setup.hs unregister --gen-script++This creates shell scripts ``register.sh`` and ``unregister.sh``, which+must also be sent to the target system. After unpacking there, the+package must be registered by running the ``register.sh`` script. The+``unregister.sh`` script would be used in the uninstall procedure of the+package. Similar steps may be used for creating binary packages for+Windows.++The following options are understood by all commands:++.. program:: setup++.. option:: --help, -h or -?++ List the available options for the command.++.. option:: --verbose=n or -v n++ Set the verbosity level (0-3). The normal level is 1; a missing *n*+ defaults to 2.++ There is also an extended version of this command which can be+ used to fine-tune the verbosity of output. It takes the+ form ``[silent|normal|verbose|debug]``\ *flags*, where *flags*+ is a list of ``+`` flags which toggle various aspects of+ output. At the moment, only ``+callsite`` and ``+callstack``+ are supported, which respectively toggle call site and call+ stack printing (these are only supported if Cabal+ is built with a sufficiently recent GHC.)++The various commands and the additional options they support are+described below. In the simple build infrastructure, any other options+will be reported as errors.++.. _setup-configure:++setup configure+---------------++.. program:: setup configure++Prepare to build the package. Typically, this step checks that the+target platform is capable of building the package, and discovers+platform-specific features that are needed during the build.++The user may also adjust the behaviour of later stages using the options+listed in the following subsections. In the simple build infrastructure,+the values supplied via these options are recorded in a private file+read by later stages.++If a user-supplied ``configure`` script is run (see the section on+`system-dependent+parameters <developing-packages.html#system-dependent-parameters>`__ or+on `complex+packages <developing-packages.html#more-complex-packages>`__), it is+passed the :option:`--with-hc-pkg`, :option:`--prefix`, :option:`--bindir`,+:option:`--libdir`, :option:`--dynlibdir`, :option:`--datadir`, :option:`--libexecdir` and+:option:`--sysconfdir` options. In addition the value of the+:option:`--with-compiler` option is passed in a :option:`--with-hc-pkg` option+and all options specified with :option:`--configure-option` are passed on.++In Cabal 2.0, support for a single positional argument was added to+``setup configure`` This makes Cabal configure a the specific component+to be configured. Specified names can be qualified with ``lib:`` or+``exe:`` in case just a name is ambiguous (as would be the case for a+package named ``p`` which has a library and an executable named ``p``.)+This has the following effects:++- Subsequent invocations of ``cabal build``, ``register``, etc. operate only+ on the configured component.++- Cabal requires all "internal" dependencies (e.g., an executable+ depending on a library defined in the same package) must be found in+ the set of databases via :option:`--package-db` (and related flags): these+ dependencies are assumed to be up-to-date. A dependency can be+ explicitly specified using :option:`--dependency` simply by giving the name+ of the internal library; e.g., the dependency for an internal library+ named ``foo`` is given as+ ``--dependency=pkg-internal=pkg-1.0-internal-abcd``.++- Only the dependencies needed for the requested component are+ required. Similarly, when :option:`--exact-configuration` is specified,+ it's only necessary to specify :option:`--dependency` for the component.+ (As mentioned previously, you *must* specify internal dependencies as+ well.)++- Internal ``build-tool-depends`` and ``build-tools`` dependencies are expected+ to be in the ``PATH`` upon subsequent invocations of ``setup``.++Full details can be found in the `Componentized Cabal+proposal <https://github.com/ezyang/ghc-proposals/blob/master/proposals/0000-componentized-cabal.rst>`__.++Programs used for building+^^^^^^^^^^^^^^^^^^^^^^^^^^++The following options govern the programs used to process the source+files of a package:++.. option:: --ghc or -g, --jhc, --lhc, --uhc++ Specify which Haskell implementation to use to build the package. At+ most one of these flags may be given. If none is given, the+ implementation under which the setup script was compiled or+ interpreted is used.++.. option:: --with-compiler=path or -w *path*++ Specify the path to a particular compiler. If given, this must match+ the implementation selected above. The default is to search for the+ usual name of the selected implementation.++ This flag also sets the default value of the :option:`--with-hc-pkg`+ option to the package tool for this compiler. Check the output of+ ``setup configure -v`` to ensure that it finds the right package+ tool (or use :option:`--with-hc-pkg` explicitly).++.. option:: --with-hc-pkg=path++ Specify the path to the package tool, e.g. ``ghc-pkg``. The package+ tool must be compatible with the compiler specified by+ :option:`--with-compiler`. If this option is omitted, the default value is+ determined from the compiler selected.++.. option:: --with-prog=path++ Specify the path to the program *prog*. Any program known to Cabal+ can be used in place of *prog*. It can either be a fully path or the+ name of a program that can be found on the program search path. For+ example: ``--with-ghc=ghc-6.6.1`` or+ ``--with-cpphs=/usr/local/bin/cpphs``. The full list of accepted+ programs is not enumerated in this user guide. Rather, run+ ``cabal install --help`` to view the list.++.. option:: --prog-options=options++ Specify additional options to the program *prog*. Any program known+ to Cabal can be used in place of *prog*. For example:+ ``--alex-options="--template=mytemplatedir/"``. The *options* is+ split into program options based on spaces. Any options containing+ embedded spaced need to be quoted, for example+ ``--foo-options='--bar="C:\Program File\Bar"'``. As an alternative+ that takes only one option at a time but avoids the need to quote,+ use :option:`--prog-option` instead.++.. option:: --prog-option=option++ Specify a single additional option to the program *prog*. For+ passing an option that contain embedded spaces, such as a file name+ with embedded spaces, using this rather than :option:`--prog-options`+ means you do not need an additional level of quoting. Of course if you+ are using a command shell you may still need to quote, for example+ ``--foo-options="--bar=C:\Program File\Bar"``.++All of the options passed with either :option:`--prog-options`+or :option:`--prog-option` are passed in the order they were+specified on the configure command line.++Installation paths+^^^^^^^^^^^^^^^^^^++The following options govern the location of installed files from a+package:++.. option:: --prefix=dir++ The root of the installation. For example for a global install you+ might use ``/usr/local`` on a Unix system, or ``C:\Program Files``+ on a Windows system. The other installation paths are usually+ subdirectories of *prefix*, but they don't have to be.++ In the simple build system, *dir* may contain the following path+ variables: ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``,+ ``$os``, ``$arch``, ``$abi``, ``$abitag``++.. option:: --bindir=dir++ Executables that the user might invoke are installed here.++ In the simple build system, *dir* may contain the following path+ variables: ``$prefix``, ``$pkgid``, ``$pkg``, ``$version``,+ ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``++.. option:: --libdir=dir++ Object-code libraries are installed here.++ In the simple build system, *dir* may contain the following path+ variables: ``$prefix``, ``$bindir``, ``$pkgid``, ``$pkg``,+ ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``,+ ``$abitag``++.. option:: --dynlibdir=dir++ Dynamic libraries are installed here.++ By default, this is set to `$libdir/$abi`, which is usually not equal to+ `$libdir/$libsubdir`.++ In the simple build system, *dir* may contain the following path+ variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$pkgid``, ``$pkg``,+ ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``,+ ``$abitag``++.. option:: --libexecdir=dir++ Executables that are not expected to be invoked directly by the user+ are installed here.++ In the simple build system, *dir* may contain the following path+ variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$libsubdir``,+ ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``,+ ``$arch``, ``$abi``, ``$abitag``++.. option:: --datadir=dir++ Architecture-independent data files are installed here.++ In the simple build system, *dir* may contain the following path+ variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$libsubdir``,+ ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``,+ ``$arch``, ``$abi``, ``$abitag``++.. option:: --sysconfdir=dir++ Installation directory for the configuration files.++ In the simple build system, *dir* may contain the following path+ variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$libsubdir``,+ ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``,+ ``$arch``, ``$abi``, ``$abitag``++In addition the simple build system supports the following installation+path options:++.. option:: --libsubdir=dir++ A subdirectory of *libdir* in which libraries are actually installed. For+ example, in the simple build system on Unix, the default *libdir* is+ ``/usr/local/lib``, and *libsubdir* contains the compiler ABI and package+ identifier,+ e.g. ``x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7A``, so+ libraries would be installed in+ ``/usr/local/lib/x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7A/``.++ *dir* may contain the following path variables: ``$pkgid``,+ ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``,+ ``$abitag``++.. option:: --libexecsubdir=dir++ A subdirectory of *libexecdir* in which private executables are+ installed. For example, in the simple build system on Unix, the default+ *libexecdir* is ``/usr/local/libexec``, and *libsubdir* is+ ``x86_64-linux-ghc-8.0.2/mypkg-0.1.0``, so private executables would be+ installed in ``/usr/local/libexec/x86_64-linux-ghc-8.0.2/mypkg-0.1.0/``++ *dir* may contain the following path variables: ``$pkgid``,+ ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``,+ ``$abitag``++.. option:: --datasubdir=dir++ A subdirectory of *datadir* in which data files are actually+ installed.++ *dir* may contain the following path variables: ``$pkgid``,+ ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``,+ ``$abitag``++.. option:: --docdir=dir++ Documentation files are installed relative to this directory.++ *dir* may contain the following path variables: ``$prefix``,+ ``$bindir``, ``$libdir``, ``$libsubdir``, ``$datadir``,+ ``$datasubdir``, ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``,+ ``$os``, ``$arch``, ``$abi``, ``$abitag``++.. option:: --htmldir=dir++ HTML documentation files are installed relative to this directory.++ *dir* may contain the following path variables: ``$prefix``,+ ``$bindir``, ``$libdir``, ``$libsubdir``, ``$datadir``,+ ``$datasubdir``, ``$docdir``, ``$pkgid``, ``$pkg``, ``$version``,+ ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``++.. option:: --program-prefix=prefix++ Prepend *prefix* to installed program names.++ *prefix* may contain the following path variables: ``$pkgid``,+ ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``,+ ``$abitag``++.. option:: --program-suffix=suffix++ Append *suffix* to installed program names. The most obvious use for+ this is to append the program's version number to make it possible+ to install several versions of a program at once:+ ``--program-suffix='$version'``.++ *suffix* may contain the following path variables: ``$pkgid``,+ ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``,+ ``$abitag``++Path variables in the simple build system+"""""""""""""""""""""""""""""""""""""""""++For the simple build system, there are a number of variables that can be+used when specifying installation paths. The defaults are also specified+in terms of these variables. A number of the variables are actually for+other paths, like ``$prefix``. This allows paths to be specified+relative to each other rather than as absolute paths, which is important+for building relocatable packages (see `prefix+independence <#prefix-independence>`__).++$prefix+ The path variable that stands for the root of the installation. For+ an installation to be relocatable, all other installation paths must+ be relative to the ``$prefix`` variable.+$bindir+ The path variable that expands to the path given by the :option:`--bindir`+ configure option (or the default).+$libdir+ As above but for :option:`--libdir`+$libsubdir+ As above but for :option:`--libsubdir`+$dynlibdir+ As above but for :option:`--dynlibdir`+$datadir+ As above but for :option:`--datadir`+$datasubdir+ As above but for :option:`--datasubdir`+$docdir+ As above but for :option:`--docdir`+$pkgid+ The name and version of the package, e.g. ``mypkg-0.2``+$pkg+ The name of the package, e.g. ``mypkg``+$version+ The version of the package, e.g. ``0.2``+$compiler+ The compiler being used to build the package, e.g. ``ghc-6.6.1``+$os+ The operating system of the computer being used to build the+ package, e.g. ``linux``, ``windows``, ``osx``, ``freebsd`` or+ ``solaris``+$arch+ The architecture of the computer being used to build the package,+ e.g. ``i386``, ``x86_64``, ``ppc`` or ``sparc``+$abitag+ An optional tag that a compiler can use for telling incompatible+ ABI's on the same architecture apart. GHCJS encodes the underlying+ GHC version in the ABI tag.+$abi+ A shortcut for getting a path that completely identifies the+ platform in terms of binary compatibility. Expands to the same value+ as ``$arch-$os-compiler-$abitag`` if the compiler uses an abi tag,+ ``$arch-$os-$compiler`` if it doesn't.++Paths in the simple build system+""""""""""""""""""""""""""""""""++For the simple build system, the following defaults apply:++.. list-table:: Default installation paths++ * - Option+ - Unix Default+ - Windows Default+ * - :option:`--prefix` (global)+ - ``/usr/local``+ - ``%PROGRAMFILES%\Haskell``+ * - :option:`--prefix` (per-user)+ - ``$HOME/.cabal``+ - ``%APPDATA%\cabal``+ * - :option:`--bindir`+ - ``$prefix/bin``+ - ``$prefix\bin``+ * - :option:`--libdir`+ - ``$prefix/lib``+ - ``$prefix``+ * - :option:`--libsubdir` (others)+ - ``$pkgid/$compiler``+ - ``$pkgid\$compiler``+ * - :option:`--dynlibdir`+ - ``$libdir/$abi``+ - ``$libdir\$abi``+ * - :option:`--libexecdir`+ - ``$prefix/libexec``+ - ``$prefix\$pkgid``+ * - :option:`--datadir` (executable)+ - ``$prefix/share``+ - ``$prefix``+ * - :option:`--datadir` (library)+ - ``$prefix/share``+ - ``%PROGRAMFILES%\Haskell``+ * - :option:`--datasubdir`+ - ``$pkgid``+ - ``$pkgid``+ * - :option:`--docdir`+ - ``$datadir/doc/$pkgid``+ - ``$prefix\doc\$pkgid``+ * - :option:`--sysconfdir`+ - ``$prefix/etc``+ - ``$prefix\etc``+ * - :option:`--htmldir`+ - ``$docdir/html``+ - ``$docdir\html``+ * - :option:`--program-prefix`+ - (empty)+ - (empty)+ * - :option:`--program-suffix`+ - (empty)+ - (empty)++Prefix-independence+"""""""""""""""""""++On Windows it is possible to obtain the pathname of the running program.+This means that we can construct an installable executable package that+is independent of its absolute install location. The executable can find+its auxiliary files by finding its own path and knowing the location of+the other files relative to ``$bindir``. Prefix-independence is+particularly useful: it means the user can choose the install location+(i.e. the value of ``$prefix``) at install-time, rather than having to+bake the path into the binary when it is built.++In order to achieve this, we require that for an executable on Windows,+all of ``$bindir``, ``$libdir``, ``$dynlibdir``, ``$datadir`` and ``$libexecdir`` begin+with ``$prefix``. If this is not the case then the compiled executable+will have baked-in all absolute paths.++The application need do nothing special to achieve prefix-independence.+If it finds any files using ``getDataFileName`` and the `other functions+provided for the+purpose <developing-packages.html#accessing-data-files-from-package-code>`__,+the files will be accessed relative to the location of the current+executable.++A library cannot (currently) be prefix-independent, because it will be+linked into an executable whose file system location bears no relation+to the library package.++Controlling Flag Assignments+^^^^^^^^^^^^^^^^^^^^^^^^^^^^++Flag assignments (see the `resolution of conditions and+flags <developing-packages.html#resolution-of-conditions-and-flags>`__)+can be controlled with the following command line options.++.. option:: -f flagname or -f -flagname++ Force the specified flag to ``true`` or ``false`` (if preceded with+ a ``-``). Later specifications for the same flags will override+ earlier, i.e., specifying ``-fdebug -f-debug`` is equivalent to+ ``-f-debug``++.. option:: --flags=flagspecs++ Same as ``-f``, but allows specifying multiple flag assignments at+ once. The parameter is a space-separated list of flag names (to+ force a flag to ``true``), optionally preceded by a ``-`` (to force+ a flag to ``false``). For example,+ ``--flags="debug -feature1 feature2"`` is equivalent to+ ``-fdebug -f-feature1 -ffeature2``.++Building Test Suites+^^^^^^^^^^^^^^^^^^^^++.. option:: --enable-tests++ Build the test suites defined in the package description file during+ the ``build`` stage. Check for dependencies required by the test+ suites. If the package is configured with this option, it will be+ possible to run the test suites with the ``test`` command after the+ package is built.++.. option:: --disable-tests++ (default) Do not build any test suites during the ``build`` stage.+ Do not check for dependencies required only by the test suites. It+ will not be possible to invoke the ``test`` command without+ reconfiguring the package.++.. option:: --enable-coverage++ Build libraries and executables (including test suites) with Haskell+ Program Coverage enabled. Running the test suites will automatically+ generate coverage reports with HPC.++.. option:: --disable-coverage++ (default) Do not enable Haskell Program Coverage.++Miscellaneous options+^^^^^^^^^^^^^^^^^^^^^++.. option:: --user++ Does a per-user installation. This changes the `default installation+ prefix <#paths-in-the-simple-build-system>`__. It also allow+ dependencies to be satisfied by the user's package database, in+ addition to the global database. This also implies a default of+ ``--user`` for any subsequent ``install`` command, as packages+ registered in the global database should not depend on packages+ registered in a user's database.++.. option:: --global++ (default) Does a global installation. In this case package+ dependencies must be satisfied by the global package database. All+ packages in the user's package database will be ignored. Typically+ the final installation step will require administrative privileges.++.. option:: --package-db=db++ Allows package dependencies to be satisfied from this additional+ package database *db* in addition to the global package database.+ All packages in the user's package database will be ignored. The+ interpretation of *db* is implementation-specific. Typically it will+ be a file or directory. Not all implementations support arbitrary+ package databases.++ This pushes an extra db onto the db stack. The :option:`--global` and+ :option:`--user` mode switches add the respective [Global] and [Global,+ User] dbs to the initial stack. There is a compiler-implementation+ constraint that the global db must appear first in the stack, and if+ the user one appears at all, it must appear immediately after the+ global db.++ To reset the stack, use ``--package-db=clear``.++.. option:: --ipid=ipid++ Specifies the *installed package identifier* of the package to be+ built; this identifier is passed on to GHC and serves as the basis+ for linker symbols and the ``id`` field in a ``ghc-pkg``+ registration. When a package has multiple components, the actual+ component identifiers are derived off of this identifier (e.g., an+ internal library ``foo`` from package ``p-0.1-abcd`` will get the+ identifier ``p-0.1-abcd-foo``.++.. option:: --cid=cid++ Specifies the *component identifier* of the component being built;+ this is only valid if you are configuring a single component.++.. option:: --default-user-config=file++ Allows a "default" ``cabal.config`` freeze file to be passed in+ manually. This file will only be used if one does not exist in the+ project directory already. Typically, this can be set from the+ global cabal ``config`` file so as to provide a default set of+ partial constraints to be used by projects, providing a way for+ users to peg themselves to stable package collections.++.. option:: --enable-optimization[=n] or -O [n]++ (default) Build with optimization flags (if available). This is+ appropriate for production use, taking more time to build faster+ libraries and programs.++ The optional *n* value is the optimisation level. Some compilers+ support multiple optimisation levels. The range is 0 to 2. Level 0+ is equivalent to :option:`--disable-optimization`, level 1 is the+ default if no *n* parameter is given. Level 2 is higher optimisation+ if the compiler supports it. Level 2 is likely to lead to longer+ compile times and bigger generated code.++.. option:: --disable-optimization++ Build without optimization. This is suited for development: building+ will be quicker, but the resulting library or programs will be+ slower.++.. option:: --enable-profiling++ Build libraries and executables with profiling enabled (for+ compilers that support profiling as a separate mode). For this to+ work, all libraries used by this package must also have been built+ with profiling support. For libraries this involves building an+ additional instance of the library in addition to the normal+ non-profiling instance. For executables it changes the single+ executable to be built in profiling mode.++ This flag covers both libraries and executables, but can be+ overridden by the :option:`--enable-library-profiling` flag.++ See also the :option:`--profiling-detail` flag below.++.. option:: --disable-profiling++ (default) Do not enable profiling in generated libraries and+ executables.++.. option:: --enable-library-profiling or -p++ As with :option:`--enable-profiling` above, but it applies only for+ libraries. So this generates an additional profiling instance of the+ library in addition to the normal non-profiling instance.++ The :option:`--enable-profiling` flag controls the profiling mode for both+ libraries and executables, but if different modes are desired for+ libraries versus executables then use :option:`--enable-library-profiling`+ as well.++.. option:: --disable-library-profiling++ (default) Do not generate an additional profiling version of the library.++.. option:: --profiling-detail[=level]++ Some compilers that support profiling, notably GHC, can allocate+ costs to different parts of the program and there are different+ levels of granularity or detail with which this can be done. In+ particular for GHC this concept is called "cost centers", and GHC+ can automatically add cost centers, and can do so in different ways.++ This flag covers both libraries and executables, but can be+ overridden by the :option:`--library-profiling-detail` flag.++ Currently this setting is ignored for compilers other than GHC. The+ levels that cabal currently supports are:++ default+ For GHC this uses ``exported-functions`` for libraries and+ ``toplevel-functions`` for executables.+ none+ No costs will be assigned to any code within this component.+ exported-functions+ Costs will be assigned at the granularity of all top level+ functions exported from each module. In GHC specifically, this+ is for non-inline functions.+ toplevel-functions+ Costs will be assigned at the granularity of all top level+ functions in each module, whether they are exported from the+ module or not. In GHC specifically, this is for non-inline+ functions.+ all-functions+ Costs will be assigned at the granularity of all functions in+ each module, whether top level or local. In GHC specifically,+ this is for non-inline toplevel or where-bound functions or+ values.++ This flag is new in Cabal-1.24. Prior versions used the equivalent+ of ``none`` above.++.. option:: --library-profiling-detail[=level]++ As with :option:`--profiling-detail` above, but it applies only for+ libraries.++ The level for both libraries and executables is set by the+ :option:`--profiling-detail` flag, but if different levels are desired+ for libraries versus executables then use+ :option:`--library-profiling-detail` as well.++.. option:: --enable-library-vanilla++ (default) Build ordinary libraries (as opposed to profiling+ libraries). This is independent of the+ :option:`--enable-library-profiling` option. If you enable both, you get+ both.++.. option:: --disable-library-vanilla++ Do not build ordinary libraries. This is useful in conjunction with+ :option:`--enable-library-profiling` to build only profiling libraries,+ rather than profiling and ordinary libraries.++.. option:: --enable-library-for-ghci++ (default) Build libraries suitable for use with GHCi.++.. option:: --disable-library-for-ghci++ Not all platforms support GHCi and indeed on some platforms, trying+ to build GHCi libs fails. In such cases this flag can be used as a+ workaround.++.. option:: --enable-split-objs++ Use the GHC ``-split-objs`` feature when building the library. This+ reduces the final size of the executables that use the library by+ allowing them to link with only the bits that they use rather than+ the entire library. The downside is that building the library takes+ longer and uses considerably more memory.++.. option:: --disable-split-objs++ (default) Do not use the GHC ``-split-objs`` feature. This makes+ building the library quicker but the final executables that use the+ library will be larger.++.. option:: --enable-executable-stripping++ (default) When installing binary executable programs, run the+ ``strip`` program on the binary. This can considerably reduce the+ size of the executable binary file. It does this by removing+ debugging information and symbols. While such extra information is+ useful for debugging C programs with traditional debuggers it is+ rarely helpful for debugging binaries produced by Haskell compilers.++ Not all Haskell implementations generate native binaries. For such+ implementations this option has no effect.++.. option:: --disable-executable-stripping++ Do not strip binary executables during installation. You might want+ to use this option if you need to debug a program using gdb, for+ example if you want to debug the C parts of a program containing+ both Haskell and C code. Another reason is if your are building a+ package for a system which has a policy of managing the stripping+ itself (such as some Linux distributions).++.. option:: --enable-shared++ Build shared library. This implies a separate compiler run to+ generate position independent code as required on most platforms.++.. option:: --disable-shared++ (default) Do not build shared library.++.. option:: --enable-executable-dynamic++ Link executables dynamically. The executable's library dependencies+ should be built as shared objects. This implies :option:`--enable-shared`+ unless :option:`--disable-shared` is explicitly specified.++.. option:: --disable-executable-dynamic++ (default) Link executables statically.++.. option:: --configure-option=str++ An extra option to an external ``configure`` script, if one is used+ (see the section on `system-dependent+ parameters <developing-packages.html#system-dependent-parameters>`__).+ There can be several of these options.++.. option:: --extra-include-dirs[=dir]++ An extra directory to search for C header files. You can use this+ flag multiple times to get a list of directories.++ You might need to use this flag if you have standard system header+ files in a non-standard location that is not mentioned in the+ package's ``.cabal`` file. Using this option has the same affect as+ appending the directory *dir* to the ``include-dirs`` field in each+ library and executable in the package's ``.cabal`` file. The+ advantage of course is that you do not have to modify the package at+ all. These extra directories will be used while building the package+ and for libraries it is also saved in the package registration+ information and used when compiling modules that use the library.++.. option:: --extra-lib-dirs[=dir]++ An extra directory to search for system libraries files. You can use+ this flag multiple times to get a list of directories.++.. option:: --extra-framework-dirs[=dir]++ An extra directory to search for frameworks (OS X only). You can use+ this flag multiple times to get a list of directories.++ You might need to use this flag if you have standard system+ libraries in a non-standard location that is not mentioned in the+ package's ``.cabal`` file. Using this option has the same affect as+ appending the directory *dir* to the ``extra-lib-dirs`` field in+ each library and executable in the package's ``.cabal`` file. The+ advantage of course is that you do not have to modify the package at+ all. These extra directories will be used while building the package+ and for libraries it is also saved in the package registration+ information and used when compiling modules that use the library.++.. option:: --dependency[=pkgname=ipid]++ Specify that a particular dependency should used for a particular+ package name. In particular, it declares that any reference to+ *pkgname* in a ``build-depends`` should be resolved to *ipid*.++.. option:: --exact-configuration++ This changes Cabal to require every dependency be explicitly+ specified using :option:`--dependency`, rather than use Cabal's (very+ simple) dependency solver. This is useful for programmatic use of+ Cabal's API, where you want to error if you didn't specify enough+ :option:`--dependency` flags.++.. option:: --allow-newer[=pkgs], --allow-older[=pkgs]++ Selectively relax upper or lower bounds in dependencies without+ editing the package description respectively.++ The following description focuses on upper bounds and the+ :option:`--allow-newer` flag, but applies analogously to+ :option:`--allow-older` and lower bounds. :option:`--allow-newer`+ and :option:`--allow-older` can be used at the same time.++ If you want to install a package A that depends on B >= 1.0 && <+ 2.0, but you have the version 2.0 of B installed, you can compile A+ against B 2.0 by using ``cabal install --allow-newer=B A``. This+ works for the whole package index: if A also depends on C that in+ turn depends on B < 2.0, C's dependency on B will be also relaxed.++ Example:++ ::++ $ cd foo+ $ cabal configure+ Resolving dependencies...+ cabal: Could not resolve dependencies:+ [...]+ $ cabal configure --allow-newer+ Resolving dependencies...+ Configuring foo...++ Additional examples:++ ::++ # Relax upper bounds in all dependencies.+ $ cabal install --allow-newer foo++ # Relax upper bounds only in dependencies on bar, baz and quux.+ $ cabal install --allow-newer=bar,baz,quux foo++ # Relax the upper bound on bar and force bar==2.1.+ $ cabal install --allow-newer=bar --constraint="bar==2.1" foo++ It's also possible to limit the scope of :option:`--allow-newer` to single+ packages with the ``--allow-newer=scope:dep`` syntax. This means+ that the dependency on ``dep`` will be relaxed only for the package+ ``scope``.++ Example:++ ::++ # Relax upper bound in foo's dependency on base; also relax upper bound in+ # every package's dependency on lens.+ $ cabal install --allow-newer=foo:base,lens++ # Relax upper bounds in foo's dependency on base and bar's dependency+ # on time; also relax the upper bound in the dependency on lens specified by+ # any package.+ $ cabal install --allow-newer=foo:base,lens --allow-newer=bar:time++ Finally, one can enable :option:`--allow-newer` permanently by setting+ ``allow-newer: True`` in the ``~/.cabal/config`` file. Enabling+ 'allow-newer' selectively is also supported in the config file+ (``allow-newer: foo, bar, baz:base``).++.. option:: --constraint=constraint++ Restrict solutions involving a package to given version+ bounds, flag settings, and other properties. For example, to+ consider only install plans that use version 2.1 of ``bar``+ or do not use ``bar`` at all, write:++ ::++ $ cabal install --constraint="bar == 2.1"++ Version bounds have the same syntax as ``build-depends``. As+ a special case, the following prevents ``bar`` from being+ used at all:++ ::+ + # Note: this is just syntax sugar for '> 1 && < 1', and is+ # supported by build-depends.+ $ cabal install --constraint="bar -none"++ You can also specify flag assignments:++ ::++ # Require bar to be installed with the foo flag turned on and+ # the baz flag turned off.+ $ cabal install --constraint="bar +foo -baz"++ To specify multiple constraints, you may pass the+ ``constraint`` option multiple times.++ There are also some more specialized constraints, which most people+ don't generally need:++ ::++ # Require that a version of bar be used that is already installed in+ # the global package database.+ $ cabal install --constraint="bar installed"++ # Require the local source copy of bar to be used.+ # (Note: By default, if we have a local package we will+ # automatically use it, so it will generally not be necessary to+ # specify this.)+ $ cabal install --constraint="bar source"++ # Require that bar have test suites and benchmarks enabled.+ $ cabal install --constraint="bar test" --constraint="bar bench"++ By default, constraints only apply to build dependencies+ (``build-depends``), build dependencies of build+ dependencies, and so on. Constraints normally do not apply to+ dependencies of the ``Setup.hs`` script of any package+ (``setup-depends``) nor do they apply to build tools+ (``build-tool-depends``) or the dependencies of build+ tools. To explicitly apply a constraint to a setup or build+ tool dependency, you can add a qualifier to the constraint as+ follows:++ ::++ # Example use of the 'any' qualifier. This constraint+ # applies to package bar anywhere in the dependency graph.+ $ cabal install --constraint="any.bar == 1.0"++ ::++ # Example uses of 'setup' qualifiers.++ # This constraint applies to package bar when it is a+ # dependency of any Setup.hs script.+ $ cabal install --constraint="setup.bar == 1.0"++ # This constraint applies to package bar when it is a+ # dependency of the Setup.hs script of package foo.+ $ cabal install --constraint="foo:setup.bar == 1.0"++ .. TODO: Uncomment this example once we decide on a syntax for 'exe'.+ .. # Example use of the 'exe' (executable build tool)+ # qualifier. This constraint applies to package baz when it+ # is a dependency of the build tool bar being used to+ # build package foo.+ $ cabal install --constraint="foo:bar:exe.baz == 1.0"++.. option:: --preference=preference++ Specify a soft constraint on versions of a package. The solver will+ attempt to satisfy these preferences on a "best-effort" basis.++.. _setup-build:++setup build+-----------++Perform any preprocessing or compilation needed to make this package+ready for installation.++This command takes the following options:++.. program:: setup build++.. option:: --prog-options=options, --prog-option=option++ These are mostly the same as the `options configure+ step <#setup-configure>`__. Unlike the options specified at the+ configure step, any program options specified at the build step are+ not persistent but are used for that invocation only. They options+ specified at the build step are in addition not in replacement of+ any options specified at the configure step.++.. _setup-haddock:++setup haddock+-------------++.. program:: setup haddock++Build the documentation for the package using Haddock_.+By default, only the documentation for the exposed modules is generated+(but see the :option:`--executables` and :option:`--internal` flags below).++This command takes the following options:++.. option:: --hoogle++ Generate a file ``dist/doc/html/``\ *pkgid*\ ``.txt``, which can be+ converted by Hoogle_ into a+ database for searching. This is equivalent to running Haddock_+ with the ``--hoogle`` flag.++.. option:: --html-location=url++ Specify a template for the location of HTML documentation for+ prerequisite packages. The substitutions (`see+ listing <#paths-in-the-simple-build-system>`__) are applied to the+ template to obtain a location for each package, which will be used+ by hyperlinks in the generated documentation. For example, the+ following command generates links pointing at Hackage_ pages:++ setup haddock+ --html-location='http://hackage.haskell.org/packages/archive/$pkg/latest/doc/html'++ Here the argument is quoted to prevent substitution by the shell. If+ this option is omitted, the location for each package is obtained+ using the package tool (e.g. ``ghc-pkg``).++.. option:: --executables++ Also run Haddock_ for the modules of all the executable programs. By default+ Haddock_ is run only on the exported modules.++.. option:: --internal++ Run Haddock_ for the all+ modules, including unexposed ones, and make+ Haddock_ generate documentation+ for unexported symbols as well.++.. option:: --css=path++ The argument *path* denotes a CSS file, which is passed to+ Haddock_ and used to set the+ style of the generated documentation. This is only needed to+ override the default style that+ Haddock_ uses.++.. option:: --hyperlink-source++ Generate Haddock_ documentation integrated with HsColour_ . First,+ HsColour_ is run to generate colourised code. Then Haddock_ is run to+ generate HTML documentation. Each entity shown in the documentation is+ linked to its definition in the colourised code.++.. option:: --hscolour-css=path++ The argument *path* denotes a CSS file, which is passed to HsColour_ as in++ runhaskell Setup.hs hscolour --css=*path*++.. _setup-hscolour:++setup hscolour+--------------++Produce colourised code in HTML format using HsColour_. Colourised code for+exported modules is put in ``dist/doc/html/``\ *pkgid*\ ``/src``.++This command takes the following options:++.. program:: setup hscolour++.. option:: --executables++ Also run HsColour_ on the sources of all executable programs. Colourised+ code is put in ``dist/doc/html/``\ *pkgid*/*executable*\ ``/src``.++.. option:: --css=path++ Use the given CSS file for the generated HTML files. The CSS file+ defines the colours used to colourise code. Note that this copies+ the given CSS file to the directory with the generated HTML files+ (renamed to ``hscolour.css``) rather than linking to it.++.. _setup-install:++setup install+-------------++.. program:: setup install++Copy the files into the install locations and (for library packages)+register the package with the compiler, i.e. make the modules it+contains available to programs.++The `install locations <#installation-paths>`__ are determined by+options to `setup configure`_.++This command takes the following options:++.. option:: --global++ Register this package in the system-wide database. (This is the+ default, unless the :option:`setup configure --user` option was supplied+ to the ``configure`` command.)++.. option:: --user++ Register this package in the user's local package database. (This is+ the default if the :option:`setup configure --user` option was supplied+ to the ``configure`` command.)++.. _setup-copy:++setup copy+----------++Copy the files without registering them. This command is mainly of use+to those creating binary packages.++This command takes the following option:++.. program:: setup copy++.. option:: --destdir=path++ Specify the directory under which to place installed files. If this is+ not given, then the root directory is assumed.++.. _setup-register:++setup register+--------------++Register this package with the compiler, i.e. make the modules it+contains available to programs. This only makes sense for library+packages. Note that the ``install`` command incorporates this action.+The main use of this separate command is in the post-installation step+for a binary package.++This command takes the following options:++.. program:: setup register++.. option:: --global++ Register this package in the system-wide database. (This is the+ default.)++.. option:: --user++ Register this package in the user's local package database.++.. option:: --gen-script++ Instead of registering the package, generate a script containing+ commands to perform the registration. On Unix, this file is called+ ``register.sh``, on Windows, ``register.bat``. This script might be+ included in a binary bundle, to be run after the bundle is unpacked+ on the target system.++.. option:: --gen-pkg-config[=path]++ Instead of registering the package, generate a package registration+ file (or directory, in some circumstances). This only applies to+ compilers that support package registration files which at the+ moment is only GHC. The file should be used with the compiler's+ mechanism for registering packages. This option is mainly intended+ for packaging systems. If possible use the :option:`--gen-script` option+ instead since it is more portable across Haskell implementations.+ The *path* is optional and can be used to specify a particular+ output file to generate. Otherwise, by default the file is the+ package name and version with a ``.conf`` extension.++ This option outputs a directory if the package requires multiple+ registrations: this can occur if internal/convenience libraries are+ used. These configuration file names are sorted so that they can be+ registered in order.++.. option:: --inplace++ Registers the package for use directly from the build tree, without+ needing to install it. This can be useful for testing: there's no+ need to install the package after modifying it, just recompile and+ test.++ This flag does not create a build-tree-local package database. It+ still registers the package in one of the user or global databases.++ However, there are some caveats. It only works with GHC (currently).+ It only works if your package doesn't depend on having any+ supplemental files installed --- plain Haskell libraries should be+ fine.++.. _setup-unregister:++setup unregister+----------------++.. program:: setup unregister++Deregister this package with the compiler.++This command takes the following options:++.. option:: --global++ Deregister this package in the system-wide database. (This is the+ default.)++.. option:: --user++ Deregister this package in the user's local package database.++.. option:: --gen-script++ Instead of deregistering the package, generate a script containing+ commands to perform the deregistration. On Unix, this file is called+ ``unregister.sh``, on Windows, ``unregister.bat``. This script might+ be included in a binary bundle, to be run on the target system.++.. _setup-clean:++setup clean+-----------++Remove any local files created during the ``configure``, ``build``,+``haddock``, ``register`` or ``unregister`` steps, and also any files+and directories listed in the :pkg-field:`extra-tmp-files` field.++This command takes the following options:++.. program:: setup clean++.. option:: --save-configure, -s++ Keeps the configuration information so it is not necessary to run+ the configure step again before building.++setup test+----------++Run the test suites specified in the package description file. Aside+from the following flags, Cabal accepts the name of one or more test+suites on the command line after ``test``. When supplied, Cabal will run+only the named test suites, otherwise, Cabal will run all test suites in+the package.++.. program:: setup test++.. option:: --builddir=dir++ The directory where Cabal puts generated build files (default:+ ``dist``). Test logs will be located in the ``test`` subdirectory.++.. option:: --human-log=path++ The template used to name human-readable test logs; the path is+ relative to ``dist/test``. By default, logs are named according to+ the template ``$pkgid-$test-suite.log``, so that each test suite+ will be logged to its own human-readable log file. Template+ variables allowed are: ``$pkgid``, ``$compiler``, ``$os``,+ ``$arch``, ``$abi``, ``$abitag``, ``$test-suite``, and ``$result``.++.. option:: --machine-log=path++ The path to the machine-readable log, relative to ``dist/test``. The+ default template is ``$pkgid.log``. Template variables allowed are:+ ``$pkgid``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``+ and ``$result``.++.. option:: --show-details=filter++ Determines if the results of individual test cases are shown on the+ terminal. May be ``always`` (always show), ``never`` (never show),+ ``failures`` (show only failed results), or ``streaming`` (show all+ results in real time).++.. option:: --test-options=options+ Give extra options to the test executables.++.. option:: --test-option=option++ give an extra option to the test executables. There is no need to+ quote options containing spaces because a single option is assumed,+ so options will not be split on spaces.++.. _setup-sdist:++setup sdist+-----------++Create a system- and compiler-independent source distribution in a file+*package*-*version*\ ``.tar.gz`` in the ``dist`` subdirectory, for+distribution to package builders. When unpacked, the commands listed in+this section will be available.++The files placed in this distribution are the package description file,+the setup script, the sources of the modules named in the package+description file, and files named in the ``license-file``, ``main-is``,+``c-sources``, ``js-sources``, ``data-files``, ``extra-source-files``+and ``extra-doc-files`` fields.++This command takes the following option:++.. program:: setup sdist++.. option:: --snapshot++ Append today's date (in "YYYYMMDD" format) to the version number for+ the generated source package. The original package is unaffected.+++.. include:: references.inc
+ doc/intro.rst view
@@ -0,0 +1,200 @@+.. highlight:: console++Cabal is the standard package system for+Haskell_ software. It helps people to+configure, build and install Haskell software and to distribute it+easily to other users and developers.++There is a command line tool called ``cabal`` for working with Cabal+packages. It helps with installing existing packages and also helps+people developing their own packages. It can be used to work with local+packages or to install packages from online package archives, including+automatically installing dependencies. By default it is configured to+use Hackage_ which is Haskell's central+package archive that contains thousands of libraries and applications in+the Cabal package format.++Introduction+============++Cabal is a package system for Haskell software. The point of a package+system is to enable software developers and users to easily distribute,+use and reuse software. A package system makes it easier for developers+to get their software into the hands of users. Equally importantly, it+makes it easier for software developers to be able to reuse software+components written by other developers.++Packaging systems deal with packages and with Cabal we call them *Cabal+packages*. The Cabal package is the unit of distribution. Every Cabal+package has a name and a version number which are used to identify the+package, e.g. ``filepath-1.0``.++Cabal packages can depend on other Cabal packages. There are tools to+enable automated package management. This means it is possible for+developers and users to install a package plus all of the other Cabal+packages that it depends on. It also means that it is practical to make+very modular systems using lots of packages that reuse code written by+many developers.++Cabal packages are source based and are typically (but not necessarily)+portable to many platforms and Haskell implementations. The Cabal+package format is designed to make it possible to translate into other+formats, including binary packages for various systems.++When distributed, Cabal packages use the standard compressed tarball+format, with the file extension ``.tar.gz``, e.g.+``filepath-1.0.tar.gz``.++Note that packages are not part of the Haskell language, rather they are+a feature provided by the combination of Cabal and GHC (and several+other Haskell implementations).++A tool for working with packages+--------------------------------++There is a command line tool, called "``cabal``", that users and+developers can use to build and install Cabal packages. It can be used+for both local packages and for packages available remotely over the+network. It can automatically install Cabal packages plus any other+Cabal packages they depend on.++Developers can use the tool with packages in local directories, e.g.++::++ $ cd foo/+ $ cabal install++While working on a package in a local directory, developers can run the+individual steps to configure and build, and also generate documentation+and run test suites and benchmarks.++It is also possible to install several local packages at once, e.g.++::++ $ cabal install foo/ bar/++Developers and users can use the tool to install packages from remote+Cabal package archives. By default, the ``cabal`` tool is configured to+use the central Haskell package archive called+Hackage_ but it is possible to use it+with any other suitable archive.++::++ $ cabal install xmonad++This will install the ``xmonad`` package plus all of its dependencies.++In addition to packages that have been published in an archive,+developers can install packages from local or remote tarball files, for+example++::++ $ cabal install foo-1.0.tar.gz+ $ cabal install http://example.com/foo-1.0.tar.gz++Cabal provides a number of ways for a user to customise how and where a+package is installed. They can decide where a package will be installed,+which Haskell implementation to use and whether to build optimised code+or build with the ability to profile code. It is not expected that users+will have to modify any of the information in the ``.cabal`` file.++For full details, see the section on `building and installing+packages <installing-packages.html>`__.++Note that ``cabal`` is not the only tool for working with Cabal+packages. Due to the standardised format and a library for reading+``.cabal`` files, there are several other special-purpose tools.++What's in a package+-------------------++A Cabal package consists of:++- Haskell software, including libraries, executables and tests+- metadata about the package in a standard human and machine readable+ format (the "``.cabal``" file)+- a standard interface to build the package (the "``Setup.hs``" file)++The ``.cabal`` file contains information about the package, supplied by+the package author. In particular it lists the other Cabal packages that+the package depends on.++For full details on what goes in the ``.cabal`` and ``Setup.hs`` files,+and for all the other features provided by the build system, see the+section on `developing packages <developing-packages.html>`__.++Cabal featureset+----------------++Cabal and its associated tools and websites covers:++- a software build system+- software configuration+- packaging for distribution+- automated package management++ - natively using the ``cabal`` command line tool; or+ - by translation into native package formats such as RPM or deb++- web and local Cabal package archives++ - central Hackage website with 1000's of Cabal packages++Some parts of the system can be used without others. In particular the+built-in build system for simple packages is optional: it is possible to+use custom build systems.++Similar systems+---------------++The Cabal system is roughly comparable with the system of Python Eggs,+Ruby Gems or Perl distributions. Each system has a notion of+distributable packages, and has tools to manage the process of+distributing and installing packages.++Hackage is an online archive of Cabal packages. It is roughly comparable+to CPAN but with rather fewer packages (around 5,000 vs 28,000).++Cabal is often compared with autoconf and automake and there is some+overlap in functionality. The most obvious similarity is that the+command line interface for actually configuring and building packages+follows the same steps and has many of the same configuration+parameters.++::++ $ ./configure --prefix=...+ $ make+ $ make install++compared to++::++ $ cabal configure --prefix=...+ $ cabal build+ $ cabal install++Cabal's build system for simple packages is considerably less flexible+than make/automake, but has builtin knowledge of how to build Haskell+code and requires very little manual configuration. Cabal's simple build+system is also portable to Windows, without needing a Unix-like+environment such as cygwin/mingwin.++Compared to autoconf, Cabal takes a somewhat different approach to+package configuration. Cabal's approach is designed for automated+package management. Instead of having a configure script that tests for+whether dependencies are available, Cabal packages specify their+dependencies. There is some scope for optional and conditional+dependencies. By having package authors specify dependencies it makes it+possible for tools to install a package and all of its dependencies+automatically. It also makes it possible to translate (in a+mostly-automatically way) into another package format like RPM or deb+which also have automatic dependency resolution.+++.. include:: references.inc
− doc/misc.markdown
@@ -1,109 +0,0 @@-% Cabal User Guide--# Reporting bugs and deficiencies #--Please report any flaws or feature requests in the [bug tracker][].--For general discussion or queries email the libraries mailing list-<libraries@haskell.org>. There is also a development mailing list-<cabal-devel@haskell.org>.--[bug tracker]: https://github.com/haskell/cabal/issues--# Stability of Cabal interfaces #--The Cabal library and related infrastructure is still under active-development. New features are being added and limitations and bugs are-being fixed. This requires internal changes and often user visible-changes as well. We therefore cannot promise complete future-proof-stability, at least not without halting all development work.--This section documents the aspects of the Cabal interface that we can-promise to keep stable and which bits are subject to change.--## Cabal file format ##--This is backwards compatible and mostly forwards compatible. New fields-can be added without breaking older versions of Cabal. Fields can be-deprecated without breaking older packages.--## Command-line interface ##--### Very Stable Command-line interfaces ###--* `./setup configure`- * `--prefix`- * `--user`- * `--ghc`, `--uhc`- * `--verbose`- * `--prefix`--* `./setup build`-* `./setup install`-* `./setup register`-* `./setup copy`--### Stable Command-line interfaces ###--### Unstable command-line ###--## Functions and Types ##--The Cabal library follows the [Package Versioning Policy][PVP]. This-means that within a stable major release, for example 1.2.x, there will-be no incompatible API changes. But minor versions increments, for-example 1.2.3, indicate compatible API additions.--The Package Versioning Policy does not require any API guarantees-between major releases, for example between 1.2.x and 1.4.x. In practise-of course not everything changes between major releases. Some parts of-the API are more prone to change than others. The rest of this section-gives some informal advice on what level of API stability you can expect-between major releases.--[PVP]: http://www.haskell.org/haskellwiki/Package_versioning_policy--### Very Stable API ###--* `defaultMain`--* `defaultMainWithHooks defaultUserHooks`-- But regular `defaultMainWithHooks` isn't stable since `UserHooks`- changes.--### Semi-stable API ###--* `UserHooks` The hooks API will change in the future--* `Distribution.*` is mostly declarative information about packages and- is somewhat stable.--### Unstable API ###--Everything under `Distribution.Simple.*` has no stability guarantee.--## Hackage ##--The index format is a partly stable interface. It consists of a tar.gz-file that contains directories with `.cabal` files in. In future it may-contain more kinds of files so do not assume every file is a `.cabal`-file. Incompatible revisions to the format would involve bumping the-name of the index file, i.e., `00-index.tar.gz`, `01-index.tar.gz` etc.---[dist-simple]: ../release/cabal-latest/doc/API/Cabal/Distribution-Simple.html-[dist-make]: ../release/cabal-latest/doc/API/Cabal/Distribution-Make.html-[dist-license]: ../release/cabal-latest/doc/API/Cabal/Distribution-License.html#t:License-[extension]: ../release/cabal-latest/doc/API/Cabal/Language-Haskell-Extension.html#t:Extension-[BuildType]: ../release/cabal-latest/doc/API/Cabal/Distribution-PackageDescription.html#t:BuildType-[alex]: http://www.haskell.org/alex/-[autoconf]: http://www.gnu.org/software/autoconf/-[c2hs]: http://www.cse.unsw.edu.au/~chak/haskell/c2hs/-[cpphs]: http://projects.haskell.org/cpphs/-[greencard]: http://hackage.haskell.org/package/greencard-[haddock]: http://www.haskell.org/haddock/-[HsColour]: http://www.cs.york.ac.uk/fp/darcs/hscolour/-[happy]: http://www.haskell.org/happy/-[Hackage]: http://hackage.haskell.org/-[pkg-config]: http://www.freedesktop.org/wiki/Software/pkg-config/
+ doc/misc.rst view
@@ -0,0 +1,103 @@+Reporting bugs and deficiencies+===============================++Please report any flaws or feature requests in the `bug+tracker <https://github.com/haskell/cabal/issues>`__.++For general discussion or queries email the libraries mailing list+libraries@haskell.org. There is also a development mailing list+cabal-devel@haskell.org.++Stability of Cabal interfaces+=============================++The Cabal library and related infrastructure is still under active+development. New features are being added and limitations and bugs are+being fixed. This requires internal changes and often user visible+changes as well. We therefore cannot promise complete future-proof+stability, at least not without halting all development work.++This section documents the aspects of the Cabal interface that we can+promise to keep stable and which bits are subject to change.++Cabal file format+-----------------++This is backwards compatible and mostly forwards compatible. New fields+can be added without breaking older versions of Cabal. Fields can be+deprecated without breaking older packages.++Command-line interface+----------------------++Very Stable Command-line interfaces+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~++- ``./setup configure``+- ``--prefix``+- ``--user``+- ``--ghc``, ``--uhc``+- ``--verbose``+- ``--prefix``++- ``./setup build``+- ``./setup install``+- ``./setup register``+- ``./setup copy``++Stable Command-line interfaces+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~++Unstable command-line+~~~~~~~~~~~~~~~~~~~~~++Functions and Types+-------------------++The Cabal library follows the `Package Versioning Policy`_.+This means that within a stable major release, for example 1.2.x, there+will be no incompatible API changes. But minor versions increments, for+example 1.2.3, indicate compatible API additions.++The Package Versioning Policy does not require any API guarantees+between major releases, for example between 1.2.x and 1.4.x. In practise+of course not everything changes between major releases. Some parts of+the API are more prone to change than others. The rest of this section+gives some informal advice on what level of API stability you can expect+between major releases.++Very Stable API+~~~~~~~~~~~~~~~++- ``defaultMain``++- ``defaultMainWithHooks defaultUserHooks``++But regular ``defaultMainWithHooks`` isn't stable since ``UserHooks``+changes.++Semi-stable API+~~~~~~~~~~~~~~~++- ``UserHooks`` The hooks API will change in the future++- ``Distribution.*`` is mostly declarative information about packages+ and is somewhat stable.++Unstable API+~~~~~~~~~~~~++Everything under ``Distribution.Simple.*`` has no stability guarantee.++Hackage+-------++The index format is a partly stable interface. It consists of a tar.gz+file that contains directories with ``.cabal`` files in. In future it+may contain more kinds of files so do not assume every file is a+``.cabal`` file. Incompatible revisions to the format would involve+bumping the name of the index file, i.e., ``00-index.tar.gz``,+``01-index.tar.gz`` etc.+++.. include:: references.inc
+ doc/nix-local-build-overview.rst view
@@ -0,0 +1,34 @@+Nix-style Local Builds+======================++Nix-style local builds are a new build system implementation inspired by Nix.+The Nix-style local build system is commonly called "new-build" for short after the ``cabal new-*`` family of commands that control it.+However those names are only temporary until Nix-style local builds becomes the default.++Nix-style local builds combine the best of non-sandboxed and sandboxed Cabal:++1. Like sandboxed Cabal today, we build sets of independent local+ packages deterministically and independent of any global state.+ new-build will never tell you that it can't build your package+ because it would result in a "dangerous reinstall." Given a+ particular state of the Hackage index, your build is completely+ reproducible. For example, you no longer need to compile packages+ with profiling ahead of time; just request profiling and new-build+ will rebuild all its dependencies with profiling automatically.++2. Like non-sandboxed Cabal today, builds of external packages are+ cached in ``~/.cabal/store``, so that a package can be built once,+ and then reused anywhere else it is also used. No need to continually+ rebuild dependencies whenever you make a new sandbox: dependencies+ which can be shared, are shared.++Nix-style local builds were first released as beta in cabal-install 1.24.+They currently work with all versions of GHC supported by that release: GHC 7.0 and later.++Some features described in this manual are not implemented. If you need+them, please give us a shout and we'll prioritize accordingly.++++.. toctree::+ nix-local-build
+ doc/nix-local-build.rst view
@@ -0,0 +1,1709 @@+.. highlight:: console++Quickstart+==========++Suppose that you are in a directory containing a single Cabal package+which you wish to build. You can configure and build it using Nix-style+local builds with this command (configuring is not necessary):++::++ $ cabal new-build++To open a GHCi shell with this package, use this command:++::++ $ cabal new-repl++Developing multiple packages+----------------------------++Many Cabal projects involve multiple packages which need to be built+together. To build multiple Cabal packages, you need to first create a+``cabal.project`` file which declares where all the local package+directories live. For example, in the Cabal repository, there is a root+directory with a folder per package, e.g., the folders ``Cabal`` and+``cabal-install``. The ``cabal.project`` file specifies each folder as+part of the project:++.. code-block:: cabal++ packages: Cabal/+ cabal-install/++The expectation is that a ``cabal.project`` is checked into your source+control, to be used by all developers of a project. If you need to make+local changes, they can be placed in ``cabal.project.local`` (which+should not be checked in.)++Then, to build every component of every package, from the top-level+directory, run the command: (Warning: cabal-install-1.24 does NOT have+this behavior; you will need to upgrade to HEAD.)++::++ $ cabal new-build++To build a specific package, you can either run ``new-build`` from the+directory of the package in question:++::++ $ cd cabal-install+ $ cabal new-build++or you can pass the name of the package as an argument to+``cabal new-build`` (this works in any subdirectory of the project):++::++ $ cabal new-build cabal-install++You can also specify a specific component of the package to build. For+example, to build a test suite named ``package-tests``, use the command:++::++ $ cabal new-build package-tests++Targets can be qualified with package names. So to request+``package-tests`` *from* the ``Cabal`` package, use+``Cabal:package-tests``.++Unlike sandboxes, there is no need to setup a sandbox or ``add-source``+projects; just check in ``cabal.project`` to your repository and+``new-build`` will just work.++Cookbook+========++How can I profile my library/application?+-----------------------------------------++First, make sure you have HEAD; 1.24 is affected by :issue:`3790`,+which means that if any project which transitively depends on a+package which has a Custom setup built against Cabal 1.22 or earlier+will silently not work.++Create or edit your ``cabal.project.local``, adding the following+line::++ profiling: True++Now, ``cabal new-build`` will automatically build all libraries and+executables with profiling. You can fine-tune the profiling settings+for each package using :cfg-field:`profiling-detail`::++ package p+ profiling-detail: toplevel-functions++Alternately, you can call ``cabal new-build --enable-profiling`` to+temporarily build with profiling.++How it works+============++Local versus external packages+------------------------------++One of the primary innovations of Nix-style local builds is the+distinction between local packages, which users edit and recompile and+must be built per-project, versus external packages, which can be cached+across projects. To be more precise:++1. A **local package** is one that is listed explicitly in the+ ``packages``, ``optional-packages`` or ``extra-packages`` field of a+ project. Usually, these refer to packages whose source code lives+ directly in a folder in your project (although, you can list an+ arbitrary Hackage package in ``extra-packages`` to force it to be+ treated as local).++Local packages, as well as the external packages (below) which depend on+them, are built **inplace**, meaning that they are always built+specifically for the project and are not installed globally. Inplace+packages are not cached and not given unique hashes, which makes them+suitable for packages which you want to edit and recompile.++2. An **external package** is any package which is not listed in the+ ``packages`` field. The source code for external packages is usually+ retrieved from Hackage.++When an external package does not depend on an inplace package, it can+be built and installed to a **global** store, which can be shared across+projects. These build products are identified by a hash that over all of+the inputs which would influence the compilation of a package (flags,+dependency selection, etc.). Just as in Nix, these hashes uniquely+identify the result of a build; if we compute this identifier and we+find that we already have this ID built, we can just use the already+built version.++The global package store is ``~/.cabal/store``; if you need to clear+your store for whatever reason (e.g., to reclaim disk space or because+the global store is corrupted), deleting this directory is safe+(``new-build`` will just rebuild everything it needs on its next+invocation).++This split motivates some of the UI choices for Nix-style local build+commands. For example, flags passed to ``cabal new-build`` are only+applied to *local* packages, so that adding a flag to+``cabal new-build`` doesn't necessitate a rebuild of *every* transitive+dependency in the global package store.++In cabal-install HEAD, Nix-style local builds also take advantage of a+new Cabal library feature, `per-component+builds <https://github.com/ezyang/ghc-proposals/blob/master/proposals/0000-componentized-cabal.rst>`__,+where each component of a package is configured and built separately.+This can massively speed up rebuilds of packages with lots of components+(e.g., a package that defines multiple executables), as only one+executable needs to be rebuilt. Packages that use Custom setup scripts+are not currently built on a per-component basis.++Where are my build products?+----------------------------++A major deficiency in the current implementation of new-build is that+there is no programmatic way to access the location of build products.+The location of the build products is intended to be an internal+implementation detail of new-build, but we also understand that many+unimplemented features (e.g., ``new-test``) can only be reasonably+worked around by accessing build products directly.++The location where build products can be found varies depending on the+version of cabal-install:++- In cabal-install-1.24, the dist directory for a package ``p-0.1`` is+ stored in ``dist-newstyle/build/p-0.1``. For example, if you built an+ executable or test suite named ``pexe``, it would be located at+ ``dist-newstyle/build/p-0.1/build/pexe/pexe``.++- In cabal-install HEAD, the dist directory for a package ``p-0.1``+ defining a library built with GHC 8.0.1 on 64-bit Linux is+ ``dist-newstyle/build/x86_64-linux/ghc-8.0.1/p-0.1``. When+ per-component builds are enabled (any non-Custom package), a+ subcomponent like an executable or test suite named ``pexe`` will be+ stored at+ ``dist-newstyle/build/x86_64-linux/ghc-8.0.1/p-0.1/c/pexe``; thus,+ the full path of the executable is+ ``dist-newstyle/build/x86_64-linux/ghc-8.0.1/p-0.1/c/pexe/build/pexe/pexe``+ (you can see why we want this to be an implementation detail!)++The paths are a bit longer in HEAD but the benefit is that you can+transparently have multiple builds with different versions of GHC. We+plan to add the ability to create aliases for certain build+configurations, and more convenient paths to access particularly useful+build products like executables.++Caching+-------++Nix-style local builds sport a robust caching system which help reduce+the time it takes to execute a rebuild cycle. While the details of how+``cabal-install`` does caching are an implementation detail and may+change in the future, knowing what gets cached is helpful for+understanding the performance characteristics of invocations to+``new-build``. The cached intermediate results are stored in+``dist-newstyle/cache``; this folder can be safely deleted to clear the+cache.++The following intermediate results are cached in the following files in+this folder (the most important two are first):++``solver-plan`` (binary)+ The result of calling the dependency solver, assuming that the+ Hackage index, local ``cabal.project`` file, and local ``cabal``+ files are unmodified. (Notably, we do NOT have to dependency solve+ again if new build products are stored in the global store; the+ invocation of the dependency solver is independent of what is+ already available in the store.)+``source-hashes`` (binary)+ The hashes of all local source files. When all local source files of+ a local package are unchanged, ``cabal new-build`` will skip+ invoking ``setup build`` entirely (saving us from a possibly+ expensive call to ``ghc --make``). The full list of source files+ participating in compilation are determined using+ ``setup sdist --list-sources`` (thus, if you do not list all your+ source files in a Cabal file, you may fail to recompile when you+ edit them.)+``config`` (same format as ``cabal.project``)+ The full project configuration, merged from ``cabal.project`` (and+ friends) as well as the command line arguments.+``compiler`` (binary)+ The configuration of the compiler being used to build the project.+``improved-plan`` (binary)+ Like ``solver-plan``, but with all non-inplace packages improved+ into pre-existing copies from the store.++Note that every package also has a local cache managed by the Cabal+build system, e.g., in ``$distdir/cache``.++There is another useful file in ``dist-newstyle/cache``, ``plan.json``,+which is a JSON serialization of the computed install plan. (TODO: docs)++Commands+========++We now give an in-depth description of all the commands, describing the+arguments and flags they accept.++cabal new-configure+-------------------++``cabal new-configure`` takes a set of arguments and writes a+``cabal.project.local`` file based on the flags passed to this command.+``cabal new-configure FLAGS; cabal new-build`` is roughly equivalent to+``cabal new-build FLAGS``, except that with ``new-configure`` the flags+are persisted to all subsequent calls to ``new-build``.++``cabal new-configure`` is intended to be a convenient way to write out+a ``cabal.project.local`` for simple configurations; e.g.,+``cabal new-configure -w ghc-7.8`` would ensure that all subsequent+builds with ``cabal new-build`` are performed with the compiler+``ghc-7.8``. For more complex configuration, we recommend writing the+``cabal.project.local`` file directly (or placing it in+``cabal.project``!)++``cabal new-configure`` inherits options from ``Cabal``. semantics:++- Any flag accepted by ``./Setup configure``.++- Any flag accepted by ``cabal configure`` beyond+ ``./Setup configure``, namely ``--cabal-lib-version``,+ ``--constraint``, ``--preference`` and ``--solver.``++- Any flag accepted by ``cabal install`` beyond ``./Setup configure``.++- Any flag accepted by ``./Setup haddock``.++The options of all of these flags apply only to *local* packages in a+project; this behavior is different than that of ``cabal install``,+which applies flags to every package that would be built. The motivation+for this is to avoid an innocuous addition to the flags of a package+resulting in a rebuild of every package in the store (which might need+to happen if a flag actually applied to every transitive dependency). To+apply options to an external package, use a ``package`` stanza in a+``cabal.project`` file.++cabal new-build+---------------++``cabal new-build`` takes a set of targets and builds them. It+automatically handles building and installing any dependencies of these+targets.++A target can take any of the following forms:++- A package target: ``package``, which specifies that all enabled+ components of a package to be built. By default, test suites and+ benchmarks are *not* enabled, unless they are explicitly requested+ (e.g., via ``--enable-tests``.)++- A component target: ``[package:][ctype:]component``, which specifies+ a specific component (e.g., a library, executable, test suite or+ benchmark) to be built.++- All packages: ``all``, which specifies all packages within the project.++- Components of a particular type: ``ctype``, ``package:ctype``, ``all:ctype``:+ which specifies all components of the given type.++In component targets, ``package:`` and ``ctype:`` (valid component types+are ``lib``, ``exe``, ``test`` and ``bench``) can be used to+disambiguate when multiple packages define the same component, or the+same component name is used in a package (e.g., a package ``foo``+defines both an executable and library named ``foo``). We always prefer+interpreting a target as a package name rather than as a component name.++Some example targets:++::++ $ cabal new-build lib:foo-pkg # build the library named foo-pkg+ $ cabal new-build foo-pkg:foo-tests # build foo-tests in foo-pkg++(There is also syntax for specifying module and file targets, but it+doesn't currently do anything.)++Beyond a list of targets, ``cabal new-build`` accepts all the flags that+``cabal new-configure`` takes. Most of these flags are only taken into+consideration when building local packages; however, some flags may+cause extra store packages to be built (for example,+``--enable-profiling`` will automatically make sure profiling libraries+for all transitive dependencies are built and installed.)++cabal new-repl+--------------++``cabal new-repl TARGET`` loads all of the modules of the target into+GHCi as interpreted bytecode. It takes the same flags as+``cabal new-build``.++Currently, it is not supported to pass multiple targets to ``new-repl``+(``new-repl`` will just successively open a separate GHCi session for+each target.)++cabal new-freeze+----------------++``cabal new-freeze`` writes out a ``cabal.project.freeze`` file which+records all of the versions and flags which that are picked by the+solver under the current index and flags. A ``cabal.project.freeze``+file has the same syntax as ``cabal.project`` and looks something like+this:++.. highlight:: cabal++::++ constraints: HTTP ==4000.3.3,+ HTTP +warp-tests -warn-as-error -network23 +network-uri -mtl1 -conduit10,+ QuickCheck ==2.9.1,+ QuickCheck +templatehaskell,+ -- etc...+++For end-user executables, it is recommended that you distribute the+``cabal.project.freeze`` file in your source repository so that all+users see a consistent set of dependencies. For libraries, this is not+recommended: users often need to build against different versions of+libraries than what you developed against.++Unsupported commands+--------------------++The following commands are not currently supported:++``cabal new-test`` (:issue:`3638`)+ Workaround: run the test executable directly (see `Where are my+ build products <#where-are-my-build-products>`__?)++``cabal new-bench`` (:issue:`3638`)+ Workaround: run the benchmark executable directly (see `Where are my+ build products <#where-are-my-build-products>`__?)++``cabal new-run`` (:issue:`3638`)+ Workaround: run the executable directly (see `Where are my build+ products <#where-are-my-build-products>`__?)++``cabal new-exec``+ Workaround: if you wanted to execute GHCi, consider using+ ``cabal new-repl`` instead. Otherwise, use ``-v`` to find the list+ of flags GHC is being invoked with and pass it manually.++``cabal new-haddock`` (:issue:`3535`)+ Workaround: run+ ``cabal act-as-setup -- haddock --builddir=dist-newstyle/build/pkg-0.1``+ (or execute the Custom setup script directly).++``cabal new-install`` (:issue:`3737`)+ Workaround: no good workaround at the moment. (But note that you no+ longer need to install libraries before building!)++Configuring builds with cabal.project+=====================================++``cabal.project`` files support a variety of options which configure the+details of your build. The general syntax of a ``cabal.project`` file is+similar to that of a Cabal file: there are a number of fields, some of+which live inside stanzas:++::++ packages: */*.cabal+ with-compiler: /opt/ghc/8.0.1/bin/ghc++ package cryptohash+ optimization: False++In general, the accepted field names coincide with the accepted command+line flags that ``cabal install`` and other commands take. For example,+``cabal new-configure --enable-profiling`` will write out a project+file with ``profiling: True``.++The full configuration of a project is determined by combining the+following sources (later entries override earlier ones):++1. ``~/.cabal/config`` (the user-wide global configuration)++2. ``cabal.project`` (the project configuratoin)++3. ``cabal.project.freeze`` (the output of ``cabal new-freeze``)++4. ``cabal.project.local`` (the output of ``cabal new-configure``)+++Specifying the local packages+-----------------------------++The following top-level options specify what the local packages of a+project are:++.. cfg-field:: packages: package location list (space or comma separated)+ :synopsis: Project packages.++ :default: ``./*.cabal``++ Specifies the list of package locations which contain the local+ packages to be built by this project. Package locations can take the+ following forms:++ 1. They can specify a Cabal file, or a directory containing a Cabal+ file, e.g., ``packages: Cabal cabal-install/cabal-install.cabal``.++ 2. They can specify a glob-style wildcards, which must match one or+ more (a) directories containing a (single) Cabal file, (b) Cabal+ files (extension ``.cabal``), or (c) [STRIKEOUT:tarballs which+ contain Cabal packages (extension ``.tar.gz``)] (not implemented+ yet). For example, to match all Cabal files in all+ subdirectories, as well as the Cabal projects in the parent+ directories ``foo`` and ``bar``, use+ ``packages: */*.cabal ../{foo,bar}/``++ 3. [STRIKEOUT:They can specify an ``http``, ``https`` or ``file``+ URL, representing the path to a remote tarball to be downloaded+ and built.] (not implemented yet)++ There is no command line variant of this field; see :issue:`3585`.++.. cfg-field:: optional-packages: package location list (space or comma-separated)+ :synopsis: Optional project packages.++ :default: ``./*/*.cabal``++ Like :cfg-field:`packages`, specifies a list of package locations+ containing local packages to be built. Unlike :cfg-field:`packages`,+ if we glob for a package, it is permissible for the glob to match against+ zero packages. The intended use-case for :cfg-field:`optional-packages`+ is to make it so that vendored packages can be automatically picked up if+ they are placed in a subdirectory, but not error if there aren't any.++ There is no command line variant of this field.++.. cfg-field:: extra-packages: package list with version bounds (comma separated)+ :synopsis: Adds external pacakges as local++ [STRIKEOUT:Specifies a list of external packages from Hackage which+ should be considered local packages.] (Not implemented)++ There is no command line variant of this field.++[STRIKEOUT:There is also a stanza ``source-repository-package`` for+specifying packages from an external version control.] (Not+implemented.)++All local packages are *vendored*, in the sense that if other packages+(including external ones from Hackage) depend on a package with the name+of a local package, the local package is preferentially used. This+motivates the default settings::++ packages: ./*.cabal+ optional-packages: ./*/*.cabal++...any package can be vendored simply by making a checkout in the+top-level project directory, as might be seen in this hypothetical+directory layout::++ foo.cabal+ foo-helper/ # local package+ unix/ # vendored external package++All of these options support globs. ``cabal new-build`` has its own glob+format:++- Anywhere in a path, as many times as you like, you can specify an+ asterisk ``*`` wildcard. E.g., ``*/*.cabal`` matches all ``.cabal``+ files in all immediate subdirectories. Like in glob(7), asterisks do+ not match hidden files unless there is an explicit period, e.g.,+ ``.*/foo.cabal`` will match ``.private/foo.cabal`` (but+ ``*/foo.cabal`` will not).++- You can use braces to specify specific directories; e.g.,+ ``{vendor,pkgs}/*.cabal`` matches all Cabal files in the ``vendor``+ and ``pkgs`` subdirectories.++Formally, the format described by the following BNF:++.. code-block:: abnf++ FilePathGlob ::= FilePathRoot FilePathGlobRel+ FilePathRoot ::= {- empty -} # relative to cabal.project+ | "/" # Unix root+ | [a-zA-Z] ":" [/\\] # Windows root+ | "~" # home directory+ FilePathGlobRel ::= Glob "/" FilePathGlobRel # Unix directory+ | Glob "\\" FilePathGlobRel # Windows directory+ | Glob # file+ | {- empty -} # trailing slash+ Glob ::= GlobPiece *+ GlobPiece ::= "*" # wildcard+ | [^*{},/\\] * # literal string+ | "\\" [*{},] # escaped reserved character+ | "{" Glob "," ... "," Glob "}" # union (match any of these)++Global configuration options+----------------------------++The following top-level configuration options are not specific to any+package, and thus apply globally:++.. cfg-field:: verbose: nat+ --verbose=n, -vn+ :synopsis: Build verbosity level.++ :default: 1++ Control the verbosity of ``cabal`` commands, valid values are from 0+ to 3.++ The command line variant of this field is ``--verbose=2``; a short+ form ``-v2`` is also supported.++.. cfg-field:: jobs: nat or $ncpus+ --jobs=n, -jn, --jobs=$ncpus+ :synopsis: Number of builds running in parallel.++ :default: 1++ Run *nat* jobs simultaneously when building. If ``$ncpus`` is+ specified, run the number of jobs equal to the number of CPUs.+ Package building is often quite parallel, so turning on parallelism+ can speed up build times quite a bit!++ The command line variant of this field is ``--jobs=2``; a short form+ ``-j2`` is also supported; a bare ``--jobs`` or ``-j`` is equivalent+ to ``--jobs=$ncpus``.++.. cfg-field:: keep-going: boolean+ --keep-going+ :synopsis: Try to continue building on failure.++ :default: False++ If true, after a build failure, continue to build other unaffected+ packages.++ The command line variant of this field is ``--keep-going``.++.. option:: --builddir=DIR++ Specifies the name of the directory where build products for+ build will be stored; defaults to ``dist-newstyle``. If a+ relative name is specified, this directory is resolved relative+ to the root of the project (i.e., where the ``cabal.project``+ file lives.)++ This option cannot be specified via a ``cabal.project`` file.++.. option:: --project-file=FILE++ Specifies the name of the project file used to specify the+ rest of the top-level configuration; defaults to ``cabal.project``.+ This name not only specifies the name of the main project file,+ but also the auxiliary project files ``cabal.project.freeze``+ and ``cabal.project.local``; for example, if you specify+ ``--project-file=my.project``, then the other files that will+ be probed are ``my.project.freeze`` and ``my.project.local``.++ If the specified project file is a relative path, we will+ look for the file relative to the current working directory,+ and then for the parent directory, until the project file is+ found or we have hit the top of the user's home directory.++ This option cannot be specified via a ``cabal.project`` file.++Solver configuration options+----------------------------++The following settings control the behavior of the dependency solver:++.. cfg-field:: constraints: constraints list (comma separated)+ --constraint="pkg >= 2.0"+ :synopsis: Extra dependencies constraints.++ Add extra constraints to the version bounds, flag settings,+ and other properties a solver can pick for a+ package. For example:+ + ::++ constraints: bar == 2.1++ A package can be specified multiple times in ``constraints``, in+ which case the specified constraints are intersected. This is+ useful, since the syntax does not allow you to specify multiple+ constraints at once. For example, to specify both version bounds and+ flag assignments, you would write:++ ::++ constraints: bar == 2.1,+ bar +foo -baz++ Valid constraints take the same form as for the `constraint+ command line option+ <installing-packages.html#cmdoption-setup-configure--constraint>`__.++.. cfg-field:: preferences: preference (comma separated)+ --preference="pkg >= 2.0"+ :synopsis: Prefered dependency versions.++ Like :cfg-field:`constraints`, but the solver will attempt to satisfy+ these preferences on a best-effort basis. The resulting install is locally+ optimal with respect to preferences; specifically, no single package+ could be replaced with a more preferred version that still satisfies+ the hard constraints.++ Operationally, preferences can cause the solver to attempt certain+ version choices of a package before others, which can improve+ dependency solver runtime.++ One way to use :cfg-field:`preferences` is to take a known working set of+ constraints (e.g., via ``cabal new-freeze``) and record them as+ preferences. In this case, the solver will first attempt to use this+ configuration, and if this violates hard constraints, it will try to+ find the minimal number of upgrades to satisfy the hard constraints+ again.++ The command line variant of this field is+ ``--preference="pkg >= 2.0"``; to specify multiple preferences, pass+ the flag multiple times.++.. cfg-field:: allow-newer: none, all or list of scoped package names (space or comma separated)+ --allow-newer, --allow-newer=[none,all,pkg]+ :synopsis: Lift dependencies upper bound constaints.++ :default: ``none``++ Allow the solver to pick an newer version of some packages than+ would normally be permitted by than the :pkg-field:`build-depends` bounds+ of packages in the install plan. This option may be useful if the+ dependency solver cannot otherwise find a valid install plan.++ For example, to relax ``pkg``\ s :pkg-field:`build-depends` upper bound on+ ``dep-pkg``, write a scoped package name of the form:++ ::++ allow-newer: pkg:dep-pkg++ This syntax is recommended, as it is often only a single package+ whose upper bound is misbehaving. In this case, the upper bounds of+ other packages should still be respected; indeed, relaxing the bound+ can break some packages which test the selected version of packages.++ However, in some situations (e.g., when attempting to build packages+ on a new version of GHC), it is useful to disregard *all*+ upper-bounds, with respect to a package or all packages. This can be+ done by specifying just a package name, or using the keyword ``all``+ to specify all packages:++ ::++ -- Disregard upper bounds involving the dependencies on+ -- packages bar, baz and quux+ allow-newer: bar, baz, quux++ -- Disregard all upper bounds when dependency solving+ allow-newer: all++ :cfg-field:`allow-newer` is often used in conjunction with a constraint+ (in the cfg-field:`constraints` field) forcing the usage of a specific,+ newer version of a package.++ The command line variant of this field is ``--allow-newer=bar``. A+ bare ``--allow-newer`` is equivalent to ``--allow-newer=all``.++.. cfg-field:: allow-older: none, all, list of scoped package names (space or comma separated)+ --allow-older, --allow-older=[none,all,pkg]+ :synopsis: Lift dependency lower bound constaints.++ :default: ``none``++ Like :cfg-field:`allow-newer`, but applied to lower bounds rather than+ upper bounds.++ The command line variant of this field is ``--allow-older=all``. A+ bare ``--allow-older`` is equivalent to ``--allow-older=all``.+++.. cfg-field:: index-state: HEAD, unix-timestamp, ISO8601 UTC timestamp.+ :synopsis: Use source package index state as it existed at a previous time.+ :since: 2.0++ :default: ``HEAD``++ This allows to change the source package index state the solver uses+ to compute install-plans. This is particularly useful in+ combination with freeze-files in order to also freeze the state the+ package index was in at the time the install-plan was frozen.++ ::++ -- UNIX timestamp format example+ index-state: @1474739268++ -- ISO8601 UTC timestamp format example+ -- This format is used by 'cabal new-configure'+ -- for storing `--index-state` values.+ index-state: 2016-09-24T17:47:48Z+++Package configuration options+-----------------------------++Package options affect the building of specific packages. There are two+ways a package option can be specified:++- They can be specified at the top-level, in which case they apply only+ to **local package**, or++- They can be specified inside a ``package`` stanza, in which case they+ apply to the build of the package, whether or not it is local or+ external.++For example, the following options specify that :cfg-field:`optimization`+should be turned off for all local packages, and that ``bytestring`` (possibly+an external dependency) should be built with ``-fno-state-hack``::++ optimization: False++ package bytestring+ ghc-options: -fno-state-hack++``ghc-options`` is not specifically described in this documentation,+but is one of many fields for configuring programs. They take the form+``progname-options`` and ``progname-location``, and+can only be set inside package stanzas. (TODO: They are not supported+at top-level, see :issue:`3579`.)++At the moment, there is no way to specify an option to apply to all+external packages or all inplace packages. Additionally, it is only+possible to specify these options on the command line for all local+packages (there is no per-package command line interface.)++Some flags were added by more recent versions of the Cabal library. This+means that they are NOT supported by packages which use Custom setup+scripts that require a version of the Cabal library older than when the+feature was added.++.. cfg-field:: flags: list of +flagname or -flagname (space separated)+ --flags="+foo -bar", -ffoo, -f-bar+ :synopsis: Enable or disable package flags.++ Force all flags specified as ``+flagname`` to be true, and all flags+ specified as ``-flagname`` to be false. For example, to enable the+ flag ``foo`` and disable ``bar``, set:++ ::++ flags: +foo -bar++ If there is no leading punctuation, it is assumed that the flag+ should be enabled; e.g., this is equivalent:++ ::++ flags: foo -bar++ Flags are *per-package*, so it doesn't make much sense to specify+ flags at the top-level, unless you happen to know that *all* of your+ local packages support the same named flags. If a flag is not+ supported by a package, it is ignored.++ See also the solver configuration field :cfg-field:`constraints`.++ The command line variant of this flag is ``--flags``. There is also+ a shortened form ``-ffoo -f-bar``.++ A common mistake is to say ``cabal new-build -fhans``, where+ ``hans`` is a flag for a transitive dependency that is not in the+ local package; in this case, the flag will be silently ignored. If+ ``haskell-tor`` is the package you want this flag to apply to, try+ ``--constraint="haskell-tor +hans"`` instead.++.. cfg-field:: with-compiler: executable+ --with-compiler=executable+ :synopsis: Path to compiler executable.++ Specify the path to a particular compiler to be used. If not an+ absolute path, it will be resolved according to the :envvar:`PATH`+ environment. The type of the compiler (GHC, GHCJS, etc) must be+ consistent with the setting of the :cfg-field:`compiler` field.++ The most common use of this option is to specify a different version+ of your compiler to be used; e.g., if you have ``ghc-7.8`` in your+ path, you can specify ``with-compiler: ghc-7.8`` to use it.++ This flag also sets the default value of :cfg-field:`with-hc-pkg`, using+ the heuristic that it is named ``ghc-pkg-7.8`` (if your executable name+ is suffixed with a version number), or is the executable named+ ``ghc-pkg`` in the same directory as the ``ghc`` directory. If this+ heuristic does not work, set :cfg-field:`with-hc-pkg` explicitly.++ For inplace packages, ``cabal new-build`` maintains a separate build+ directory for each version of GHC, so you can maintain multiple+ build trees for different versions of GHC without clobbering each+ other.++ At the moment, it's not possible to set :cfg-field:`with-compiler` on a+ per-package basis, but eventually we plan on relaxing this+ restriction. If this is something you need, give us a shout.++ The command line variant of this flag is+ ``--with-compiler=ghc-7.8``; there is also a short version+ ``-w ghc-7.8``.++.. cfg-field:: with-hc-pkg: executable+ --with-hc-pkg=executable+ :synopsis: Specifies package tool.++ Specify the path to the package tool, e.g., ``ghc-pkg``. This+ package tool must be compatible with the compiler specified by+ :cfg-field:`with-compiler` (generally speaking, it should be precisely+ the tool that was distributed with the compiler). If this option is+ omitted, the default value is determined from :cfg-field:`with-compiler`.++ The command line variant of this flag is+ ``--with-hc-pkg=ghc-pkg-7.8``.++.. cfg-field:: optimization: nat+ --enable-optimization+ --disable-optimization+ :synopsis: Build with optimization.++ :default: ``1``++ Build with optimization. This is appropriate for production use,+ taking more time to build faster libraries and programs.++ The optional *nat* value is the optimisation level. Some compilers+ support multiple optimisation levels. The range is 0 to 2. Level 0+ disables optimization, level 1 is the default. Level 2 is higher+ optimisation if the compiler supports it. Level 2 is likely to lead+ to longer compile times and bigger generated code. If you are not+ planning to run code, turning off optimization will lead to better+ build times and less code to be rebuilt when a module changes.++ We also accept ``True`` (equivalent to 1) and ``False`` (equivalent+ to 0).++ Note that as of GHC 8.0, GHC does not recompile when optimization+ levels change (see :ghc-ticket:`10923`), so if+ you change the optimization level for a local package you may need+ to blow away your old build products in order to rebuild with the+ new optimization level.++ The command line variant of this flag is ``-O2`` (with ``-O1``+ equivalent to ``-O``). There are also long-form variants+ ``--enable-optimization`` and ``--disable-optimization``.++.. cfg-field:: configure-options: args (space separated)+ --configure-option=arg+ :synopsis: Options to pass to configure script.++ A list of extra arguments to pass to the external ``./configure``+ script, if one is used. This is only useful for packages which have+ the ``Configure`` build type. See also the section on+ `system-dependent+ parameters <developing-packages.html#system-dependent-parameters>`__.++ The command line variant of this flag is ``--configure-option=arg``,+ which can be specified multiple times to pass multiple options.++.. cfg-field:: compiler: ghc, ghcjs, jhc, lhc, uhc or haskell-suite+ --compiler=compiler+ :synopsis: Compiler to build with.++ :default: ``ghc``++ Specify which compiler toolchain to be used. This is independent of+ ``with-compiler``, because the choice of toolchain affects Cabal's+ build logic.++ The command line variant of this flag is ``--compiler=ghc``.++.. cfg-field:: tests: boolean+ --enable-tests+ --disable-tests+ :synopsis: Build tests.++ :default: ``False``++ Force test suites to be enabled. For most users this should not be+ needed, as we always attempt to solve for test suite dependencies,+ even when this value is ``False``; furthermore, test suites are+ automatically enabled if they are requested as a built target.++ The command line variant of this flag is ``--enable-tests`` and+ ``--disable-tests``.++.. cfg-field:: benchmarks: boolean+ --enable-benchmarks+ --disable-benchmarks+ :synopsis: Build benchmarks.++ :default: ``False``++ Force benchmarks to be enabled. For most users this should not be+ needed, as we always attempt to solve for benchmark dependencies,+ even when this value is ``False``; furthermore, benchmarks are+ automatically enabled if they are requested as a built target.++ The command line variant of this flag is ``--enable-benchmarks`` and+ ``--disable-benchmarks``.++.. cfg-field:: extra-prog-path: paths (newline or comma separated)+ --extra-prog-path=PATH+ :synopsis: Add directories to program search path.+ :since: 1.18++ A list of directories to search for extra required programs. Most+ users should not need this, as programs like ``happy`` and ``alex``+ will automatically be installed and added to the path. This can be+ useful if a ``Custom`` setup script relies on an exotic extra+ program.++ The command line variant of this flag is ``--extra-prog-path=PATH``,+ which can be specified multiple times.++.. cfg-field:: run-tests: boolean+ --run-tests+ :synopsis: Run package test suite upon installation.++ :default: ``False``++ Run the package test suite upon installation. This is useful for+ saying "When this package is installed, check that the test suite+ passes, terminating the rest of the build if it is broken."++ .. warning::++ One deficiency: the :cfg-field:`run-tests` setting of a package is NOT+ recorded as part of the hash, so if you install something without+ :cfg-field:`run-tests` and then turn on ``run-tests``, we won't+ subsequently test the package. If this is causing you problems, give+ us a shout.++ The command line variant of this flag is ``--run-tests``.++Object code options+^^^^^^^^^^^^^^^^^^^++.. cfg-field:: debug-info: boolean+ --enable-debug-info+ --disable-debug-info+ :synopsis: Build with debug info enabled.+ :since: 1.22++ :default: False++ If the compiler (e.g., GHC 7.10 and later) supports outputing OS+ native debug info (e.g., DWARF), setting ``debug-info: True`` will+ instruct it to do so. See the GHC wiki page on :ghc-wiki:`DWARF`+ for more information about this feature.++ (This field also accepts numeric syntax, but as of GHC 8.0 this+ doesn't do anything.)++ The command line variant of this flag is ``--enable-debug-info`` and+ ``--disable-debug-info``.++.. cfg-field:: split-objs: boolean+ --enable-split-objs+ --disable-split-objs+ :synopsis: Use GHC split objects feature.++ :default: False++ Use the GHC ``-split-objs`` feature when building the library. This+ reduces the final size of the executables that use the library by+ allowing them to link with only the bits that they use rather than+ the entire library. The downside is that building the library takes+ longer and uses considerably more memory.++ The command line variant of this flag is ``--enable-split-objs`` and+ ``--disable-split-objs``.++.. cfg-field:: executable-stripping: boolean+ --enable-executable-stripping+ --disable-executable-stripping+ :synopsis: Strip installed programs.++ :default: True++ When installing binary executable programs, run the ``strip``+ program on the binary. This can considerably reduce the size of the+ executable binary file. It does this by removing debugging+ information and symbols.++ Not all Haskell implementations generate native binaries. For such+ implementations this option has no effect.++ (TODO: Check what happens if you combine this with ``debug-info``.)++ The command line variant of this flag is+ ``--enable-executable-stripping`` and+ ``--disable-executable-stripping``.++.. cfg-field:: library-stripping: boolean+ --enable-library-stripping+ --disable-library-stripping+ :synopsis: Strip installed libraries.+ :since: 1.19++ When installing binary libraries, run the ``strip`` program on the+ binary, saving space on the file system. See also+ ``executable-stripping``.++ The command line variant of this flag is+ ``--enable-library-stripping`` and ``--disable-library-stripping``.++Executable options+^^^^^^^^^^^^^^^^^^++.. cfg-field:: program-prefix: prefix+ --program-prefix=prefix+ :synopsis: Prepend prefix to program names.++ [STRIKEOUT:Prepend *prefix* to installed program names.] (Currently+ implemented in a silly and not useful way. If you need this to work+ give us a shout.)++ *prefix* may contain the following path variables: ``$pkgid``,+ ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``,+ ``$abitag``++ The command line variant of this flag is ``--program-prefix=foo-``.++.. cfg-field:: program-suffix: suffix+ --program-suffix=suffix+ :synopsis: Append refix to program names.++ [STRIKEOUT:Append *suffix* to installed program names.] (Currently+ implemented in a silly and not useful way. If you need this to work+ give us a shout.)++ The most obvious use for this is to append the program's version+ number to make it possible to install several versions of a program+ at once: ``program-suffix: $version``.++ *suffix* may contain the following path variables: ``$pkgid``,+ ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``,+ ``$abitag``++ The command line variant of this flag is+ ``--program-suffix='$version'``.++Dynamic linking options+^^^^^^^^^^^^^^^^^^^^^^^++.. cfg-field:: shared: boolean+ --enable-shared+ --disable-shared+ :synopsis: Build shared library.++ :default: False++ Build shared library. This implies a separate compiler run to+ generate position independent code as required on most platforms.++ The command line variant of this flag is ``--enable-shared`` and+ ``--disable-shared``.++.. cfg-field:: executable-dynamic: boolean+ --enable-executable-dynamic+ --disable-executable-dynamic+ :synopsis: Link executables dynamically.++ :default: False++ Link executables dynamically. The executable's library dependencies+ should be built as shared objects. This implies ``shared: True``+ unless ``shared: False`` is explicitly specified.++ The command line variant of this flag is+ ``--enable-executable-dynamic`` and+ ``--disable-executable-dynamic``.++.. cfg-field:: library-for-ghci: boolean+ --enable-library-for-ghci+ --disable-library-for-ghci+ :synopsis: Build libraries suitable for use with GHCi.++ :default: True++ Build libraries suitable for use with GHCi. This involves an extra+ linking step after the build.++ Not all platforms support GHCi and indeed on some platforms, trying+ to build GHCi libs fails. In such cases, consider setting+ ``library-for-ghci: False``.++ The command line variant of this flag is+ ``--enable-library-for-ghci`` and ``--disable-library-for-ghci``.++.. cfg-field:: relocatable:+ --relocatable+ :synopsis: Build relocatable package.+ :since: 1.21++ :default: False++ [STRIKEOUT:Build a package which is relocatable.] (TODO: It is not+ clear what this actually does, or if it works at all.)++ The command line variant of this flag is ``--relocatable``.++Foreign function interface options+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^++.. cfg-field:: extra-include-dirs: directories (comma or newline separated list)+ --extra-include-dirs=DIR+ :synopsis: Adds C header search path.++ An extra directory to search for C header files. You can use this+ flag multiple times to get a list of directories.++ You might need to use this flag if you have standard system header+ files in a non-standard location that is not mentioned in the+ package's ``.cabal`` file. Using this option has the same affect as+ appending the directory *dir* to the :pkg-field:`include-dirs` field in each+ library and executable in the package's ``.cabal`` file. The+ advantage of course is that you do not have to modify the package at+ all. These extra directories will be used while building the package+ and for libraries it is also saved in the package registration+ information and used when compiling modules that use the library.++ The command line variant of this flag is+ ``--extra-include-dirs=DIR``, which can be specified multiple times.++.. cfg-field:: extra-lib-dirs: directories (comma or newline separated list)+ --extra-lib-dirs=DIR+ :synopsis: Adds library search directory.++ An extra directory to search for system libraries files.++ The command line variant of this flag is ``--extra-lib-dirs=DIR``,+ which can be specified multiple times.++.. cfg-field:: extra-framework-dirs: directories (comma or newline separated list)+ --extra-framework-dirs=DIR+ :synopsis: Adds framework search directory (OS X only).++ An extra directory to search for frameworks (OS X only).++ You might need to use this flag if you have standard system+ libraries in a non-standard location that is not mentioned in the+ package's ``.cabal`` file. Using this option has the same affect as+ appending the directory *dir* to the :cfg-field:`extra-lib-dirs` field in+ each library and executable in the package's ``.cabal`` file. The+ advantage of course is that you do not have to modify the package at+ all. These extra directories will be used while building the package+ and for libraries it is also saved in the package registration+ information and used when compiling modules that use the library.++ The command line variant of this flag is+ ``--extra-framework-dirs=DIR``, which can be specified multiple+ times.++Profiling options+^^^^^^^^^^^^^^^^^++.. cfg-field:: profiling: boolean+ --enable-profiling+ --disable-profiling+ :synopsis: Enable profiling builds.+ :since: 1.21++ :default: False++ Build libraries and executables with profiling enabled (for+ compilers that support profiling as a separate mode). It is only+ necessary to specify :cfg-field:`profiling` for the specific package you+ want to profile; ``cabal new-build`` will ensure that all of its+ transitive dependencies are built with profiling enabled.++ To enable profiling for only libraries or executables, see+ :cfg-field:`library-profiling` and :cfg-field:`executable-profiling`.++ For useful profiling, it can be important to control precisely what+ cost centers are allocated; see :cfg-field:`profiling-detail`.++ The command line variant of this flag is ``--enable-profiling`` and+ ``--disable-profiling``.++.. cfg-field:: profiling-detail: level+ --profiling-detail=level+ :synopsis: Profiling detail level.+ :since: 1.23++ Some compilers that support profiling, notably GHC, can allocate+ costs to different parts of the program and there are different+ levels of granularity or detail with which this can be done. In+ particular for GHC this concept is called "cost centers", and GHC+ can automatically add cost centers, and can do so in different ways.++ This flag covers both libraries and executables, but can be+ overridden by the ``library-profiling-detail`` field.++ Currently this setting is ignored for compilers other than GHC. The+ levels that cabal currently supports are:++ default+ For GHC this uses ``exported-functions`` for libraries and+ ``toplevel-functions`` for executables.+ none+ No costs will be assigned to any code within this component.+ exported-functions+ Costs will be assigned at the granularity of all top level+ functions exported from each module. In GHC, this+ is for non-inline functions. Corresponds to ``-fprof-auto-exported``.+ toplevel-functions+ Costs will be assigned at the granularity of all top level+ functions in each module, whether they are exported from the+ module or not. In GHC specifically, this is for non-inline+ functions. Corresponds to ``-fprof-auto-top``.+ all-functions+ Costs will be assigned at the granularity of all functions in+ each module, whether top level or local. In GHC specifically,+ this is for non-inline toplevel or where-bound functions or+ values. Corresponds to ``-fprof-auto``.++ The command line variant of this flag is+ ``--profiling-detail=none``.++.. cfg-field:: library-profiling-detail: level+ --library-profiling-detail=level+ :synopsis: Libraries profiling detail level.+ :since: 1.23++ Like :cfg-field:`profiling-detail`, but applied only to libraries++ The command line variant of this flag is+ ``--library-profiling-detail=none``.++.. cfg-field:: library-vanilla: boolean+ --enable-library-vanilla+ --disable-library-vanilla+ :synopsis: Build libraries without profiling.++ :default: True++ Build ordinary libraries (as opposed to profiling libraries).+ Mostly, you can set this to False to avoid building ordinary+ libraries when you are profiling.++ The command line variant of this flag is+ ``--enable-library-vanilla`` and ``--disable-library-vanilla``.++.. cfg-field:: library-profiling: boolean+ --enable-library-profiling+ --disable-library-profiling+ :synopsis: Build libraries with profiling enabled.+ :since: 1.21++ :default: False++ Build libraries with profiling enabled. You probably want+ to use :cfg-field:`profiling` instead.++ The command line variant of this flag is+ ``--enable-library-profiling`` and ``--disable-library-profiling``.++.. cfg-field:: executable-profiling: boolean+ --enable-executable-profiling+ --disable-executable-profiling+ :synopsis: Build executables with profiling enabled.+ :since: 1.21++ :default: False++ Build executables with profiling enabled. You probably want+ to use :cfg-field:`profiling` instead.++ The command line variant of this flag is+ ``--enable-executable-profiling`` and+ ``--disable-executable-profiling``.++Coverage options+^^^^^^^^^^^^^^^^++.. cfg-field:: coverage: boolean+ --enable-coverage+ --disable-coverage+ :synopsis: Build with coverage enabled.+ :since: 1.21++ :default: False++ Build libraries and executables (including test suites) with Haskell+ Program Coverage enabled. Running the test suites will automatically+ generate coverage reports with HPC.++ The command line variant of this flag is ``--enable-coverage`` and+ ``--disable-coverage``.++.. cfg-field:: library-coverage: boolean+ --enable-library-coverage+ --disable-library-coverage+ :since: 1.21+ :deprecated:++ :default: False++ Deprecated, use :cfg-field:`coverage`.++ The command line variant of this flag is+ ``--enable-library-coverage`` and ``--disable-library-coverage``.++Haddock options+^^^^^^^^^^^^^^^++Documentation building support is fairly sparse at the moment. Let us+know if it's a priority for you!++.. cfg-field:: documentation: boolean+ --enable-documentation+ --disable-documentation+ :synopsis: Enable building of documentation.++ :default: False++ Enables building of Haddock documentation++ The command line variant of this flag is ``--enable-documentation``+ and ``--disable-documentation``.++.. cfg-field:: doc-index-file: templated path+ --doc-index-file=TEMPLATE+ :synopsis: Path to haddock templates.++ A central index of Haddock API documentation (template cannot use+ ``$pkgid``), which should be updated as documentation is built.++ The command line variant of this flag is+ ``--doc-index-file=TEMPLATE``++The following commands are equivalent to ones that would be passed when+running ``setup haddock``. (TODO: Where does the documentation get put.)++.. cfg-field:: haddock-hoogle: boolean+ :synopsis: Generate Hoogle file.++ :default: False++ Generate a text file which can be converted by Hoogle_+ into a database for searching. This is equivalent to running ``haddock``+ with the ``--hoogle`` flag.++ The command line variant of this flag is ``--hoogle`` (for the+ ``haddock`` command).++.. cfg-field:: haddock-html: boolean+ :synopsis: Build HTML documentation.++ :default: True++ Build HTML documentation.++ The command line variant of this flag is ``--html`` (for the+ ``haddock`` command).++.. cfg-field:: haddock-html-location: templated path+ :synopsis: Haddock HTML templates location.++ Specify a template for the location of HTML documentation for+ prerequisite packages. The substitutions are applied to the template+ to obtain a location for each package, which will be used by+ hyperlinks in the generated documentation. For example, the+ following command generates links pointing at [Hackage] pages:++ ::++ html-location: 'http://hackage.haskell.org/packages/archive/$pkg/latest/doc/html'++ Here the argument is quoted to prevent substitution by the shell. If+ this option is omitted, the location for each package is obtained+ using the package tool (e.g. ``ghc-pkg``).++ The command line variant of this flag is ``--html-location`` (for+ the ``haddock`` subcommand).++.. cfg-field:: haddock-executables: boolean+ :synopsis: Generate documentation for executables.++ :default: False++ Run haddock on all executable programs.++ The command line variant of this flag is ``--executables`` (for the+ ``haddock`` subcommand).++.. cfg-field:: haddock-tests: boolean+ :synopsis: Generate documentation for tests.++ :default: False++ Run haddock on all test suites.++ The command line variant of this flag is ``--tests`` (for the+ ``haddock`` subcommand).++.. cfg-field:: haddock-benchmarks: boolean+ :synopsis: Generate documentation for benchmarks.++ :default: False++ Run haddock on all benchmarks.++ The command line variant of this flag is ``--benchmarks`` (for the+ ``haddock`` subcommand).++.. cfg-field:: haddock-all: boolean+ :synopsis: Generate documentation for everything++ :default: False++ Run haddock on all components.++ The command line variant of this flag is ``--all`` (for the+ ``haddock`` subcommand).++.. cfg-field:: haddock-internal: boolean+ :synopsis: Generate documentation for internal modules++ :default: False++ Build haddock documentation which includes unexposed modules and+ symbols.++ The command line variant of this flag is ``--internal`` (for the+ ``haddock`` subcommand).++.. cfg-field:: haddock-css: path+ :synopsis: Location of Haddoc CSS file.++ The CSS file that should be used to style the generated+ documentation (overriding haddock's default.)++ The command line variant of this flag is ``--css`` (for the+ ``haddock`` subcommand).++.. cfg-field:: haddock-hyperlink-source: boolean+ :synopsis: Generate hyperlinked source code for documentation++ :default: False++ Generated hyperlinked source code using `HsColour`_, and have+ Haddock documentation link to it.++ The command line variant of this flag is ``--hyperlink-source`` (for+ the ``haddock`` subcommand).++.. cfg-field:: haddock-hscolour-css: path+ :synopsis: Location of CSS file for HsColour++ The CSS file that should be used to style the generated hyperlinked+ source code (from `HsColour`_).++ The command line variant of this flag is ``--hscolour-css`` (for the+ ``haddock`` subcommand).++.. cfg-field:: haddock-contents-location: URL+ :synopsis: URL for contents page.++ A baked-in URL to be used as the location for the contents page.++ The command line variant of this flag is ``--contents-location``+ (for the ``haddock`` subcommand).++.. cfg-field:: haddock-keep-temp-files: boolean+ :synopsis: Keep temporary Haddock files.++ Keep temporary files.++ The command line variant of this flag is ``--keep-temp-files`` (for+ the ``haddock`` subcommand).++Advanced global configuration options+-------------------------------------++.. cfg-field:: http-transport: curl, wget, powershell, or plain-http+ --http-transport=transport+ :synopsis: Transport to use with http(s) requests.++ :default: ``curl``++ Set a transport to be used when making http(s) requests.++ The command line variant of this field is ``--http-transport=curl``.++.. cfg-field:: ignore-expiry: boolean+ --ignore-expiry+ :synopsis: Ignore Hackage expiration dates.++ :default: False++ If ``True``, we will ignore expiry dates on metadata from Hackage.++ In general, you should not set this to ``True`` as it will leave you+ vulnerable to stale cache attacks. However, it may be temporarily+ useful if the main Hackage server is down, and we need to rely on+ mirrors which have not been updated for longer than the expiry+ period on the timestamp.++ The command line variant of this field is ``--ignore-expiry``.++.. cfg-field:: remote-repo-cache: directory+ --remote-repo-cache=DIR+ :synopsis: Location of packages cache.++ :default: ``~/.cabal/packages``++ [STRIKEOUT:The location where packages downloaded from remote+ repositories will be cached.] Not implemented yet.++ The command line variant of this flag is+ ``--remote-repo-cache=DIR``.++.. cfg-field:: logs-dir: directory+ --logs-dir=DIR+ :synopsis: Directory to store build logs.++ :default: ``~/.cabal/logs``++ [STRIKEOUT:The location where build logs for packages are stored.]+ Not implemented yet.++ The command line variant of this flag is ``--logs-dir=DIR``.++.. cfg-field:: build-summary: template filepath+ --build-summary=TEMPLATE+ :synopsis: Build summaries location.++ :default: ``~/.cabal/logs/build.log``++ [STRIKEOUT:The file to save build summaries. Valid variables which+ can be used in the path are ``$pkgid``, ``$compiler``, ``$os`` and+ ``$arch``.] Not implemented yet.++ The command line variant of this flag is+ ``--build-summary=TEMPLATE``.++.. cfg-field:: local-repo: directory+ --local-repo=DIR+ :deprecated:++ [STRIKEOUT:The location of a local repository.] Deprecated. See+ "Legacy repositories."++ The command line variant of this flag is ``--local-repo=DIR``.++.. cfg-field:: world-file: path+ --world-file=FILE+ :deprecated:++ [STRIKEOUT:The location of the world file.] Deprecated.++ The command line variant of this flag is ``--world-file=FILE``.++Undocumented fields: ``root-cmd``, ``symlink-bindir``, ``build-log``,+``remote-build-reporting``, ``report-planned-failure``, ``one-shot``,+``offline``.++Advanced solver options+^^^^^^^^^^^^^^^^^^^^^^^++Most users generally won't need these.++.. cfg-field:: solver: modular+ --solver=modular+ :synopsis: Which solver to use.++ This field is reserved to allow the specification of alternative+ dependency solvers. At the moment, the only accepted option is+ ``modular``.++ The command line variant of this field is ``--solver=modular``.++.. cfg-field:: max-backjumps: nat+ --max-backjumps=N+ :synopsis: Maximum number of solver backjumps.++ :default: 2000++ Maximum number of backjumps (backtracking multiple steps) allowed+ while solving. Set -1 to allow unlimited backtracking, and 0 to+ disable backtracking completely.++ The command line variant of this field is ``--max-backjumps=2000``.++.. cfg-field:: reorder-goals: boolean+ --reorder-goals+ --no-reorder-goals+ :synopsis: Allow solver to reorder goals.++ :default: False++ When enabled, the solver will reorder goals according to certain+ heuristics. Slows things down on average, but may make backtracking+ faster for some packages. It's unlikely to help for small projects,+ but for big install plans it may help you find a plan when otherwise+ this is not possible. See :issue:`1780` for more commentary.++ The command line variant of this field is ``--(no-)reorder-goals``.++.. cfg-field:: count-conflicts: boolean+ --count-conflicts+ --no-count-conflicts+ :synopsis: Solver prefers versions with less conflicts.++ :default: True++ Try to speed up solving by preferring goals that are involved in a+ lot of conflicts.++ The command line variant of this field is+ ``--(no-)count-conflicts``.++.. cfg-field:: strong-flags: boolean+ --strong-flags+ --no-strong-flags+ :synopsis: Do not defer flag choices when solving.++ :default: False++ Do not defer flag choices. (TODO: Better documentation.)++ The command line variant of this field is ``--(no-)strong-flags``.++.. cfg-field:: allow-boot-library-installs: boolean+ --allow-boot-library-installs+ --no-allow-boot-library-installs+ :synopsis: Allow cabal to install or upgrade any package.++ :default: False++ By default, the dependency solver doesn't allow ``base``,+ ``ghc-prim``, ``integer-simple``, ``integer-gmp``, and+ ``template-haskell`` to be installed or upgraded. This flag+ removes the restriction.++ The command line variant of this field is+ ``--(no-)allow-boot-library-installs``.++.. cfg-field:: cabal-lib-version: version+ --cabal-lib-version=version+ :synopsis: Version of Cabal library used to build package.++ This field selects the version of the Cabal library which should be+ used to build packages. This option is intended primarily for+ internal development use (e.g., forcing a package to build with a+ newer version of Cabal, to test a new version of Cabal.) (TODO:+ Specify its semantics more clearly.)++ The command line variant of this field is+ ``--cabal-lib-version=1.24.0.1``.++.. include:: references.inc
+ doc/references.inc view
@@ -0,0 +1,22 @@+.. -*- rst -*-+ This file contains commonly used link-references+ See also "extlinks" in conf.py++.. _`Package Versioning Policy`:+.. _PVP: http://pvp.haskell.org/++.. _Hackage: http://hackage.haskell.org/++.. _Haskell: http://www.haskell.org/++.. _Haddock: http://www.haskell.org/haddock/++.. _Alex: http://www.haskell.org/alex/++.. _Happy: http://www.haskell.org/happy/++.. _Hoogle: http://www.haskell.org/hoogle/++.. _HsColour: http://www.cs.york.ac.uk/fp/darcs/hscolour/++.. _cpphs: http://projects.haskell.org/cpphs/
+ tests/DiffInstances.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# OPTIONS_GHC -freduction-depth=0 -fno-warn-orphans #-}+module DiffInstances where++import Generics.SOP.TH+import StructDiff++-------------------------------------------------------------------------------++import Distribution.Compiler (CompilerFlavor)+import Distribution.License (License)+import Distribution.ModuleName (ModuleName)+import Distribution.Package+ (Dependency, PackageIdentifier, PackageName)+import Distribution.Types.ForeignLib+import Distribution.Types.ForeignLibOption+import Distribution.Types.ForeignLibType+import Distribution.PackageDescription+ (Benchmark, BenchmarkInterface, BenchmarkType, BuildInfo,+ BuildType, CondTree, Condition, Executable, Flag, FlagName,+ GenericPackageDescription, Library, ModuleReexport,+ ModuleRenaming, PackageDescription, RepoKind, RepoType,+ SetupBuildInfo, SourceRepo, TestSuite, TestSuiteInterface,+ TestType)+import Distribution.Types.IncludeRenaming (IncludeRenaming)+import Distribution.Version (Version, VersionRange)+import Language.Haskell.Extension+ (Extension, KnownExtension, Language)++-------------------------------------------------------------------------------+-- instances+-------------------------------------------------------------------------------++deriveGeneric ''Benchmark+deriveGeneric ''BenchmarkInterface+deriveGeneric ''BenchmarkType+deriveGeneric ''BuildInfo+deriveGeneric ''BuildType+deriveGeneric ''CompilerFlavor+deriveGeneric ''CondTree+deriveGeneric ''Dependency+deriveGeneric ''Executable+deriveGeneric ''Extension+deriveGeneric ''Flag+deriveGeneric ''ForeignLib+deriveGeneric ''ForeignLibOption+deriveGeneric ''ForeignLibType+deriveGeneric ''GenericPackageDescription+deriveGeneric ''KnownExtension+deriveGeneric ''Language+deriveGeneric ''Library+deriveGeneric ''License+deriveGeneric ''ModuleReexport+deriveGeneric ''ModuleRenaming+deriveGeneric ''PackageDescription+deriveGeneric ''PackageIdentifier+deriveGeneric ''PackageName+deriveGeneric ''RepoKind+deriveGeneric ''RepoType+deriveGeneric ''SetupBuildInfo+deriveGeneric ''SourceRepo+deriveGeneric ''TestSuite+deriveGeneric ''TestSuiteInterface+deriveGeneric ''TestType+deriveGeneric ''VersionRange+deriveGeneric ''IncludeRenaming++instance (Eq a, Show a) => Diff (Condition a) where diff = eqDiff+instance (Show a, Diff b, Diff c, Show b, Show c, Eq a, Eq c, Eq b) => Diff (CondTree a b c)++instance Diff Benchmark+instance Diff BenchmarkInterface+instance Diff BenchmarkType+instance Diff BuildInfo+instance Diff BuildType+instance Diff CompilerFlavor+instance Diff Dependency+instance Diff Executable+instance Diff Extension+instance Diff Flag+instance Diff FlagName where diff = eqDiff+instance Diff ForeignLib+instance Diff ForeignLibType+instance Diff ForeignLibOption+instance Diff GenericPackageDescription+instance Diff KnownExtension+instance Diff Language+instance Diff Library+instance Diff License+instance Diff ModuleName where diff = eqDiff+instance Diff ModuleReexport+instance Diff ModuleRenaming+instance Diff PackageDescription+instance Diff PackageIdentifier+instance Diff PackageName where diff = eqDiff+instance Diff RepoKind+instance Diff RepoType+instance Diff SetupBuildInfo+instance Diff SourceRepo+instance Diff TestSuite+instance Diff TestSuiteInterface+instance Diff TestType+instance Diff Version where diff = eqDiff+instance Diff VersionRange+instance Diff IncludeRenaming
− tests/PackageTests.hs
@@ -1,283 +0,0 @@--- The intention is that this will be the new unit test framework.--- Please add any working tests here. This file should do nothing--- but import tests from other modules.------ Stephen Blackheath, 2009--module Main where--import PackageTests.Options-import PackageTests.PackageTester-import PackageTests.Tests--import Distribution.Simple.Configure- ( ConfigStateFileError(..), findDistPrefOrDefault, getConfigStateFile- , interpretPackageDbFlags )-import Distribution.Simple.Compiler (PackageDB(..), PackageDBStack)-import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(..))-import Distribution.Simple.Program.Types (Program(..), programPath, programVersion)-import Distribution.Simple.Program.Builtin- ( ghcProgram, ghcPkgProgram, haddockProgram )-import Distribution.Simple.Program.Db (requireProgram)-import Distribution.Simple.Setup (Flag(..), readPackageDbList, showPackageDbList)-import Distribution.Simple.Utils (cabalVersion)-import Distribution.Text (display, simpleParse)-import Distribution.Verbosity (normal, flagToVerbosity)-import Distribution.ReadE (readEOrFail)--import Control.Exception-import Data.Proxy ( Proxy(..) )-import Distribution.Compat.Environment ( lookupEnv )-import System.Directory-import Test.Tasty-import Test.Tasty.Options-import Test.Tasty.Ingredients-import Data.Maybe--#if MIN_VERSION_base(4,6,0)-import System.Environment ( getExecutablePath )-#endif--main :: IO ()-main = do- -- In abstract, the Cabal test suite makes calls to the "Setup"- -- executable and tests the output of Cabal. However, we have to- -- responsible for building this executable in the first place,- -- since (1) Cabal doesn't support a test-suite depending on an- -- executable, so we can't put a "Setup" executable in the Cabal- -- file and then depend on it, (2) we don't want to call the Cabal- -- functions *directly* because we need to capture and save the- -- stdout and stderr, and (3) even if we could do all that, we will- -- want to test some Custom setup scripts, which will be specific to- -- the test at hand and need to be compiled against Cabal.- --- -- To be able to build the executable, there is some information- -- we need:- --- -- 1. We need to know what ghc to use,- --- -- 2. We need to know what package databases (plural!) contain- -- all of the necessary dependencies to make our Cabal package- -- well-formed.- --- -- We could have the user pass these all in as arguments (TODO: this- -- should be an option), but there's a more convenient way to get- -- this information: the *build configuration* that was used to- -- build the Cabal library (and this test suite) in the first place.- -- To do this, we need to find the 'dist' directory that was set as- -- the build directory for Cabal.-- dist_dir <- guessDistDir- -- Might be bottom, if we can't figure it out. If you override- -- all the relevant parameters you might still succeed.- lbi <- getPersistBuildConfig_ (dist_dir </> "setup-config")-- -- You need to run the test suite in the right directory, sorry.- test_dir <- getCurrentDirectory-- -- Pull out the information we need from the LBI- -- TODO: The paths to GHC are configurable by command line, but you- -- have to be careful: some tests might depend on the Cabal library,- -- in which case you REALLY need to have built and installed Cabal- -- for the version that the test suite is being built against. The- -- easiest thing to do is make sure you built Cabal the same way as- -- you will run the tests.- let getExePathFromEnvOrLBI env_name prog = do- r <- lookupEnv env_name- case r of- Nothing -> do- (conf, _) <- requireProgram normal prog (withPrograms lbi)- return (programPath conf)- Just x -> return x- -- It is too much damn work to actually properly configure it- -- (Cabal will go off and probe GHC and we really aren't keen- -- on doing this every time we run the test suite.)- ghc_path <- getExePathFromEnvOrLBI "CABAL_PACKAGETESTS_GHC" ghcProgram- ghc_pkg_path <- getExePathFromEnvOrLBI "CABAL_PACKAGETESTS_GHC_PKG"- ghcPkgProgram- haddock_path <- getExePathFromEnvOrLBI "CABAL_PACKAGETESTS_HADDOCK"- haddockProgram-- with_ghc_path <- fromMaybe ghc_path- `fmap` lookupEnv "CABAL_PACKAGETESTS_WITH_GHC"-- ghc_version_env <- lookupEnv "CABAL_PACKAGETESTS_GHC_VERSION"- ghc_version <- case ghc_version_env of- Nothing -> do- (ghcConf, _) <- requireProgram normal ghcProgram (withPrograms lbi)- return (fromJust (programVersion ghcConf))- Just str ->- return (fromJust (simpleParse str))-- with_ghc_version <- do- version <- programFindVersion ghcProgram normal with_ghc_path- case version of- Nothing -> error "Cannot determine version of GHC used for --with-ghc"- Just v -> return v-- -- Package DBs are not guaranteed to be absolute, so make them so in- -- case a subprocess using the package DB needs a different CWD.- db_stack_env <- lookupEnv "CABAL_PACKAGETESTS_DB_STACK"- let packageDBStack0 = case db_stack_env of- Nothing -> withPackageDB lbi- Just str -> interpretPackageDbFlags True -- user install? why not.- (concatMap readPackageDbList- (splitSearchPath str))- packageDBStack1 <- mapM canonicalizePackageDB packageDBStack0-- -- The packageDBStack is worth some commentary. The database- -- stack we extract from the LBI will contain enough package- -- databases to make the Cabal package well-formed. However,- -- it does not *contain* the inplace installed Cabal package.- -- So we need to add that to the stack.- let packageDBStack2- = packageDBStack1 ++- [SpecificPackageDB- (dist_dir </> "package.conf.inplace")]-- -- THIS ISN'T EVEN MY FINAL FORM. The package database stack- -- controls where we install a package; specifically, the package is- -- installed to the top-most package on the stack (this makes the- -- most sense, since it could depend on any of the packages below- -- it.) If the test wants to register anything (as opposed to just- -- working in place), then we need to have another temporary- -- database we can install into (and not accidentally clobber any of- -- the other stacks.) This is done on a per-test basis.- --- -- ONE MORE THING. On the subject of installing the package (with- -- copy/register) it is EXTREMELY important that we also overload- -- the install directories, so we don't clobber anything in the- -- default install paths. VERY IMPORTANT.-- -- TODO: make this controllable by a flag- verbosity <- maybe normal (readEOrFail flagToVerbosity)- `fmap` lookupEnv "VERBOSE"- -- The inplaceDB is where the Cabal library was registered- -- in place (and is usable.) inplaceConfig is a convenient- -- set of flags to make sure we make it visible.- let suite = SuiteConfig- { cabalDistPref = dist_dir- , ghcPath = ghc_path- , ghcVersion = ghc_version- , ghcPkgPath = ghc_pkg_path- , withGhcPath = with_ghc_path- , withGhcVersion = with_ghc_version- , packageDBStack = packageDBStack2- , suiteVerbosity = verbosity- , absoluteCWD = test_dir- }-- putStrLn $ "Cabal test suite - testing cabal version "- ++ display cabalVersion- putStrLn $ "Cabal build directory: " ++ dist_dir- putStrLn $ "Test directory: " ++ test_dir- -- TODO: it might be useful to factor this out so that ./Setup- -- configure dumps this file, so we can read it without in a version- -- stable way.- putStrLn $ "Environment:"- putStrLn $ "CABAL_PACKAGETESTS_GHC=" ++ show ghc_path ++ " \\"- putStrLn $ "CABAL_PACKAGETESTS_GHC_VERSION="- ++ show (display ghc_version) ++ " \\"- putStrLn $ "CABAL_PACKAGETESTS_GHC_PKG=" ++ show ghc_pkg_path ++ " \\"- putStrLn $ "CABAL_PACKAGETESTS_WITH_GHC=" ++ show with_ghc_path ++ " \\"- putStrLn $ "CABAL_PACKAGETESTS_HADDOCK=" ++ show haddock_path ++ " \\"- -- For brevity, do pre-canonicalization- putStrLn $ "CABAL_PACKAGETESTS_DB_STACK=" ++- show (intercalate [searchPathSeparator]- (showPackageDbList (uninterpretPackageDBFlags- packageDBStack0)))-- -- Create a shared Setup executable to speed up Simple tests- putStrLn $ "Building shared ./Setup executable"- rawCompileSetup verbosity suite [] "tests"-- defaultMainWithIngredients options $- runTestTree "Package Tests" (tests suite)---- Reverse of 'interpretPackageDbFlags'.--- prop_idem stk b--- = interpretPackageDbFlags b (uninterpretPackageDBFlags stk) == stk-uninterpretPackageDBFlags :: PackageDBStack -> [Maybe PackageDB]-uninterpretPackageDBFlags stk = Nothing : map (\x -> Just x) stk---- | Guess what the 'dist' directory Cabal was installed in is. There's--- no 100% reliable way to find this, but there are a few good shots:------ 1. Test programs are ~always built in-place, in a directory--- that looks like dist/build/package-tests/package-tests;--- thus the directory can be determined by looking at $0.--- This method is robust against sandboxes, Nix local--- builds, and Stack, but doesn't work if you're running--- in an interpreter.------ 2. We can use the normal input methods (as per Cabal),--- checking for the CABAL_BUILDDIR environment variable as--- well as the default location in the current working directory.------ NB: If you update this, also update its copy in cabal-install's--- IntegrationTests-guessDistDir :: IO FilePath-guessDistDir = do-#if MIN_VERSION_base(4,6,0)- -- Method (1)- -- TODO: this needs to be BC'ified, probably.- exe_path <- canonicalizePath =<< getExecutablePath- -- exe_path is something like /path/to/dist/build/package-tests/package-tests- let dist0 = dropFileName exe_path </> ".." </> ".."- b <- doesFileExist (dist0 </> "setup-config")-#else- let dist0 = error "no path"- b = False-#endif- -- Method (2)- if b then canonicalizePath dist0- else findDistPrefOrDefault NoFlag >>= canonicalizePath--canonicalizePackageDB :: PackageDB -> IO PackageDB-canonicalizePackageDB (SpecificPackageDB path)- = SpecificPackageDB `fmap` canonicalizePath path-canonicalizePackageDB x = return x---- | Like Distribution.Simple.Configure.getPersistBuildConfig but--- doesn't check that the Cabal version matches, which it doesn't when--- we run Cabal's own test suite, due to bootstrapping issues.--- Here's the situation:------ 1. There's some system Cabal-1.0 installed. We use this--- to build Setup.hs--- 2. We run ./Setup configure, which uses Cabal-1.0 to--- write out the LocalBuildInfo--- 3. We build the Cabal library, whose version is Cabal-2.0--- 4. We build the package-tests executable, which LINKS AGAINST--- Cabal-2.0--- 5. We try to read the LocalBuildInfo that ./Setup configure--- wrote out, but it's Cabal-1.0 format!------ It's a bit skeevy that we're trying to read Cabal-1.0 LocalBuildInfo--- using Cabal-2.0's parser, but this seems to work OK in practice--- because LocalBuildInfo is a slow-moving data structure. If--- we ever make a major change, this won't work, and we'll have to--- take a different approach (either setting "build-type: Custom"--- so we bootstrap with the most recent Cabal, or by writing the--- information we need in another format.)-getPersistBuildConfig_ :: FilePath -> IO LocalBuildInfo-getPersistBuildConfig_ filename = do- eLBI <- try $ getConfigStateFile filename- case eLBI of- Left (ConfigStateFileBadVersion _ _ (Right lbi)) -> return lbi- -- These errors are lazy! We might not need these parameters.- Left (ConfigStateFileBadVersion _ _ (Left err))- -> return . error $- "We couldn't understand the build configuration. Try " ++- "editing Cabal.cabal to have 'build-type: Custom' " ++- "and then rebuilding, or manually specifying CABAL_PACKAGETESTS_* " ++- "environment variables (see README.md for more details)." ++- "\n\nOriginal error: " ++- show err- Left err -> return (throw err)- Right lbi -> return lbi--options :: [Ingredient]-options = includingOptions- [Option (Proxy :: Proxy OptionEnableAllTests)] :- defaultIngredients
− tests/PackageTests/AllowNewer/AllowNewer.cabal
@@ -1,25 +0,0 @@-name: AllowNewer-version: 0.1.0.0-license: BSD3-author: Foo Bar-maintainer: cabal-dev@haskell.org-build-type: Simple-cabal-version: >=1.10--library- exposed-modules: Foo- hs-source-dirs: src- build-depends: base < 1- default-language: Haskell2010--test-suite foo-test- type: exitcode-stdio-1.0- main-is: Test.hs- hs-source-dirs: tests- build-depends: base < 1--benchmark foo-bench- type: exitcode-stdio-1.0- main-is: Bench.hs- hs-source-dirs: benchmarks- build-depends: base < 1
− tests/PackageTests/AllowNewer/benchmarks/Bench.hs
@@ -1,4 +0,0 @@-module Main where--main :: IO ()-main = return ()
− tests/PackageTests/AllowNewer/src/Foo.hs
@@ -1,4 +0,0 @@-module Main where--main :: IO ()-main = return ()
− tests/PackageTests/AllowNewer/tests/Test.hs
@@ -1,4 +0,0 @@-!module Main where--main :: IO ()-main = return ()
− tests/PackageTests/BenchmarkExeV10/Foo.hs
@@ -1,4 +0,0 @@-module Foo where--fooTest :: [String] -> Bool-fooTest _ = True
− tests/PackageTests/BenchmarkExeV10/benchmarks/bench-Foo.hs
@@ -1,8 +0,0 @@-module Main where--import Foo-import System.Exit--main :: IO ()-main | fooTest [] = exitSuccess- | otherwise = exitFailure
− tests/PackageTests/BenchmarkExeV10/my.cabal
@@ -1,15 +0,0 @@-name: my-version: 0.1-license: BSD3-cabal-version: >= 1.9.2-build-type: Simple--library- exposed-modules: Foo- build-depends: base--benchmark bench-Foo- type: exitcode-stdio-1.0- hs-source-dirs: benchmarks- main-is: bench-Foo.hs- build-depends: base, my
− tests/PackageTests/BenchmarkOptions/BenchmarkOptions.cabal
@@ -1,20 +0,0 @@-name: BenchmarkOptions-version: 0.1-license: BSD3-author: Johan Tibell-stability: stable-category: PackageTests-build-type: Simple-cabal-version: >= 1.9.2--description:- Check that Cabal passes the correct test options to test suites.--executable dummy- main-is: test-BenchmarkOptions.hs- build-depends: base--benchmark test-BenchmarkOptions- main-is: test-BenchmarkOptions.hs- type: exitcode-stdio-1.0- build-depends: base
− tests/PackageTests/BenchmarkOptions/test-BenchmarkOptions.hs
@@ -1,11 +0,0 @@-module Main where--import System.Environment ( getArgs )-import System.Exit ( exitFailure, exitSuccess )--main :: IO ()-main = do- args <- getArgs- if args == ["1", "2", "3"]- then exitSuccess- else putStrLn ("Got: " ++ show args) >> exitFailure
− tests/PackageTests/BenchmarkStanza/Check.hs
@@ -1,30 +0,0 @@-module PackageTests.BenchmarkStanza.Check where--import PackageTests.PackageTester--import Distribution.Version-import Distribution.Simple.LocalBuildInfo-import Distribution.Package-import Distribution.PackageDescription--suite :: TestM ()-suite = do- assertOutputDoesNotContain "unknown section type"- =<< cabal' "configure" []- dist_dir <- distDir- lbi <- liftIO $ getPersistBuildConfig dist_dir- let anticipatedBenchmark = emptyBenchmark- { benchmarkName = "dummy"- , benchmarkInterface = BenchmarkExeV10 (Version [1,0] [])- "dummy.hs"- , benchmarkBuildInfo = emptyBuildInfo- { targetBuildDepends =- [ Dependency (PackageName "base") anyVersion ]- , hsSourceDirs = ["."]- }- , benchmarkEnabled = False- }- gotBenchmark = head $ benchmarks (localPkgDescr lbi)- assertEqual "parsed benchmark stanza does not match anticipated"- anticipatedBenchmark gotBenchmark- return ()
− tests/PackageTests/BenchmarkStanza/my.cabal
@@ -1,19 +0,0 @@-name: BenchmarkStanza-version: 0.1-license: BSD3-author: Johan Tibell-stability: stable-category: PackageTests-build-type: Simple--description:- Check that Cabal recognizes the benchmark stanza defined below.--Library- exposed-modules: MyLibrary- build-depends: base--benchmark dummy- main-is: dummy.hs- type: exitcode-stdio-1.0- build-depends: base
− tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/GlobalBuildDepsNotAdditive1.cabal
@@ -1,20 +0,0 @@-name: GlobalBuildDepsNotAdditive1-version: 0.1-license: BSD3-cabal-version: >= 1.6-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- If you specify 'base' in the global build dependencies, then define- a library without base, it fails to find 'base' for the library.-------------------------------------------build-depends: base--Library- exposed-modules: MyLibrary- build-depends: bytestring, pretty
− tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/GlobalBuildDepsNotAdditive2.cabal
@@ -1,20 +0,0 @@-name: GlobalBuildDepsNotAdditive1-version: 0.1-license: BSD3-cabal-version: >= 1.6-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- If you specify 'base' in the global build dependencies, then define- an executable without base, it fails to find 'base' for the executable-------------------------------------------build-depends: base--Executable lemon- main-is: lemon.hs- build-depends: bytestring, pretty
− tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/lemon.hs
@@ -1,7 +0,0 @@-import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--main = do- putStrLn (render (text "foo"))- let text = "lemon"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/InternalLibrary0/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/InternalLibrary0/my.cabal
@@ -1,24 +0,0 @@-name: InternalLibrary0-version: 0.1-license: BSD3-cabal-version: >= 1.6-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- Check that with 'cabal-version:' containing versions less than 1.7, we do *not*- have the new behaviour to allow executables to refer to the library defined- in the same module.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty--Executable lemon- main-is: lemon.hs- hs-source-dirs: programs- build-depends: base, bytestring, pretty, InternalLibrary0
− tests/PackageTests/BuildDeps/InternalLibrary0/programs/lemon.hs
@@ -1,6 +0,0 @@-import Text.PrettyPrint-import MyLibrary--main = do- putStrLn (render (text "foo"))- myLibFunc
− tests/PackageTests/BuildDeps/InternalLibrary1/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/InternalLibrary1/my.cabal
@@ -1,23 +0,0 @@-name: InternalLibrary1-version: 0.1-license: BSD3-cabal-version: >= 1.7.1-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- Check for the new (in >= 1.7.1) ability to allow executables to refer to- the library defined in the same module.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty--Executable lemon- main-is: lemon.hs- hs-source-dirs: programs- build-depends: base, bytestring, pretty, InternalLibrary1
− tests/PackageTests/BuildDeps/InternalLibrary1/programs/lemon.hs
@@ -1,6 +0,0 @@-import Text.PrettyPrint-import MyLibrary--main = do- putStrLn (render (text "foo"))- myLibFunc
− tests/PackageTests/BuildDeps/InternalLibrary2/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc internal"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/InternalLibrary2/my.cabal
@@ -1,23 +0,0 @@-name: InternalLibrary2-version: 0.1-license: BSD3-cabal-version: >= 1.7.1-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- This test is to make sure that the internal library is preferred by ghc to- an installed one of the same name and version.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty--Executable lemon- main-is: lemon.hs- hs-source-dirs: programs- build-depends: base, bytestring, pretty, InternalLibrary2
− tests/PackageTests/BuildDeps/InternalLibrary2/programs/lemon.hs
@@ -1,6 +0,0 @@-import Text.PrettyPrint-import MyLibrary--main = do- putStrLn (render (text "foo"))- myLibFunc
− tests/PackageTests/BuildDeps/InternalLibrary2/to-install/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc installed"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/InternalLibrary2/to-install/my.cabal
@@ -1,18 +0,0 @@-name: InternalLibrary2-version: 0.1-license: BSD3-cabal-version: >= 1.6-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- This test is to make sure that the internal library is preferred by ghc to- an installed one of the same name and version.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty
− tests/PackageTests/BuildDeps/InternalLibrary3/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc internal"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/InternalLibrary3/my.cabal
@@ -1,23 +0,0 @@-name: InternalLibrary3-version: 0.1-license: BSD3-cabal-version: >= 1.7.1-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- This test is to make sure that the internal library is preferred by ghc to- an installed one of the same name, but a *newer* version.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty--Executable lemon- main-is: lemon.hs- hs-source-dirs: programs- build-depends: base, bytestring, pretty, InternalLibrary3
− tests/PackageTests/BuildDeps/InternalLibrary3/programs/lemon.hs
@@ -1,6 +0,0 @@-import Text.PrettyPrint-import MyLibrary--main = do- putStrLn (render (text "foo"))- myLibFunc
− tests/PackageTests/BuildDeps/InternalLibrary3/to-install/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc installed"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/InternalLibrary3/to-install/my.cabal
@@ -1,18 +0,0 @@-name: InternalLibrary3-version: 0.2-license: BSD3-cabal-version: >= 1.6-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- This test is to make sure that the internal library is preferred by ghc to- an installed one of the same name but a *newer* version.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty
− tests/PackageTests/BuildDeps/InternalLibrary4/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc internal"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/InternalLibrary4/my.cabal
@@ -1,23 +0,0 @@-name: InternalLibrary4-version: 0.1-license: BSD3-cabal-version: >= 1.7.1-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- This test is to make sure that we can explicitly say we want InternalLibrary4-0.2- and it will give us the *installed* version 0.2 instead of the internal 0.1.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty--Executable lemon- main-is: lemon.hs- hs-source-dirs: programs- build-depends: base, bytestring, pretty, InternalLibrary4 >= 0.2
− tests/PackageTests/BuildDeps/InternalLibrary4/programs/lemon.hs
@@ -1,6 +0,0 @@-import Text.PrettyPrint-import MyLibrary--main = do- putStrLn (render (text "foo"))- myLibFunc
− tests/PackageTests/BuildDeps/InternalLibrary4/to-install/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc installed"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/InternalLibrary4/to-install/my.cabal
@@ -1,18 +0,0 @@-name: InternalLibrary4-version: 0.2-license: BSD3-cabal-version: >= 1.6-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- This test is to make sure that the internal library is preferred by ghc to- an installed one of the same name but a *newer* version.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty
− tests/PackageTests/BuildDeps/SameDepsAllRound/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/SameDepsAllRound/SameDepsAllRound.cabal
@@ -1,31 +0,0 @@-name: SameDepsAllRound-version: 0.1-license: BSD3-cabal-version: >= 1.6-author: Stephen Blackheath-stability: stable-synopsis: Same dependencies all round-category: PackageTests-build-type: Simple--description:- Check for the "old build-dep behaviour" namely that we get the same- package dependencies on all build targets, even if different ones- were specified for different targets- .- Here all .hs files use the three packages mentioned, so this shows- that build-depends is not target-specific. This is the behaviour- we want when cabal-version contains versions less than 1.7.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring--Executable lemon- main-is: lemon.hs- build-depends: pretty--Executable pineapple- main-is: pineapple.hs
− tests/PackageTests/BuildDeps/SameDepsAllRound/lemon.hs
@@ -1,7 +0,0 @@-import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--main = do- putStrLn (render (text "foo"))- let text = "lemon"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/SameDepsAllRound/pineapple.hs
@@ -1,7 +0,0 @@-import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--main = do- putStrLn (render (text "foo"))- let text = "pineapple"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/TargetSpecificDeps1/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/TargetSpecificDeps1/lemon.hs
@@ -1,7 +0,0 @@-import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--main = do- putStrLn (render (text "foo"))- let text = "lemon"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/TargetSpecificDeps1/my.cabal
@@ -1,22 +0,0 @@-name: TargetSpecificDeps1-version: 0.1-license: BSD3-cabal-version: >= 1.7.1-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- Check for the new build-dep behaviour, where build-depends are- handled specifically for each target-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring--Executable lemon- main-is: lemon.hs- build-depends: base, bytestring, pretty
− tests/PackageTests/BuildDeps/TargetSpecificDeps2/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/TargetSpecificDeps2/lemon.hs
@@ -1,5 +0,0 @@-import qualified Data.ByteString.Char8 as C--main = do- let text = "lemon"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/TargetSpecificDeps2/my.cabal
@@ -1,24 +0,0 @@-name: TargetSpecificDeps1-version: 0.1-license: BSD3-cabal-version: >= 1.7.1-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- Check for the new build-dep behaviour, where build-depends are- handled specifically for each target- This one is a control against TargetSpecificDeps1 - it is correct and should- succeed.-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty--Executable lemon- main-is: lemon.hs- build-depends: base, bytestring
− tests/PackageTests/BuildDeps/TargetSpecificDeps3/MyLibrary.hs
@@ -1,10 +0,0 @@-module MyLibrary where--import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--myLibFunc :: IO ()-myLibFunc = do- putStrLn (render (text "foo"))- let text = "myLibFunc"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/TargetSpecificDeps3/lemon.hs
@@ -1,7 +0,0 @@-import qualified Data.ByteString.Char8 as C-import Text.PrettyPrint--main = do- putStrLn (render (text "foo"))- let text = "lemon"- C.putStrLn $ C.pack text
− tests/PackageTests/BuildDeps/TargetSpecificDeps3/my.cabal
@@ -1,22 +0,0 @@-name: test-version: 0.1-license: BSD3-cabal-version: >= 1.7.1-author: Stephen Blackheath-stability: stable-category: PackageTests-build-type: Simple--description:- Check for the new build-dep behaviour, where build-depends are- handled specifically for each target-------------------------------------------Library- exposed-modules: MyLibrary- build-depends: base, bytestring, pretty--Executable lemon- main-is: lemon.hs- build-depends: base, bytestring
− tests/PackageTests/BuildTargetErrors/BuildTargetErrors.cabal
@@ -1,10 +0,0 @@-name: BuildTargetErrors-version: 1.0-build-type: Simple-cabal-version: >= 1.9--library--executable not-buildable-exe- main-is: Main.hs- buildable: False
− tests/PackageTests/BuildTargetErrors/Main.hs
@@ -1,1 +0,0 @@-main = return ()
− tests/PackageTests/BuildTestSuiteDetailedV09/Dummy2.hs
@@ -1,6 +0,0 @@-module Dummy2 where--import Distribution.TestSuite (Test)--tests :: IO [Test]-tests = return []
− tests/PackageTests/BuildableField/BuildableField.cabal
@@ -1,16 +0,0 @@-name: BuildableField-version: 0.1.0.0-cabal-version: >=1.2-build-type: Simple-license: BSD3--flag build-exe- default: True--library--executable my-executable- build-depends: base, unavailable-package- main-is: Main.hs- if !flag(build-exe)- buildable: False
− tests/PackageTests/BuildableField/Main.hs
@@ -1,4 +0,0 @@-import UnavailableModule--main :: IO ()-main = putStrLn "Hello"
− tests/PackageTests/CMain/Bar.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}-module Bar where--bar :: IO ()-bar = return ()--foreign export ccall bar :: IO ()
− tests/PackageTests/CMain/foo.c
@@ -1,13 +0,0 @@-#include <stdio.h>-#include "HsFFI.h"--#ifdef __GLASGOW_HASKELL__-#include "Bar_stub.h"-#endif--int main(int argc, char **argv) {- hs_init(&argc, &argv);- bar();- printf("Hello world!");- return 0;-}
− tests/PackageTests/CMain/my.cabal
@@ -1,10 +0,0 @@-name: my-version: 0.1-license: BSD3-cabal-version: >= 1.9.2-build-type: Simple--executable foo- main-is: foo.c- other-modules: Bar- build-depends: base
− tests/PackageTests/DeterministicAr/Check.hs
@@ -1,85 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE OverloadedStrings #-}--module PackageTests.DeterministicAr.Check where--import Control.Monad-import qualified Data.ByteString as BS-import qualified Data.ByteString.Char8 as BS8-import Data.Char (isSpace)-import PackageTests.PackageTester-import System.IO--import Distribution.Compiler (CompilerFlavor(..), CompilerId(..))-import Distribution.Package (getHSLibraryName)-import Distribution.Version (Version(..))-import Distribution.Simple.Compiler (compilerId)-import Distribution.Simple.LocalBuildInfo (LocalBuildInfo, compiler, localUnitId)--suite :: TestM ()-suite = do- cabal_build []- dist_dir <- distDir- lbi <- liftIO $ getPersistBuildConfig dist_dir- liftIO $ checkMetadata lbi (dist_dir </> "build")---- Almost a copypasta of Distribution.Simple.Program.Ar.wipeMetadata-checkMetadata :: LocalBuildInfo -> FilePath -> IO ()-checkMetadata lbi dir = withBinaryFile path ReadMode $ \ h -> do- hFileSize h >>= checkArchive h- where- path = dir </> "lib" ++ getHSLibraryName (localUnitId lbi) ++ ".a"-- _ghc_7_10 = case compilerId (compiler lbi) of- CompilerId GHC version | version >= Version [7, 10] [] -> True- _ -> False-- checkError msg = assertFailure (- "PackageTests.DeterministicAr.checkMetadata: " ++ msg ++- " in " ++ path) >> undefined- archLF = "!<arch>\x0a" -- global magic, 8 bytes- x60LF = "\x60\x0a" -- header magic, 2 bytes- metadata = BS.concat- [ "0 " -- mtime, 12 bytes- , "0 " -- UID, 6 bytes- , "0 " -- GID, 6 bytes- , "0644 " -- mode, 8 bytes- ]- headerSize = 60-- -- http://en.wikipedia.org/wiki/Ar_(Unix)#File_format_details- checkArchive :: Handle -> Integer -> IO ()- checkArchive h archiveSize = do- global <- BS.hGet h (BS.length archLF)- unless (global == archLF) $ checkError "Bad global header"- checkHeader (toInteger $ BS.length archLF)-- where- checkHeader :: Integer -> IO ()- checkHeader offset = case compare offset archiveSize of- EQ -> return ()- GT -> checkError (atOffset "Archive truncated")- LT -> do- header <- BS.hGet h headerSize- unless (BS.length header == headerSize) $- checkError (atOffset "Short header")- let magic = BS.drop 58 header- unless (magic == x60LF) . checkError . atOffset $- "Bad magic " ++ show magic ++ " in header"-- unless (metadata == BS.take 32 (BS.drop 16 header))- . checkError . atOffset $ "Metadata has changed"-- let size = BS.take 10 $ BS.drop 48 header- objSize <- case reads (BS8.unpack size) of- [(n, s)] | all isSpace s -> return n- _ -> checkError (atOffset "Bad file size in header")-- let nextHeader = offset + toInteger headerSize +- -- Odd objects are padded with an extra '\x0a'- if odd objSize then objSize + 1 else objSize- hSeek h AbsoluteSeek nextHeader- checkHeader nextHeader-- where- atOffset msg = msg ++ " at offset " ++ show offset
− tests/PackageTests/DeterministicAr/Lib.hs
@@ -1,5 +0,0 @@-module Lib where--dummy :: IO ()-dummy = return ()-
− tests/PackageTests/DeterministicAr/my.cabal
@@ -1,17 +0,0 @@-name: DeterministicAr-version: 0-license: BSD3-cabal-version: >= 1.9.1-author: Liyang HU-stability: stable-category: PackageTests-build-type: Simple--description:- Ensure our GNU ar -D emulation (#1537) works as advertised: check that- all metadata in the resulting .a archive match the default.--Library- exposed-modules: Lib- build-depends: base-
− tests/PackageTests/DuplicateModuleName/DuplicateModuleName.cabal
@@ -1,25 +0,0 @@-name: DuplicateModuleName-version: 0.1.0.0-license: BSD3-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.10--library- exposed-modules: Foo- hs-source-dirs: src- build-depends: base, Cabal- default-language: Haskell2010--test-suite foo- type: detailed-0.9- test-module: Foo- hs-source-dirs: tests- build-depends: base, Cabal, DuplicateModuleName--test-suite foo2- type: detailed-0.9- test-module: Foo- hs-source-dirs: tests2- build-depends: base, Cabal, DuplicateModuleName
− tests/PackageTests/DuplicateModuleName/src/Foo.hs
@@ -1,12 +0,0 @@-module Foo where--import Distribution.TestSuite--tests :: IO [Test]-tests = return [Test $ TestInstance- { run = return (Finished (Fail "A"))- , name = "test A"- , tags = []- , options = []- , setOption = \_ _-> Left "No Options"- }]
− tests/PackageTests/DuplicateModuleName/tests/Foo.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE PackageImports #-}-module Foo where--import Distribution.TestSuite-import qualified "DuplicateModuleName" Foo as T--tests :: IO [Test]-tests = do- r <- T.tests- return $ [Test $ TestInstance- { run = return (Finished (Fail "B"))- , name = "test B"- , tags = []- , options = []- , setOption = \_ _-> Left "No Options"- }] ++ r--this_is_test = True
− tests/PackageTests/DuplicateModuleName/tests2/Foo.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE PackageImports #-}-module Foo where--import Distribution.TestSuite-import qualified "DuplicateModuleName" Foo as T--tests :: IO [Test]-tests = do- r <- T.tests- return $ [Test $ TestInstance- { run = return (Finished (Fail "C"))- , name = "test C"- , tags = []- , options = []- , setOption = \_ _-> Left "No Options"- }] ++ r--this_is_test2 = True
− tests/PackageTests/EmptyLib/empty/empty.cabal
@@ -1,6 +0,0 @@-name: emptyLib-Cabal-version: >= 1.2-version: 1.0-build-type: Simple--Library
− tests/PackageTests/GhcPkgGuess/SameDirectory/SameDirectory.cabal
@@ -1,11 +0,0 @@-name: SameDirectory-version: 0.1.0.0-license: BSD3-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.10--library- build-depends: base- default-language: Haskell2010
− tests/PackageTests/GhcPkgGuess/SameDirectory/ghc
@@ -1,6 +0,0 @@-#!/bin/sh-if [ -z "$WITH_GHC" ]; then- echo "Need to set WITH_GHC"- exit 1-fi-exec "$WITH_GHC" "$@"
− tests/PackageTests/GhcPkgGuess/SameDirectory/ghc-pkg
@@ -1,3 +0,0 @@-#!/bin/sh-echo "GHC package manager version 9999999"-exit 0
− tests/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/SameDirectory.cabal
@@ -1,11 +0,0 @@-name: SameDirectory-version: 0.1.0.0-license: BSD3-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.10--library- build-depends: base- default-language: Haskell2010
− tests/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/ghc-7.10
@@ -1,6 +0,0 @@-#!/bin/sh-if [ -z "$WITH_GHC" ]; then- echo "Need to set WITH_GHC"- exit 1-fi-exec "$WITH_GHC" "$@"
− tests/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/ghc-pkg-ghc-7.10
@@ -1,3 +0,0 @@-#!/bin/sh-echo "GHC package manager version 9999999"-exit 0
− tests/PackageTests/GhcPkgGuess/SameDirectoryVersion/SameDirectory.cabal
@@ -1,11 +0,0 @@-name: SameDirectory-version: 0.1.0.0-license: BSD3-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.10--library- build-depends: base- default-language: Haskell2010
− tests/PackageTests/GhcPkgGuess/SameDirectoryVersion/ghc-7.10
@@ -1,6 +0,0 @@-#!/bin/sh-if [ -z "$WITH_GHC" ]; then- echo "Need to set WITH_GHC"- exit 1-fi-exec "$WITH_GHC" "$@"
− tests/PackageTests/GhcPkgGuess/SameDirectoryVersion/ghc-pkg-7.10
@@ -1,3 +0,0 @@-#!/bin/sh-echo "GHC package manager version 9999999"-exit 0
− tests/PackageTests/GhcPkgGuess/Symlink/SameDirectory.cabal
@@ -1,11 +0,0 @@-name: SameDirectory-version: 0.1.0.0-license: BSD3-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.10--library- build-depends: base- default-language: Haskell2010
− tests/PackageTests/GhcPkgGuess/Symlink/bin/ghc
@@ -1,6 +0,0 @@-#!/bin/sh-if [ -z "$WITH_GHC" ]; then- echo "Need to set WITH_GHC"- exit 1-fi-exec "$WITH_GHC" "$@"
− tests/PackageTests/GhcPkgGuess/Symlink/bin/ghc-pkg
@@ -1,3 +0,0 @@-#!/bin/sh-echo "GHC package manager version 9999999"-exit 0
− tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/SameDirectory.cabal
@@ -1,11 +0,0 @@-name: SameDirectory-version: 0.1.0.0-license: BSD3-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.10--library- build-depends: base- default-language: Haskell2010
− tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/bin/ghc-7.10
@@ -1,6 +0,0 @@-#!/bin/sh-if [ -z "$WITH_GHC" ]; then- echo "Need to set WITH_GHC"- exit 1-fi-exec "$WITH_GHC" "$@"
− tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/bin/ghc-pkg-7.10
@@ -1,3 +0,0 @@-#!/bin/sh-echo "GHC package manager version 9999999"-exit 0
− tests/PackageTests/GhcPkgGuess/SymlinkVersion/SameDirectory.cabal
@@ -1,11 +0,0 @@-name: SameDirectory-version: 0.1.0.0-license: BSD3-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.10--library- build-depends: base- default-language: Haskell2010
− tests/PackageTests/GhcPkgGuess/SymlinkVersion/bin/ghc-7.10
@@ -1,6 +0,0 @@-#!/bin/sh-if [ -z "$WITH_GHC" ]; then- echo "Need to set WITH_GHC"- exit 1-fi-exec "$WITH_GHC" "$@"
− tests/PackageTests/GhcPkgGuess/SymlinkVersion/bin/ghc-pkg-ghc-7.10
@@ -1,3 +0,0 @@-#!/bin/sh-echo "GHC package manager version 9999999"-exit 0
− tests/PackageTests/Haddock/CPP.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE CPP #-}--module CPP where--#define HIDING hiding-#define NEEDLES needles---- | For HIDING NEEDLES.-data Haystack = Haystack
− tests/PackageTests/Haddock/Literate.lhs
@@ -1,4 +0,0 @@-> module Literate where--> -- | For hiding needles.-> data Haystack = Haystack
− tests/PackageTests/Haddock/NoCPP.hs
@@ -1,8 +0,0 @@-module NoCPP (Haystack) where---- | For hiding needles.-data Haystack = Haystack---- | Causes a build failure if the CPP language extension is enabled.-stringGap = "Foo\-\Bar"
− tests/PackageTests/Haddock/Simple.hs
@@ -1,4 +0,0 @@-module Simple where---- | For hiding needles.-data Haystack = Haystack
− tests/PackageTests/Haddock/my.cabal
@@ -1,16 +0,0 @@-name: Haddock-version: 0.1-license: BSD3-author: Iain Nicol-stability: stable-category: PackageTests-build-type: Simple-Cabal-version: >= 1.2--description:- Check that Cabal successfully invokes Haddock.--Library- exposed-modules: CPP, Literate, NoCPP, Simple- other-extensions: CPP- build-depends: base
− tests/PackageTests/HaddockNewline/A.hs
@@ -1,1 +0,0 @@-module A where
− tests/PackageTests/HaddockNewline/HaddockNewline.cabal
@@ -1,20 +0,0 @@-name: HaddockNewline-version: 0.1.0.0-synopsis: This has a- newline yo.--- description: -license: BSD3-license-file: LICENSE-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-extra-source-files: ChangeLog.md-cabal-version: >=1.10--library- exposed-modules: A- -- other-modules: - -- other-extensions: - build-depends: base- -- hs-source-dirs: - default-language: Haskell2010
− tests/PackageTests/HaddockNewline/Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
− tests/PackageTests/Options.hs
@@ -1,19 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}--module PackageTests.Options- ( OptionEnableAllTests(..)- ) where--import Data.Typeable (Typeable)--import Test.Tasty.Options (IsOption(..), flagCLParser, safeRead)--newtype OptionEnableAllTests = OptionEnableAllTests Bool- deriving Typeable--instance IsOption OptionEnableAllTests where- defaultValue = OptionEnableAllTests False- parseValue = fmap OptionEnableAllTests . safeRead- optionName = return "enable-all-tests"- optionHelp = return "Enable all tests"- optionCLParser = flagCLParser Nothing (OptionEnableAllTests True)
− tests/PackageTests/OrderFlags/Foo.hs
@@ -1,8 +0,0 @@-module Foo where--x :: IO Int-x = return 5--f :: IO Int-f = do x- return 3
− tests/PackageTests/OrderFlags/my.cabal
@@ -1,20 +0,0 @@-name: OrderFlags-version: 0.1-license: BSD3-author: Oleksandr Manzyuk-stability: stable-category: PackageTests-build-type: Simple-cabal-version: >=1.9.2--description:- Check that Cabal correctly orders flags that are passed to GHC.--library- exposed-modules: Foo- build-depends: base-- ghc-options: -Wall -Werror-- if impl(ghc >= 6.12.1)- ghc-options: -fno-warn-unused-do-bind
− tests/PackageTests/PackageTester.hs
@@ -1,693 +0,0 @@-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE NondecreasingIndentation #-}-{-# LANGUAGE CPP #-}--module PackageTests.PackageTester- ( PackageSpec- , SuiteConfig(..)- , TestConfig(..)- , Result(..)- , TestM- , runTestM-- -- * Paths- , packageDir- , distDir- , relativeDistDir- , sharedDBPath- , getWithGhcPath-- -- * Running cabal commands- , cabal- , cabal'- , cabal_build- , cabal_install- , ghcPkg- , ghcPkg'- , compileSetup- , run- , runExe- , runExe'- , rawRun- , rawCompileSetup- , withPackage- , withEnv- , withPackageDb-- -- * Polymorphic versions of HUnit functions- , assertFailure- , assertEqual- , assertBool- , shouldExist- , shouldNotExist-- -- * Test helpers- , shouldFail- , whenGhcVersion- , assertOutputContains- , assertOutputDoesNotContain- , assertFindInFile- , concatOutput- , withSymlink-- -- * Test trees- , TestTreeM- , runTestTree- , testTree- , testTree'- , groupTests- , mapTestTrees- , testWhen- , testUnless- , unlessWindows- , hasSharedLibraries-- , getPersistBuildConfig-- -- Common utilities- , module System.FilePath- , module Data.List- , module Control.Monad.IO.Class- , module Text.Regex.Posix- ) where--import PackageTests.Options--import Distribution.Compat.CreatePipe (createPipe)-import Distribution.Simple.Compiler (PackageDBStack, PackageDB(..))-import Distribution.Simple.Program.Run (getEffectiveEnvironment)-import Distribution.System (OS(Windows), buildOS)-import Distribution.Simple.Utils- ( printRawCommandAndArgsAndEnv, withFileContents )-import Distribution.Simple.Configure- ( getPersistBuildConfig )-import Distribution.Verbosity (Verbosity)-import Distribution.Simple.BuildPaths (exeExtension)--#ifndef CURRENT_COMPONENT_ID-import Distribution.Simple.Utils (cabalVersion)-import Distribution.Text (display)-#endif--import qualified Test.Tasty.HUnit as HUnit-import Text.Regex.Posix--import qualified Control.Exception as E-import Control.Monad-import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Reader-import Control.Monad.Trans.Writer-import Control.Monad.IO.Class-import qualified Data.ByteString.Char8 as C-import Data.List-import Data.Version-import System.Directory- ( doesFileExist, canonicalizePath, createDirectoryIfMissing- , removeDirectoryRecursive, getPermissions, setPermissions- , setOwnerExecutable )-import System.Exit-import System.FilePath-import System.IO-import System.IO.Error (isDoesNotExistError)-import System.Process (runProcess, waitForProcess, showCommandForUser)-import Test.Tasty (TestTree, askOption, testGroup)--#ifndef mingw32_HOST_OS-import Control.Monad.Catch ( bracket_ )-import System.Directory ( removeFile )-import System.Posix.Files ( createSymbolicLink )-#endif---- | Our test monad maintains an environment recording the global test--- suite configuration 'SuiteConfig', and the local per-test--- configuration 'TestConfig'.-type TestM = ReaderT (SuiteConfig, TestConfig) IO---- | Run a test in the test monad.-runTestM :: SuiteConfig -> FilePath -> Maybe String -> TestM a -> IO ()-runTestM suite name subname m = do- let test = TestConfig {- testMainName = name,- testSubName = subname,- testShouldFail = False,- testCurrentPackage = ".",- testPackageDb = False,- testEnvironment = []- }- void (runReaderT (cleanup >> m) (suite, test))- where- -- TODO: option not to clean up dist dirs; this should be- -- harmless!- cleanup = do- onlyIfExists . removeDirectoryRecursive =<< topDir---- | Run an IO action, and suppress a "does not exist" error.-onlyIfExists :: MonadIO m => IO () -> m ()-onlyIfExists m = liftIO $- E.catch m $ \(e :: IOError) ->- if isDoesNotExistError e- then return ()- else E.throwIO e---- cleaning up:--- cabal clean will clean up dist directory, but we also need to zap--- Setup etc.------ Suggestion: just copy the files somewhere else!---- | Global configuration for the entire test suite.-data SuiteConfig = SuiteConfig- -- | Path to GHC that was used to compile Cabal library under test.- { ghcPath :: FilePath- -- | Version of GHC that compiled Cabal.- , ghcVersion :: Version- -- | Path to ghc-pkg corresponding to 'ghcPath'.- , ghcPkgPath :: FilePath- -- | Path to GHC that we should use to "./Setup --with-ghc"- , withGhcPath :: FilePath- -- | Version of GHC at 'withGhcPath'.- , withGhcVersion :: Version- -- | The build directory that was used to build Cabal (used- -- to compile Setup scripts.)- , cabalDistPref :: FilePath- -- | Configuration options you can use to make the Cabal- -- being tested visible (e.g. if you're using the test runner).- -- We don't add these by default because then you have to- -- link against Cabal which makes the build go longer.- , packageDBStack :: PackageDBStack- -- | How verbose should we be- , suiteVerbosity :: Verbosity- -- | The absolute current working directory- , absoluteCWD :: FilePath- }--data TestConfig = TestConfig- -- | Test name, MUST be the directory the test packages live in- -- relative to tests/PackageTests- { testMainName :: FilePath- -- | Test sub-name, used to qualify dist/database directory to avoid- -- conflicts.- , testSubName :: Maybe String- -- | This gets modified sometimes- , testShouldFail :: Bool- -- | The "current" package, ala current directory- , testCurrentPackage :: PackageSpec- -- | Says if we've initialized the per-test package DB- , testPackageDb :: Bool- -- | Environment override- , testEnvironment :: [(String, Maybe String)]- }---- | A package that can be built.-type PackageSpec = FilePath----------------------------------------------------------------------------- * Directories--simpleSetupPath :: TestM FilePath-simpleSetupPath = do- (suite, _) <- ask- return (absoluteCWD suite </> "tests/Setup")---- | The absolute path to the directory containing the files for--- this tests; usually @Check.hs@ and any test packages.-testDir :: TestM FilePath-testDir = do- (suite, test) <- ask- return $ absoluteCWD suite </> "tests/PackageTests" </> testMainName test---- | The absolute path to the root of the package directory; it's--- where the Cabal file lives. This is what you want the CWD of cabal--- calls to be.-packageDir :: TestM FilePath-packageDir = do- (_, test) <- ask- test_dir <- testDir- return $ test_dir </> testCurrentPackage test---- | The absolute path to the directory containing all the--- files for ALL tests associated with a test (respecting--- subtests.) To clean, you ONLY need to delete this directory.-topDir :: TestM FilePath-topDir = do- test_dir <- testDir- (_, test) <- ask- return $ test_dir </>- case testSubName test of- Nothing -> "dist-test"- Just n -> "dist-test." ++ n--prefixDir :: TestM FilePath-prefixDir = do- top_dir <- topDir- return $ top_dir </> "usr"---- | The absolute path to the build directory that should be used--- for the current package in a test.-distDir :: TestM FilePath-distDir = do- top_dir <- topDir- (_, test) <- ask- return $ top_dir </> testCurrentPackage test </> "dist"--definitelyMakeRelative :: FilePath -> FilePath -> FilePath-definitelyMakeRelative base0 path0 =- let go [] path = joinPath path- go base [] = joinPath (replicate (length base) "..")- go (".":xs) ys = go xs ys- go xs (".":ys) = go xs ys- go (x:xs) (y:ys)- | x == y = go xs ys- | otherwise = go (x:xs) [] </> go [] (y:ys)- in go (splitPath base0) (splitPath path0)---- hpc is stupid and doesn't understand absolute paths.-relativeDistDir :: TestM FilePath-relativeDistDir = do- dist_dir0 <- distDir- pkg_dir <- packageDir- return $ definitelyMakeRelative pkg_dir dist_dir0---- | The absolute path to the shared package database that should--- be used by all packages in this test.-sharedDBPath :: TestM FilePath-sharedDBPath = do- top_dir <- topDir- return $ top_dir </> "packagedb"--getWithGhcPath :: TestM FilePath-getWithGhcPath = do- (suite, _) <- ask- return $ withGhcPath suite----------------------------------------------------------------------------- * Running cabal--cabal :: String -> [String] -> TestM ()-cabal cmd extraArgs0 = void (cabal' cmd extraArgs0)--cabal' :: String -> [String] -> TestM Result-cabal' cmd extraArgs0 = do- (suite, test) <- ask- prefix_dir <- prefixDir- when ((cmd == "register" || cmd == "copy") && not (testPackageDb test)) $- error "Cannot register/copy without using 'withPackageDb'"- let extraArgs1 = case cmd of- "configure" ->- -- If the package database is empty, setting --global- -- here will make us error loudly if we try to install- -- into a bad place.- [ "--global"- , "--with-ghc", withGhcPath suite- -- This improves precision but it increases the number- -- of flags one has to specify and I don't like that;- -- Cabal is going to configure it and usually figure- -- out the right location in any case.- -- , "--with-ghc-pkg", withGhcPkgPath suite- -- Would really like to do this, but we're not always- -- going to be building against sufficiently recent- -- Cabal which provides this macro.- -- , "--dependency=Cabal=" ++ THIS_PACKAGE_KEY- -- These flags make the test suite run faster- -- Can't do this unless we LD_LIBRARY_PATH correctly- -- , "--enable-executable-dynamic"- , "--disable-optimization"- -- Specify where we want our installed packages to go- , "--prefix=" ++ prefix_dir- ] -- Only add the LBI package stack if the GHC version- -- matches.- ++ (if withGhcPath suite == ghcPath suite- then packageDBParams (packageDBStack suite)- else [])- ++ extraArgs0- -- This gives us MUCH better error messages- "build" -> "-v" : extraArgs0- _ -> extraArgs0- -- This is a horrible hack to make hpc work correctly- dist_dir <- relativeDistDir- let extraArgs = ["--distdir", dist_dir] ++ extraArgs1- doCabal (cmd:extraArgs)---- | This abstracts the common pattern of configuring and then building.-cabal_build :: [String] -> TestM ()-cabal_build args = do- cabal "configure" args- cabal "build" []- return ()---- | This abstracts the common pattern of "installing" a package.-cabal_install :: [String] -> TestM ()-cabal_install args = do- cabal "configure" args- cabal "build" []- cabal "copy" []- cabal "register" []- return ()---- | Determines what Setup executable to run and runs it-doCabal :: [String] -- ^ extra arguments- -> TestM Result-doCabal cabalArgs = do- pkg_dir <- packageDir- customSetup <- liftIO $ doesFileExist (pkg_dir </> "Setup.hs")- if customSetup- then do- compileSetup- -- TODO make this less racey- let path = pkg_dir </> "Setup"- run (Just pkg_dir) path cabalArgs- else do- -- Use shared Setup executable (only for Simple build types).- path <- simpleSetupPath- run (Just pkg_dir) path cabalArgs--packageDBParams :: PackageDBStack -> [String]-packageDBParams dbs = "--package-db=clear"- : map (("--package-db=" ++) . convert) dbs- where- convert :: PackageDB -> String- convert GlobalPackageDB = "global"- convert UserPackageDB = "user"- convert (SpecificPackageDB path) = path----------------------------------------------------------------------------- * Compiling setup scripts--compileSetup :: TestM ()-compileSetup = do- (suite, test) <- ask- pkg_path <- packageDir- liftIO $ rawCompileSetup (suiteVerbosity suite) suite (testEnvironment test) pkg_path--rawCompileSetup :: Verbosity -> SuiteConfig -> [(String, Maybe String)] -> FilePath -> IO ()-rawCompileSetup verbosity suite e path = do- -- NB: Use 'ghcPath', not 'withGhcPath', since we need to be able to- -- link against the Cabal library which was built with 'ghcPath'.- r <- rawRun verbosity (Just path) (ghcPath suite) e $- [ "--make"] ++- ghcPackageDBParams (ghcVersion suite) (packageDBStack suite) ++- [ "-hide-all-packages"- , "-package base"-#ifdef CURRENT_COMPONENT_ID- -- This is best, but we don't necessarily have it- -- if we're bootstrapping with old Cabal.- , "-package-id " ++ CURRENT_COMPONENT_ID-#else- -- This mostly works, UNLESS you've installed a- -- version of Cabal with the SAME version number.- -- Then old GHCs will incorrectly select the installed- -- version (because it prefers the FIRST package it finds.)- -- It also semi-works to not specify "-hide-all-packages"- -- at all, except if there's a later version of Cabal- -- installed GHC will prefer that.- , "-package Cabal-" ++ display cabalVersion-#endif- , "-O0"- , "Setup.hs" ]- unless (resultExitCode r == ExitSuccess) $- error $- "could not build shared Setup executable\n" ++- " ran: " ++ resultCommand r ++ "\n" ++- " output:\n" ++ resultOutput r ++ "\n\n"--ghcPackageDBParams :: Version -> PackageDBStack -> [String]-ghcPackageDBParams ghc_version dbs- | ghc_version >= Version [7,6] []- = "-clear-package-db" : map convert dbs- | otherwise- = concatMap convertLegacy dbs- where- convert :: PackageDB -> String- convert GlobalPackageDB = "-global-package-db"- convert UserPackageDB = "-user-package-db"- convert (SpecificPackageDB path) = "-package-db=" ++ path-- convertLegacy :: PackageDB -> [String]- convertLegacy (SpecificPackageDB path) = ["-package-conf=" ++ path]- convertLegacy _ = []----------------------------------------------------------------------------- * Running ghc-pkg--ghcPkg :: String -> [String] -> TestM ()-ghcPkg cmd args = void (ghcPkg' cmd args)--ghcPkg' :: String -> [String] -> TestM Result-ghcPkg' cmd args = do- db_path <- sharedDBPath- (config, test) <- ask- unless (testPackageDb test) $- error "Must initialize package database using withPackageDb"- let db_stack = packageDBStack config ++ [SpecificPackageDB db_path]- extraArgs = ghcPkgPackageDBParams (ghcVersion config) db_stack- run Nothing (ghcPkgPath config) (cmd : extraArgs ++ args)--ghcPkgPackageDBParams :: Version -> PackageDBStack -> [String]-ghcPkgPackageDBParams version dbs = concatMap convert dbs where- convert :: PackageDB -> [String]- -- Ignoring global/user is dodgy but there's no way good- -- way to give ghc-pkg the correct flags in this case.- convert GlobalPackageDB = []- convert UserPackageDB = []- convert (SpecificPackageDB path)- | version >= Version [7,6] []- = ["--package-db=" ++ path]- | otherwise- = ["--package-conf=" ++ path]----------------------------------------------------------------------------- * Running other things---- | Run an executable that was produced by cabal. The @exe_name@--- is precisely the name of the executable section in the file.-runExe :: String -> [String] -> TestM ()-runExe exe_name args = void (runExe' exe_name args)--runExe' :: String -> [String] -> TestM Result-runExe' exe_name args = do- dist_dir <- distDir- let exe = dist_dir </> "build" </> exe_name </> exe_name- run Nothing exe args--run :: Maybe FilePath -> String -> [String] -> TestM Result-run mb_cwd path args = do- verbosity <- getVerbosity- (_, test) <- ask- r <- liftIO $ rawRun verbosity mb_cwd path (testEnvironment test) args- record r- requireSuccess r--rawRun :: Verbosity -> Maybe FilePath -> String -> [(String, Maybe String)] -> [String] -> IO Result-rawRun verbosity mb_cwd path envOverrides args = do- -- path is relative to the current directory; canonicalizePath makes it- -- absolute, so that runProcess will find it even when changing directory.- path' <- do pathExists <- doesFileExist path- canonicalizePath (if pathExists then path- else path <.> exeExtension)- menv <- getEffectiveEnvironment envOverrides-- printRawCommandAndArgsAndEnv verbosity path' args menv- (readh, writeh) <- createPipe- pid <- runProcess path' args mb_cwd menv Nothing (Just writeh) (Just writeh)-- out <- hGetContents readh- void $ E.evaluate (length out) -- force the output- hClose readh-- -- wait for the program to terminate- exitcode <- waitForProcess pid- return Result {- resultExitCode = exitcode,- resultDirectory = mb_cwd,- resultCommand = showCommandForUser path' args,- resultOutput = out- }----------------------------------------------------------------------------- * Subprocess run results--data Result = Result- { resultExitCode :: ExitCode- , resultDirectory :: Maybe FilePath- , resultCommand :: String- , resultOutput :: String- } deriving Show--requireSuccess :: Result -> TestM Result-requireSuccess r@Result { resultCommand = cmd- , resultExitCode = exitCode- , resultOutput = output } = do- (_, test) <- ask- when (exitCode /= ExitSuccess && not (testShouldFail test)) $- assertFailure $ "Command " ++ cmd ++ " failed.\n" ++- "Output:\n" ++ output ++ "\n"- when (exitCode == ExitSuccess && testShouldFail test) $- assertFailure $ "Command " ++ cmd ++ " succeeded.\n" ++- "Output:\n" ++ output ++ "\n"- return r--record :: Result -> TestM ()-record res = do- build_dir <- distDir- (suite, _) <- ask- liftIO $ createDirectoryIfMissing True build_dir- liftIO $ C.appendFile (build_dir </> "test.log")- (C.pack $ "+ " ++ resultCommand res ++ "\n"- ++ resultOutput res ++ "\n\n")- let test_sh = build_dir </> "test.sh"- b <- liftIO $ doesFileExist test_sh- when (not b) . liftIO $ do- -- This is hella racey but this is not that security important- C.appendFile test_sh- (C.pack $ "#/bin/sh\nset -ev\n" ++- "cd "++ show (absoluteCWD suite) ++"\n")- perms <- getPermissions test_sh- setPermissions test_sh (setOwnerExecutable True perms)-- liftIO $ C.appendFile test_sh- (C.pack- (case resultDirectory res of- Nothing -> resultCommand res- Just d -> "(cd " ++ show d ++ " && " ++ resultCommand res ++ ")\n"))----------------------------------------------------------------------------- * Test helpers--assertFailure :: MonadIO m => String -> m ()-assertFailure = liftIO . HUnit.assertFailure--assertEqual :: (Eq a, Show a, MonadIO m) => String -> a -> a -> m ()-assertEqual s x y = liftIO $ HUnit.assertEqual s x y--assertBool :: MonadIO m => String -> Bool -> m ()-assertBool s x = liftIO $ HUnit.assertBool s x--shouldExist :: MonadIO m => FilePath -> m ()-shouldExist path = liftIO $ doesFileExist path >>= assertBool (path ++ " should exist")--shouldNotExist :: MonadIO m => FilePath -> m ()-shouldNotExist path =- liftIO $ doesFileExist path >>= assertBool (path ++ " should exist") . not--shouldFail :: TestM a -> TestM a-shouldFail = withReaderT (\(suite, test) -> (suite, test { testShouldFail = not (testShouldFail test) }))--whenGhcVersion :: (Version -> Bool) -> TestM () -> TestM ()-whenGhcVersion p m = do- (suite, _) <- ask- when (p (ghcVersion suite)) m--withPackage :: FilePath -> TestM a -> TestM a-withPackage f = withReaderT (\(suite, test) -> (suite, test { testCurrentPackage = f }))---- TODO: Really should accumulate... but I think to do this--- properly we can't just append-withEnv :: [(String, Maybe String)] -> TestM a -> TestM a-withEnv e m = do- (_, test0) <- ask- when (not (null (testEnvironment test0)))- $ error "nested withEnv (not yet) supported"- withReaderT (\(suite, test) -> (suite, test { testEnvironment = e })) m--withPackageDb :: TestM a -> TestM a-withPackageDb m = do- (_, test0) <- ask- db_path <- sharedDBPath- if testPackageDb test0- then m- else withReaderT (\(suite, test) ->- (suite { packageDBStack- = packageDBStack suite- ++ [SpecificPackageDB db_path] },- test { testPackageDb = True }))- $ do ghcPkg "init" [db_path]- m--assertOutputContains :: MonadIO m => String -> Result -> m ()-assertOutputContains needle result =- unless (needle `isInfixOf` (concatOutput output)) $- assertFailure $- " expected: " ++ needle ++ "\n" ++- " in output: " ++ output ++ ""- where output = resultOutput result--assertOutputDoesNotContain :: MonadIO m => String -> Result -> m ()-assertOutputDoesNotContain needle result =- when (needle `isInfixOf` (concatOutput output)) $- assertFailure $- "unexpected: " ++ needle ++- " in output: " ++ output- where output = resultOutput result--assertFindInFile :: MonadIO m => String -> FilePath -> m ()-assertFindInFile needle path =- liftIO $ withFileContents path- (\contents ->- unless (needle `isInfixOf` contents)- (assertFailure ("expected: " ++ needle ++ "\n" ++- " in file: " ++ path)))---- | Replace line breaks with spaces, correctly handling "\r\n".-concatOutput :: String -> String-concatOutput = unwords . lines . filter ((/=) '\r')---- | Create a symlink for the duration of the provided action. If the symlink--- already exists, it is deleted. Does not work on Windows.-withSymlink :: FilePath -> FilePath -> TestM a -> TestM a-#ifdef mingw32_HOST_OS-withSymlink _oldpath _newpath _act =- error "PackageTests.PackageTester.withSymlink: does not work on Windows!"-#else-withSymlink oldpath newpath act = do- symlinkExists <- liftIO $ doesFileExist newpath- when symlinkExists $ liftIO $ removeFile newpath- bracket_ (liftIO $ createSymbolicLink oldpath newpath)- (liftIO $ removeFile newpath) act-#endif----------------------------------------------------------------------------- * Test trees---- | Monad for creating test trees. The option --enable-all-tests determines--- whether to filter tests with 'testWhen' and 'testUnless'.-type TestTreeM = WriterT [TestTree] (Reader OptionEnableAllTests)--runTestTree :: String -> TestTreeM () -> TestTree-runTestTree name ts = askOption $- testGroup name . runReader (execWriterT ts)--testTree :: SuiteConfig -> String -> Maybe String -> TestM a -> TestTreeM ()-testTree config name subname m =- testTree' $ HUnit.testCase name $ runTestM config name subname m--testTree' :: TestTree -> TestTreeM ()-testTree' tc = tell [tc]---- | Create a test group from the output of the given action.-groupTests :: String -> TestTreeM () -> TestTreeM ()-groupTests name = censor (\ts -> [testGroup name ts])---- | Apply a function to each top-level test tree.-mapTestTrees :: (TestTree -> TestTree) -> TestTreeM a -> TestTreeM a-mapTestTrees = censor . map--testWhen :: Bool -> TestTreeM () -> TestTreeM ()-testWhen c test = do- OptionEnableAllTests enableAll <- lift ask- when (enableAll || c) test--testUnless :: Bool -> TestTreeM () -> TestTreeM ()-testUnless = testWhen . not--unlessWindows :: TestTreeM () -> TestTreeM ()-unlessWindows = testUnless (buildOS == Windows)--hasSharedLibraries :: SuiteConfig -> Bool-hasSharedLibraries config =- buildOS /= Windows || withGhcVersion config < Version [7,8] []----------------------------------------------------------------------------- Verbosity--getVerbosity :: TestM Verbosity-getVerbosity = fmap (suiteVerbosity . fst) ask
− tests/PackageTests/PathsModule/Executable/Main.hs
@@ -1,8 +0,0 @@-module Main where--import Paths_PathsModule (getBinDir)--main :: IO ()-main = do- _ <- getBinDir- return ()
− tests/PackageTests/PathsModule/Executable/my.cabal
@@ -1,16 +0,0 @@-name: PathsModule-version: 0.1-license: BSD3-author: Johan Tibell-stability: stable-category: PackageTests-build-type: Simple-Cabal-version: >= 1.2--description:- Check that the generated paths module compiles.--Executable TestPathsModule- main-is: Main.hs- other-modules: Paths_PathsModule- build-depends: base
− tests/PackageTests/PathsModule/Library/my.cabal
@@ -1,15 +0,0 @@-name: PathsModule-version: 0.1-license: BSD3-author: Johan Tibell-stability: stable-category: PackageTests-build-type: Simple-Cabal-version: >= 1.2--description:- Check that the generated paths module compiles.--Library- exposed-modules: Paths_PathsModule- build-depends: base
− tests/PackageTests/PreProcess/Foo.hsc
@@ -1,1 +0,0 @@-module Foo where
− tests/PackageTests/PreProcess/Main.hs
@@ -1,6 +0,0 @@-module Main where--import Foo--main :: IO ()-main = return ()
− tests/PackageTests/PreProcess/my.cabal
@@ -1,32 +0,0 @@-name: PreProcess-version: 0.1-license: BSD3-author: Johan Tibell-stability: stable-category: PackageTests-build-type: Simple-Cabal-version: >= 1.2--description:- Check that preprocessors are run.--Library- exposed-modules: Foo- build-depends: base--Executable my-executable- main-is: Main.hs- other-modules: Foo- build-depends: base--Test-Suite my-test-suite- main-is: Main.hs- type: exitcode-stdio-1.0- other-modules: Foo- build-depends: base--Benchmark my-benchmark- main-is: Main.hs- type: exitcode-stdio-1.0- other-modules: Foo- build-depends: base
− tests/PackageTests/PreProcessExtraSources/Foo.hsc
@@ -1,9 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}-module Foo where--import Foreign.C.Types--#def int incr(int x) { return x + 1; }--foreign import ccall unsafe "Foo_hsc.h incr"- incr :: CInt -> CInt
− tests/PackageTests/PreProcessExtraSources/Main.hs
@@ -1,8 +0,0 @@-module Main where--import Foo--main :: IO ()-main = do- let x = incr 4- return ()
− tests/PackageTests/PreProcessExtraSources/my.cabal
@@ -1,32 +0,0 @@-name: PreProcessExtraSources-version: 0.1-license: BSD3-author: Ian Ross-stability: stable-category: PackageTests-build-type: Simple-Cabal-version: >= 1.2--description:- Check that preprocessors that generate extra C sources are handled.--Library- exposed-modules: Foo- build-depends: base--Executable my-executable- main-is: Main.hs- other-modules: Foo- build-depends: base--Test-Suite my-test-suite- main-is: Main.hs- type: exitcode-stdio-1.0- other-modules: Foo- build-depends: base--Benchmark my-benchmark- main-is: Main.hs- type: exitcode-stdio-1.0- other-modules: Foo- build-depends: base
− tests/PackageTests/ReexportedModules/ReexportedModules.cabal
@@ -1,11 +0,0 @@-name: ReexportedModules-version: 0.1.0.0-license-file: LICENSE-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.21--library- build-depends: base, containers- reexported-modules: containers:Data.Map as DataMap
− tests/PackageTests/TemplateHaskell/dynamic/Exe.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module Main where--import TH--main = print $(splice)
− tests/PackageTests/TemplateHaskell/dynamic/Lib.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module Lib where--import TH--val = $(splice)
− tests/PackageTests/TemplateHaskell/dynamic/TH.hs
@@ -1,4 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module TH where--splice = [| () |]
− tests/PackageTests/TemplateHaskell/dynamic/my.cabal
@@ -1,15 +0,0 @@-Name: templateHaskell-Version: 0.1-Build-Type: Simple-Cabal-Version: >= 1.2--Library- Exposed-Modules: Lib- Other-Modules: TH- Build-Depends: base, template-haskell- Extensions: TemplateHaskell--Executable main- Main-is: Exe.hs- Build-Depends: base, template-haskell- Extensions: TemplateHaskell
− tests/PackageTests/TemplateHaskell/profiling/Exe.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module Main where--import TH--main = print $(splice)
− tests/PackageTests/TemplateHaskell/profiling/Lib.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module Lib where--import TH--val = $(splice)
− tests/PackageTests/TemplateHaskell/profiling/TH.hs
@@ -1,4 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module TH where--splice = [| () |]
− tests/PackageTests/TemplateHaskell/profiling/my.cabal
@@ -1,15 +0,0 @@-Name: templateHaskell-Version: 0.1-Build-Type: Simple-Cabal-Version: >= 1.2--Library- Exposed-Modules: Lib- Other-Modules: TH- Build-Depends: base, template-haskell- Extensions: TemplateHaskell--Executable main- Main-is: Exe.hs- Build-Depends: base, template-haskell- Extensions: TemplateHaskell
− tests/PackageTests/TemplateHaskell/vanilla/Exe.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module Main where--import TH--main = print $(splice)
− tests/PackageTests/TemplateHaskell/vanilla/Lib.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module Lib where--import TH--val = $(splice)
− tests/PackageTests/TemplateHaskell/vanilla/TH.hs
@@ -1,4 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module TH where--splice = [| () |]
− tests/PackageTests/TemplateHaskell/vanilla/my.cabal
@@ -1,15 +0,0 @@-Name: templateHaskell-Version: 0.1-Build-Type: Simple-Cabal-Version: >= 1.2--Library- Exposed-Modules: Lib- Other-Modules: TH- Build-Depends: base, template-haskell- Extensions: TemplateHaskell--Executable main- Main-is: Exe.hs- Build-Depends: base, template-haskell- Extensions: TemplateHaskell
− tests/PackageTests/TestNameCollision/child/Child.hs
@@ -1,2 +0,0 @@-module Child where-import Parent
− tests/PackageTests/TestNameCollision/child/child.cabal
@@ -1,19 +0,0 @@-name: child-version: 0.1-description: This defines the colliding detailed-0.9 test suite-license: BSD3-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.10--library- exposed-modules: Child- build-depends: base, parent- default-language: Haskell2010--test-suite parent- type: detailed-0.9- test-module: Test- hs-source-dirs: tests- build-depends: base, Cabal, child
− tests/PackageTests/TestNameCollision/child/tests/Test.hs
@@ -1,13 +0,0 @@-module Test where--import Distribution.TestSuite-import Child--tests :: IO [Test]-tests = return $ [Test $ TestInstance- { run = return (Finished Pass)- , name = "test"- , tags = []- , options = []- , setOption = \_ _-> Left "No Options"- }]
− tests/PackageTests/TestNameCollision/parent/Parent.hs
@@ -1,1 +0,0 @@-module Parent where
− tests/PackageTests/TestNameCollision/parent/parent.cabal
@@ -1,13 +0,0 @@-name: parent-version: 0.1-description: This package is what the test suite is going to collide with-license: BSD3-author: Edward Z. Yang-maintainer: ezyang@cs.stanford.edu-build-type: Simple-cabal-version: >=1.10--library- exposed-modules: Parent- build-depends: base- default-language: Haskell2010
− tests/PackageTests/TestOptions/TestOptions.cabal
@@ -1,20 +0,0 @@-name: TestOptions-version: 0.1-license: BSD3-author: Thomas Tuegel-stability: stable-category: PackageTests-build-type: Simple-cabal-version: >= 1.9.2--description:- Check that Cabal passes the correct test options to test suites.--executable dummy- main-is: test-TestOptions.hs- build-depends: base--test-suite test-TestOptions- main-is: test-TestOptions.hs- type: exitcode-stdio-1.0- build-depends: base
− tests/PackageTests/TestOptions/test-TestOptions.hs
@@ -1,11 +0,0 @@-module Main where--import System.Environment ( getArgs )-import System.Exit ( exitFailure, exitSuccess )--main :: IO ()-main = do- args <- getArgs- if args == ["1", "2", "3"]- then exitSuccess- else putStrLn ("Got: " ++ show args) >> exitFailure
− tests/PackageTests/TestStanza/Check.hs
@@ -1,29 +0,0 @@-module PackageTests.TestStanza.Check where--import PackageTests.PackageTester--import Distribution.Version-import Distribution.Simple.LocalBuildInfo-import Distribution.Package-import Distribution.PackageDescription--suite :: TestM ()-suite = do- assertOutputDoesNotContain "unknown section type"- =<< cabal' "configure" []- dist_dir <- distDir- lbi <- liftIO $ getPersistBuildConfig dist_dir- let anticipatedTestSuite = emptyTestSuite- { testName = "dummy"- , testInterface = TestSuiteExeV10 (Version [1,0] []) "dummy.hs"- , testBuildInfo = emptyBuildInfo- { targetBuildDepends =- [ Dependency (PackageName "base") anyVersion ]- , hsSourceDirs = ["."]- }- , testEnabled = False- }- gotTestSuite = head $ testSuites (localPkgDescr lbi)- assertEqual "parsed test-suite stanza does not match anticipated"- anticipatedTestSuite gotTestSuite- return ()
− tests/PackageTests/TestStanza/my.cabal
@@ -1,19 +0,0 @@-name: TestStanza-version: 0.1-license: BSD3-author: Thomas Tuegel-stability: stable-category: PackageTests-build-type: Simple--description:- Check that Cabal recognizes the Test stanza defined below.--Library- exposed-modules: MyLibrary- build-depends: base--test-suite dummy- main-is: dummy.hs- type: exitcode-stdio-1.0- build-depends: base
− tests/PackageTests/TestSuiteTests/ExeV10/Check.hs
@@ -1,129 +0,0 @@-module PackageTests.TestSuiteTests.ExeV10.Check (tests) where--import qualified Control.Exception as E (IOException, catch)-import Control.Monad (forM_, liftM4, when)-import Data.Maybe (catMaybes)-import System.FilePath-import Test.Tasty.HUnit (testCase)--import Distribution.Compiler (CompilerFlavor(..), CompilerId(..))-import Distribution.PackageDescription (package)-import Distribution.Simple.Compiler (compilerId)-import Distribution.Simple.LocalBuildInfo (compiler, localPkgDescr, localCompatPackageKey)-import Distribution.Simple.Hpc-import Distribution.Simple.Program.Builtin (hpcProgram)-import Distribution.Simple.Program.Db- ( emptyProgramDb, configureProgram, requireProgramVersion )-import Distribution.Text (display)-import qualified Distribution.Verbosity as Verbosity-import Distribution.Version (Version(..), orLaterVersion)--import PackageTests.PackageTester--tests :: SuiteConfig -> TestTreeM ()-tests config = do- -- TODO: hierarchy and subnaming is a little unfortunate- tc "Test" "Default" $ do- cabal_build ["--enable-tests"]- -- This one runs both tests, including the very LONG Foo- -- test which prints a lot of output- cabal "test" ["--show-details=direct"]- groupTests "WithHpc" $ hpcTestMatrix config- groupTests "WithoutHpc" $ do- -- Ensures that even if -fhpc is manually provided no .tix file is output.- tc "NoTix" "NoHpcNoTix" $ do- dist_dir <- distDir- cabal_build- [ "--enable-tests"- , "--ghc-option=-fhpc"- , "--ghc-option=-hpcdir"- , "--ghc-option=" ++ dist_dir ++ "/hpc/vanilla" ]- cabal "test" ["test-Short", "--show-details=direct"]- lbi <- liftIO $ getPersistBuildConfig dist_dir- let way = guessWay lbi- shouldNotExist $ tixFilePath dist_dir way "test-Short"- -- Ensures that even if a .tix file happens to be left around- -- markup isn't generated.- tc "NoMarkup" "NoHpcNoMarkup" $ do- dist_dir <- distDir- let tixFile = tixFilePath dist_dir Vanilla "test-Short"- withEnv [("HPCTIXFILE", Just tixFile)] $ do- cabal_build- [ "--enable-tests"- , "--ghc-option=-fhpc"- , "--ghc-option=-hpcdir"- , "--ghc-option=" ++ dist_dir ++ "/hpc/vanilla" ]- cabal "test" ["test-Short", "--show-details=direct"]- shouldNotExist $ htmlDir dist_dir Vanilla "test-Short" </> "hpc_index.html"- where- tc :: String -> String -> TestM a -> TestTreeM ()- tc name subname m- = testTree' $ testCase name- (runTestM config "TestSuiteTests/ExeV10" (Just subname) m)--hpcTestMatrix :: SuiteConfig -> TestTreeM ()-hpcTestMatrix config = forM_ (choose4 [True, False]) $- \(libProf, exeProf, exeDyn, shared) -> do- let name | null suffixes = "Vanilla"- | otherwise = intercalate "-" suffixes- where- suffixes = catMaybes- [ if libProf then Just "LibProf" else Nothing- , if exeProf then Just "ExeProf" else Nothing- , if exeDyn then Just "ExeDyn" else Nothing- , if shared then Just "Shared" else Nothing- ]- opts = catMaybes- [ enable libProf "library-profiling"- , enable exeProf "profiling"- , enable exeDyn "executable-dynamic"- , enable shared "shared"- ]- where- enable cond flag- | cond = Just $ "--enable-" ++ flag- | otherwise = Nothing- -- Ensure that both .tix file and markup are generated if coverage- -- is enabled.- testUnless ((exeDyn || shared) && not (hasSharedLibraries config)) $- tc name ("WithHpc-" ++ name) $ do- isCorrectVersion <- liftIO $ correctHpcVersion- when isCorrectVersion $ do- dist_dir <- distDir- cabal_build ("--enable-tests" : "--enable-coverage" : opts)- cabal "test" ["test-Short", "--show-details=direct"]- lbi <- liftIO $ getPersistBuildConfig dist_dir- let way = guessWay lbi- CompilerId comp version = compilerId (compiler lbi)- subdir- | comp == GHC && version >= Version [7, 10] [] =- localCompatPackageKey lbi- | otherwise = display (package $ localPkgDescr lbi)- mapM_ shouldExist- [ mixDir dist_dir way "my-0.1" </> subdir </> "Foo.mix"- , mixDir dist_dir way "test-Short" </> "Main.mix"- , tixFilePath dist_dir way "test-Short"- , htmlDir dist_dir way "test-Short" </> "hpc_index.html"- ]- where- tc :: String -> String -> TestM a -> TestTreeM ()- tc name subname m- = testTree' $ testCase name- (runTestM config "TestSuiteTests/ExeV10" (Just subname) m)-- choose4 :: [a] -> [(a, a, a, a)]- choose4 xs = liftM4 (,,,) xs xs xs xs---- | Checks for a suitable HPC version for testing.-correctHpcVersion :: IO Bool-correctHpcVersion = do- let programDb' = emptyProgramDb- let verbosity = Verbosity.normal- let verRange = orLaterVersion (Version [0,7] [])- programDb <- configureProgram verbosity hpcProgram programDb'- (requireProgramVersion verbosity hpcProgram verRange programDb- >> return True) `catchIO` (\_ -> return False)- where- -- Distribution.Compat.Exception is hidden.- catchIO :: IO a -> (E.IOException -> IO a) -> IO a- catchIO = E.catch
− tests/PackageTests/TestSuiteTests/ExeV10/Foo.hs
@@ -1,4 +0,0 @@-module Foo where--fooTest :: [String] -> Bool-fooTest _ = True
− tests/PackageTests/TestSuiteTests/ExeV10/my.cabal
@@ -1,21 +0,0 @@-name: my-version: 0.1-license: BSD3-cabal-version: >= 1.9.2-build-type: Simple--library- exposed-modules: Foo- build-depends: base--test-suite test-Foo- type: exitcode-stdio-1.0- hs-source-dirs: tests- main-is: test-Foo.hs- build-depends: base, my--test-suite test-Short- type: exitcode-stdio-1.0- hs-source-dirs: tests- main-is: test-Short.hs- build-depends: base, my
− tests/PackageTests/TestSuiteTests/ExeV10/tests/test-Foo.hs
@@ -1,12 +0,0 @@-module Main where--import Foo-import System.Exit-import Control.Monad--main :: IO ()-main | fooTest [] = do- -- Make sure that the output buffer is drained- replicateM 10000 $ putStrLn "The quick brown fox jumps over the lazy dog"- exitSuccess- | otherwise = exitFailure
− tests/PackageTests/TestSuiteTests/ExeV10/tests/test-Short.hs
@@ -1,11 +0,0 @@-module Main where--import Foo-import System.Exit-import Control.Monad--main :: IO ()-main | fooTest [] = do- replicateM 5 $ putStrLn "The quick brown fox jumps over the lazy dog"- exitSuccess- | otherwise = exitFailure
− tests/PackageTests/TestSuiteTests/LibV09/Lib.hs
@@ -1,11 +0,0 @@-module Lib where--import Distribution.TestSuite--nullt x = Test $ TestInstance- { run = return $ Finished (Fail "no reason")- , name = "test " ++ show x- , tags = []- , options = []- , setOption = \_ _-> Left "No Options"- }
− tests/PackageTests/TestSuiteTests/LibV09/LibV09.cabal
@@ -1,21 +0,0 @@-name: LibV09-version: 0.1-cabal-version: >= 1.2-license: BSD3-author: Thomas Tuegel-stability: stable-category: PackageTests-build-type: Simple-cabal-version: >= 1.9.2--description: Check type detailed-0.9 test suites.--library- exposed-modules: Lib- build-depends: base, Cabal--test-suite LibV09-Deadlock- type: detailed-0.9- hs-source-dirs: tests- test-module: Deadlock- build-depends: base, Cabal, LibV09
− tests/PackageTests/TestSuiteTests/LibV09/tests/Deadlock.hs
@@ -1,8 +0,0 @@-module Deadlock where--import Distribution.TestSuite--import Lib--tests :: IO [Test]-tests = return [nullt x | x <- [1 .. 1000]]
− tests/PackageTests/Tests.hs
@@ -1,314 +0,0 @@-module PackageTests.Tests(tests) where--import PackageTests.PackageTester--import qualified PackageTests.BenchmarkStanza.Check-import qualified PackageTests.TestStanza.Check-import qualified PackageTests.DeterministicAr.Check-import qualified PackageTests.TestSuiteTests.ExeV10.Check--import Control.Monad--import Data.Version-import Test.Tasty (mkTimeout, localOption)-import Test.Tasty.HUnit (testCase)--tests :: SuiteConfig -> TestTreeM ()-tests config = do-- ---------------------------------------------------------------------- -- * External tests-- -- Test that Cabal parses 'benchmark' sections correctly- tc "BenchmarkStanza" PackageTests.BenchmarkStanza.Check.suite-- -- Test that Cabal parses 'test' sections correctly- tc "TestStanza" PackageTests.TestStanza.Check.suite-- -- Test that Cabal determinstically generates object archives- tc "DeterministicAr" PackageTests.DeterministicAr.Check.suite-- ---------------------------------------------------------------------- -- * Test suite tests-- groupTests "TestSuiteTests" $ do-- -- Test exitcode-stdio-1.0 test suites (and HPC)- groupTests "ExeV10"- (PackageTests.TestSuiteTests.ExeV10.Check.tests config)-- -- Test detailed-0.9 test suites- groupTests "LibV09" $- let- tcs :: FilePath -> TestM a -> TestTreeM ()- tcs name m- = testTree' $ testCase name (runTestM config- "TestSuiteTests/LibV09" (Just name) m)- in do- -- Test if detailed-0.9 builds correctly- tcs "Build" $ cabal_build ["--enable-tests"]-- -- Tests for #2489, stdio deadlock- mapTestTrees (localOption (mkTimeout $ 10 ^ (8 :: Int)))- . tcs "Deadlock" $ do- cabal_build ["--enable-tests"]- shouldFail $ cabal "test" []-- ---------------------------------------------------------------------- -- * Inline tests-- -- Test if exitcode-stdio-1.0 benchmark builds correctly- tc "BenchmarkExeV10" $ cabal_build ["--enable-benchmarks"]-- -- Test --benchmark-option(s) flags on ./Setup bench- tc "BenchmarkOptions" $ do- cabal_build ["--enable-benchmarks"]- cabal "bench" [ "--benchmark-options=1 2 3" ]- cabal "bench" [ "--benchmark-option=1"- , "--benchmark-option=2"- , "--benchmark-option=3"- ]-- -- Test --test-option(s) flags on ./Setup test- tc "TestOptions" $ do- cabal_build ["--enable-tests"]- cabal "test" ["--test-options=1 2 3"]- cabal "test" [ "--test-option=1"- , "--test-option=2"- , "--test-option=3"- ]-- -- Test attempt to have executable depend on internal- -- library, but cabal-version is too old.- tc "BuildDeps/InternalLibrary0" $ do- r <- shouldFail $ cabal' "configure" []- -- Should tell you how to enable the desired behavior- let sb = "library which is defined within the same package."- assertOutputContains sb r-- -- Test executable depends on internal library.- tc "BuildDeps/InternalLibrary1" $ cabal_build []-- -- Test that internal library is preferred to an installed on- -- with the same name and version- tc "BuildDeps/InternalLibrary2" $ internal_lib_test "internal"-- -- Test that internal library is preferred to an installed on- -- with the same name and LATER version- tc "BuildDeps/InternalLibrary3" $ internal_lib_test "internal"-- -- Test that an explicit dependency constraint which doesn't- -- match the internal library causes us to use external library- tc "BuildDeps/InternalLibrary4" $ internal_lib_test "installed"-- -- Test "old build-dep behavior", where we should get the- -- same package dependencies on all targets if cabal-version- -- is sufficiently old.- tc "BuildDeps/SameDepsAllRound" $ cabal_build []-- -- Test "new build-dep behavior", where each target gets- -- separate dependencies. This tests that an executable- -- dep does not leak into the library.- tc "BuildDeps/TargetSpecificDeps1" $ do- cabal "configure" []- r <- shouldFail $ cabal' "build" []- assertRegex "error should be in MyLibrary.hs" "^MyLibrary.hs:" r- assertRegex- "error should be \"Could not find module `Text\\.PrettyPrint\""- "(Could not find module|Failed to load interface for).*Text\\.PrettyPrint" r-- -- This is a control on TargetSpecificDeps1; it should- -- succeed.- tc "BuildDeps/TargetSpecificDeps2" $ cabal_build []-- -- Test "new build-dep behavior", where each target gets- -- separate dependencies. This tests that an library- -- dep does not leak into the executable.- tc "BuildDeps/TargetSpecificDeps3" $ do- cabal "configure" []- r <- shouldFail $ cabal' "build" []- assertRegex "error should be in lemon.hs" "^lemon.hs:" r- assertRegex- "error should be \"Could not find module `Text\\.PrettyPrint\""- "(Could not find module|Failed to load interface for).*Text\\.PrettyPrint" r-- -- Test that Paths module is generated and available for executables.- tc "PathsModule/Executable" $ cabal_build []-- -- Test that Paths module is generated and available for libraries.- tc "PathsModule/Library" $ cabal_build []-- -- Check that preprocessors (hsc2hs) are run- tc "PreProcess" $ cabal_build ["--enable-tests", "--enable-benchmarks"]-- -- Check that preprocessors that generate extra C sources are handled- tc "PreProcessExtraSources" $ cabal_build ["--enable-tests",- "--enable-benchmarks"]-- -- Test building a vanilla library/executable which uses Template Haskell- tc "TemplateHaskell/vanilla" $ cabal_build []-- -- Test building a profiled library/executable which uses Template Haskell- -- (Cabal has to build the non-profiled version first)- tc "TemplateHaskell/profiling" $ cabal_build ["--enable-library-profiling",- "--enable-profiling"]-- -- Test building a dynamic library/executable which uses Template- -- Haskell- testWhen (hasSharedLibraries config) $- tc "TemplateHaskell/dynamic" $ cabal_build ["--enable-shared",- "--enable-executable-dynamic"]-- -- Test building an executable whose main() function is defined in a C- -- file- tc "CMain" $ cabal_build []-- -- Test build when the library is empty, for #1241- tc "EmptyLib" $- withPackage "empty" $ cabal_build []-- -- Test that "./Setup haddock" works correctly- tc "Haddock" $ do- dist_dir <- distDir- let haddocksDir = dist_dir </> "doc" </> "html" </> "Haddock"- cabal "configure" []- cabal "haddock" []- let docFiles- = map (haddocksDir </>)- ["CPP.html", "Literate.html", "NoCPP.html", "Simple.html"]- mapM_ (assertFindInFile "For hiding needles.") docFiles-- -- Test that Haddock with a newline in synopsis works correctly, #3004- tc "HaddockNewline" $ do- cabal "configure" []- cabal "haddock" []-- -- Test that Cabal properly orders GHC flags passed to GHC (when- -- there are multiple ghc-options fields.)- tc "OrderFlags" $ cabal_build []-- -- Test that reexported modules build correctly- -- TODO: should also test that they import OK!- tc "ReexportedModules" $ do- whenGhcVersion (>= Version [7,9] []) $ cabal_build []-- -- Test that Cabal computes different IPIDs when the source changes.- tc "UniqueIPID" . withPackageDb $ do- withPackage "P1" $ cabal "configure" []- withPackage "P2" $ cabal "configure" []- withPackage "P1" $ cabal "build" []- withPackage "P1" $ cabal "build" [] -- rebuild should work- r1 <- withPackage "P1" $ cabal' "register" ["--print-ipid", "--inplace"]- withPackage "P2" $ cabal "build" []- r2 <- withPackage "P2" $ cabal' "register" ["--print-ipid", "--inplace"]- let exIPID s = takeWhile (/= '\n') $- head . filter (isPrefixOf $ "UniqueIPID-0.1-") $ (tails s)- when ((exIPID $ resultOutput r1) == (exIPID $ resultOutput r2)) $- assertFailure $ "cabal has not calculated different Installed " ++- "package ID when source is changed."-- tc "DuplicateModuleName" $ do- cabal_build ["--enable-tests"]- r1 <- shouldFail $ cabal' "test" ["foo"]- assertOutputContains "test B" r1- assertOutputContains "test A" r1- r2 <- shouldFail $ cabal' "test" ["foo2"]- assertOutputContains "test C" r2- assertOutputContains "test A" r2-- tc "TestNameCollision" $ do- withPackageDb $ do- withPackage "parent" $ cabal_install []- withPackage "child" $ do- cabal_build ["--enable-tests"]- cabal "test" []-- -- Test that '--allow-newer' works via the 'Setup.hs configure' interface.- tc "AllowNewer" $ do- shouldFail $ cabal "configure" []- cabal "configure" ["--allow-newer"]- shouldFail $ cabal "configure" ["--allow-newer=baz,quux"]- cabal "configure" ["--allow-newer=base", "--allow-newer=baz,quux"]- cabal "configure" ["--allow-newer=bar", "--allow-newer=base,baz"- ,"--allow-newer=quux"]- shouldFail $ cabal "configure" ["--enable-tests"]- cabal "configure" ["--enable-tests", "--allow-newer"]- shouldFail $ cabal "configure" ["--enable-benchmarks"]- cabal "configure" ["--enable-benchmarks", "--allow-newer"]- shouldFail $ cabal "configure" ["--enable-benchmarks", "--enable-tests"]- cabal "configure" ["--enable-benchmarks", "--enable-tests"- ,"--allow-newer"]- shouldFail $ cabal "configure" ["--allow-newer=Foo:base"]- shouldFail $ cabal "configure" ["--allow-newer=Foo:base"- ,"--enable-tests", "--enable-benchmarks"]- cabal "configure" ["--allow-newer=AllowNewer:base"]- cabal "configure" ["--allow-newer=AllowNewer:base"- ,"--allow-newer=Foo:base"]- cabal "configure" ["--allow-newer=AllowNewer:base"- ,"--allow-newer=Foo:base"- ,"--enable-tests", "--enable-benchmarks"]-- -- Test that Cabal can choose flags to disable building a component when that- -- component's dependencies are unavailable. The build should succeed without- -- requiring the component's dependencies or imports.- tc "BuildableField" $ do- r <- cabal' "configure" ["-v"]- assertOutputContains "Flags chosen: build-exe=False" r- cabal "build" []-- -- TODO: Enable these tests on Windows- unlessWindows $ do- tc "GhcPkgGuess/SameDirectory" $ ghc_pkg_guess "ghc"- tc "GhcPkgGuess/SameDirectoryVersion" $ ghc_pkg_guess "ghc-7.10"- tc "GhcPkgGuess/SameDirectoryGhcVersion" $ ghc_pkg_guess "ghc-7.10"-- unlessWindows $ do- tc "GhcPkgGuess/Symlink" $ do- -- We don't want to distribute a tarball with symlinks. See #3190.- withSymlink "bin/ghc"- "tests/PackageTests/GhcPkgGuess/Symlink/ghc" $- ghc_pkg_guess "ghc"-- tc "GhcPkgGuess/SymlinkVersion" $ do- withSymlink "bin/ghc-7.10"- "tests/PackageTests/GhcPkgGuess/SymlinkVersion/ghc" $- ghc_pkg_guess "ghc"-- tc "GhcPkgGuess/SymlinkGhcVersion" $ do- withSymlink "bin/ghc-7.10"- "tests/PackageTests/GhcPkgGuess/SymlinkGhcVersion/ghc" $- ghc_pkg_guess "ghc"-- -- Test error message we report when a non-buildable target is- -- requested to be built- tc "BuildTargetErrors" $ do- cabal "configure" []- assertOutputContains "the component is marked as disabled"- =<< shouldFail (cabal' "build" ["not-buildable-exe"])-- where- ghc_pkg_guess bin_name = do- cwd <- packageDir- with_ghc <- getWithGhcPath- r <- withEnv [("WITH_GHC", Just with_ghc)]- . shouldFail $ cabal' "configure" ["-w", cwd </> bin_name]- assertOutputContains "is version 9999999" r- return ()-- -- Shared test function for BuildDeps/InternalLibrary* tests.- internal_lib_test expect = withPackageDb $ do- withPackage "to-install" $ cabal_install []- cabal_build []- r <- runExe' "lemon" []- assertEqual- ("executable should have linked with the " ++ expect ++ " library")- ("foo foo myLibFunc " ++ expect)- (concatOutput (resultOutput r))-- assertRegex :: String -> String -> Result -> TestM ()- assertRegex msg regex r = let out = resultOutput r- in assertBool (msg ++ ",\nactual output:\n" ++ out)- (out =~ regex)-- tc :: FilePath -> TestM a -> TestTreeM ()- tc name = testTree config name Nothing
− tests/PackageTests/UniqueIPID/P1/M.hs
@@ -1,3 +0,0 @@-module M(m) where--m = print "1"
− tests/PackageTests/UniqueIPID/P1/my.cabal
@@ -1,15 +0,0 @@-name: UniqueIPID-version: 0.1-license: BSD3-author: Vishal Agrawal-stability: stable-category: PackageTests-build-type: Simple-Cabal-version: >= 1.2--description:- Check that Cabal generates unique IPID based on source.--Library- exposed-modules: M- build-depends: base
− tests/PackageTests/UniqueIPID/P2/M.hs
@@ -1,3 +0,0 @@-module M(m) where--m = print "2"
− tests/PackageTests/UniqueIPID/P2/my.cabal
@@ -1,15 +0,0 @@-name: UniqueIPID-version: 0.1-license: BSD3-author: Vishal Agrawal-stability: stable-category: PackageTests-build-type: Simple-Cabal-version: >= 1.2--description:- Check that Cabal generates unique IPID based on source.--Library- exposed-modules: M- build-depends: base, containers
− tests/PackageTests/multInst/my.cabal
@@ -1,16 +0,0 @@-name: Haddock-version: 0.1-license: BSD3-author: Iain Nicol-stability: stable-category: PackageTests-build-type: Simple-Cabal-version: >= 1.2--description:- Check that Cabal successfully invokes Haddock.--Library- exposed-modules: CPP, Literate, NoCPP, Simple- other-extensions: CPP- build-depends: base
+ tests/ParserHackageTests.hs view
@@ -0,0 +1,365 @@+{-# LANGUAGE Rank2Types #-}+module Main where++import Control.Applicative+ (Applicative (..), (<$>), Const (..))+import Control.Monad (when)+import Data.Foldable+ (foldMap, for_, traverse_)+import Data.List (isPrefixOf, isSuffixOf)+import Data.Maybe (mapMaybe, listToMaybe)+import Data.Monoid (Monoid (..), Sum (..))+import Data.Traversable (traverse)+import Distribution.Simple.Utils (fromUTF8LBS, ignoreBOM)+import System.Directory+ (getAppUserDataDirectory)+import System.Environment (getArgs)+import System.Exit (exitFailure)+import System.FilePath ((</>))++import Distribution.Types.Dependency+import Distribution.Types.UnqualComponentName+import Distribution.PackageDescription++import qualified Codec.Archive.Tar as Tar+import qualified Data.ByteString as B+import qualified Data.ByteString.Char8 as B8+import qualified Data.ByteString.Lazy as BSL+import qualified Data.Map as Map+import qualified Distribution.PackageDescription.Parse as ReadP+import qualified Distribution.PackageDescription.Parsec as Parsec+import qualified Distribution.Parsec.Parser as Parsec+import qualified Distribution.Parsec.Types.Common as Parsec+import qualified Distribution.ParseUtils as ReadP+import qualified Distribution.Compat.DList as DList++#if __GLASGOW_HASKELL__ >= 708+import Data.Coerce+#else+import Unsafe.Coerce+#endif++#ifdef HAS_STRUCT_DIFF+import DiffInstances ()+import StructDiff+#endif++parseIndex :: Monoid a => (FilePath -> BSL.ByteString -> IO a) -> IO a+parseIndex action = do+ cabalDir <- getAppUserDataDirectory "cabal"+ cfg <- B.readFile (cabalDir </> "config")+ cfgFields <- either (fail . show) pure $ Parsec.readFields cfg+ let repos = reposFromConfig cfgFields+ repoCache = case lookupInConfig "remote-repo-cache" cfgFields of+ [] -> cabalDir </> "packages" -- Default+ (rrc : _) -> rrc -- User-specified+ tarName repo = repoCache </> repo </> "01-index.tar"+ mconcat <$> traverse (parseIndex' action . tarName) repos+++parseIndex' :: Monoid a => (FilePath -> BSL.ByteString -> IO a) -> FilePath -> IO a+parseIndex' action path = do+ putStrLn $ "Reading index from: " ++ path+ contents <- BSL.readFile path+ let entries = Tar.read contents+ Tar.foldEntries (\e m -> mappend <$> f e <*> m) (return mempty) (fail . show) entries++ where+ f entry = case Tar.entryContent entry of+ Tar.NormalFile contents _+ | ".cabal" `isSuffixOf` fpath -> action fpath contents+ | otherwise -> return mempty+ Tar.Directory -> return mempty+ _ -> putStrLn ("Unknown content in " ++ fpath) >> return mempty+ where+ fpath = Tar.entryPath entry++readFieldTest :: FilePath -> BSL.ByteString -> IO ()+readFieldTest fpath bsl = case Parsec.readFields $ BSL.toStrict bsl of+ Right _ -> return ()+ Left err -> putStrLn $ fpath ++ "\n" ++ show err++-- | Map with unionWith monoid+newtype M k v = M (Map.Map k v)+ deriving (Show)+instance (Ord k, Monoid v) => Monoid (M k v) where+ mempty = M Map.empty+ mappend (M a) (M b) = M (Map.unionWith mappend a b)++compareTest+ :: String -- ^ prefix of first packages to start traversal+ -> FilePath -> BSL.ByteString -> IO (Sum Int, Sum Int, M Parsec.PWarnType (Sum Int))+compareTest pfx fpath bsl+ | any ($ fpath) problematicFiles = mempty+ | not $ pfx `isPrefixOf` fpath = mempty+ | otherwise = do+ let str = ignoreBOM $ fromUTF8LBS bsl++ putStrLn $ "::: " ++ fpath+ (readp, readpWarnings) <- case ReadP.parseGenericPackageDescription str of+ ReadP.ParseOk ws x -> return (x, ws)+ ReadP.ParseFailed err -> print err >> exitFailure+ traverse_ (putStrLn . ReadP.showPWarning fpath) readpWarnings++ let (warnings, errors, parsec') = Parsec.runParseResult $ Parsec.parseGenericPackageDescription (BSL.toStrict bsl)+ traverse_ (putStrLn . Parsec.showPWarning fpath) warnings+ traverse_ (putStrLn . Parsec.showPError fpath) errors+ parsec <- maybe (print readp >> exitFailure) return parsec'++ -- Old parser is broken for many descriptions, and other free text fields+ let readp0 = readp+ & set (packageDescription_ . description_) ""+ & set (packageDescription_ . synopsis_) ""+ & set (packageDescription_ . maintainer_) ""+ let parsec0 = parsec+ & set (packageDescription_ . description_) ""+ & set (packageDescription_ . synopsis_) ""+ & set (packageDescription_ . maintainer_) ""++ -- hs-source-dirs ".", old parser broken+ -- See e.g. http://hackage.haskell.org/package/hledger-ui-0.27/hledger-ui.cabal executable+ let parsecHsSrcDirs = parsec0 & toListOf (buildInfos_ . hsSourceDirs_)+ let readpHsSrcDirs = readp0 & toListOf (buildInfos_ . hsSourceDirs_)+ let filterDotDirs = filter (/= ".")++ let parsec1 = if parsecHsSrcDirs /= readpHsSrcDirs && fmap filterDotDirs parsecHsSrcDirs == readpHsSrcDirs+ then parsec0 & over (buildInfos_ . hsSourceDirs_) filterDotDirs+ else parsec0++ -- Compare two parse results+ if readp0 == parsec1+ then return ()+ else do+#if HAS_STRUCT_DIFF+ prettyResultIO $ diff readp parsec+#else+ putStrLn "<<<<<<"+ print readp+ putStrLn "======"+ print parsec+ putStrLn ">>>>>>"+#endif+ exitFailure++ let readpWarnCount = Sum (length readpWarnings)+ let parsecWarnCount = Sum (length warnings)++ when (readpWarnCount > parsecWarnCount) $ do+ putStrLn "There are more readpWarnings"+ exitFailure++ let parsecWarnMap = foldMap (\(Parsec.PWarning t _ _) -> M $ Map.singleton t 1) warnings+ return (readpWarnCount, parsecWarnCount, parsecWarnMap)++parseReadpTest :: FilePath -> BSL.ByteString -> IO ()+parseReadpTest fpath bsl = when (not $ any ($ fpath) problematicFiles) $ do+ let str = fromUTF8LBS bsl+ case ReadP.parseGenericPackageDescription str of+ ReadP.ParseOk _ _ -> return ()+ ReadP.ParseFailed err -> print err >> exitFailure++parseParsecTest :: FilePath -> BSL.ByteString -> IO ()+parseParsecTest fpath bsl = when (not $ any ($ fpath) problematicFiles) $ do+ let bs = BSL.toStrict bsl+ let (_warnings, errors, parsec) = Parsec.runParseResult $ Parsec.parseGenericPackageDescription bs+ case parsec of+ Just _ -> return ()+ Nothing -> do+ traverse_ (putStrLn . Parsec.showPError fpath) errors+ exitFailure++problematicFiles :: [FilePath -> Bool]+problematicFiles =+ [+ -- Indent failure+ eq "control-monad-exception-mtl/0.10.3/control-monad-exception-mtl.cabal"+ -- Other modules <- no dash+ , eq "DSTM/0.1/DSTM.cabal"+ , eq "DSTM/0.1.1/DSTM.cabal"+ , eq "DSTM/0.1.2/DSTM.cabal"+ -- colon : after section header+ , eq "ds-kanren/0.2.0.0/ds-kanren.cabal"+ , eq "ds-kanren/0.2.0.1/ds-kanren.cabal"+ , eq "metric/0.1.4/metric.cabal"+ , eq "metric/0.2.0/metric.cabal"+ , eq "phasechange/0.1/phasechange.cabal"+ , eq "shelltestrunner/1.3/shelltestrunner.cabal"+ , eq "smartword/0.0.0.5/smartword.cabal"+ -- \DEL+ , eq "vacuum-opengl/0.0/vacuum-opengl.cabal"+ , eq "vacuum-opengl/0.0.1/vacuum-opengl.cabal"+ -- dashes in version, not even tag+ , isPrefixOf "free-theorems-webui/"+ -- {- comment -}+ , eq "ixset/1.0.4/ixset.cabal"+ -- comments in braces+ , isPrefixOf "hint/"+ ]+ where+ eq = (==)++main :: IO ()+main = do+ args <- getArgs+ case args of+ ["read-field"] -> parseIndex readFieldTest+ ["parse-readp"] -> parseIndex parseReadpTest+ ["parse-parsec"] -> parseIndex parseParsecTest+ [pfx] -> defaultMain pfx+ _ -> defaultMain ""+ where+ defaultMain pfx = do+ (Sum readpCount, Sum parsecCount, M warn) <- parseIndex (compareTest pfx)+ putStrLn $ "readp warnings: " ++ show readpCount+ putStrLn $ "parsec count: " ++ show parsecCount+ for_ (Map.toList warn) $ \(t, Sum c) ->+ putStrLn $ " - " ++ show t ++ " : " ++ show c++-------------------------------------------------------------------------------+-- Index shuffling+-------------------------------------------------------------------------------++-- TODO: Use 'Cabal' for this?+reposFromConfig :: [Parsec.Field ann] -> [String]+reposFromConfig fields = takeWhile (/= ':') <$> mapMaybe f fields+ where+ f (Parsec.Field (Parsec.Name _ name) fieldLines)+ | B8.unpack name == "remote-repo" =+ Just $ fieldLinesToString fieldLines+ f (Parsec.Section (Parsec.Name _ name) [Parsec.SecArgName _ secName] _fieldLines)+ | B8.unpack name == "repository" =+ Just $ B8.unpack secName+ f _ = Nothing++-- | Looks up the given key in the cabal configuration file+lookupInConfig :: String -> [Parsec.Field ann] -> [String]+lookupInConfig key = mapMaybe f+ where+ f (Parsec.Field (Parsec.Name _ name) fieldLines)+ | B8.unpack name == key =+ Just $ fieldLinesToString fieldLines+ f _ = Nothing++fieldLinesToString :: [Parsec.FieldLine ann] -> String+fieldLinesToString fieldLines =+ B8.unpack $ B.concat $ bsFromFieldLine <$> fieldLines+ where+ bsFromFieldLine (Parsec.FieldLine _ bs) = bs++-------------------------------------------------------------------------------+-- Distribution.Compat.Lens+-------------------------------------------------------------------------------++type Lens' s a = forall f. Functor f => (a -> f a) -> s -> f s+type Traversal' s a = forall f. Applicative f => (a -> f a) -> s -> f s++type Getting r s a = (a -> Const r a) -> s -> Const r s+type ASetter' s a = (a -> I a) -> s -> I s++++-- | View the value pointed to by a 'Getting' or 'Lens' or the+-- result of folding over all the results of a 'Control.Lens.Fold.Fold' or+-- 'Control.Lens.Traversal.Traversal' that points at a monoidal values.+view :: s -> Getting a s a -> a+view s l = getConst (l Const s)++-- | Replace the target of a 'Lens'' or 'Traversal'' with a constant value.+set :: ASetter' s a -> a -> s -> s+set l x = over l (const x)++-- | Modify the target of a 'Lens'' or all the targets of a 'Traversal''+-- with a function.+over :: ASetter' s a -> (a -> a) -> s -> s+#if __GLASGOW_HASKELL__ >= 708+over l f = coerce . l (coerce . f)+#else+over l f = unsafeCoerce . l (unsafeCoerce . f)+#endif++-- | Build a 'Lens'' from a getter and a setter.+lens :: (s -> a) -> (s -> a -> s) -> Lens' s a+lens sa sbt afb s = sbt s <$> afb (sa s)++-- | Build an 'Getting' from an arbitrary Haskell function.+to :: (s -> a) -> Getting r s a+to f g a = Const $ getConst $ g (f a)++-- | Extract a list of the targets of a 'Lens'' or 'Traversal''.+toListOf :: Getting (DList.DList a) s a -> s -> [a]+toListOf l = DList.runDList . getConst . l (Const . DList.singleton)++-- | Retrieve the first entry of a 'Traversal'' or retrieve 'Just' the result+-- from a 'Getting' or 'Lens''.+firstOf :: Getting (DList.DList a) s a -> s -> Maybe a+firstOf l = listToMaybe . toListOf l++-- | '&' is a reverse application operator+(&) :: a -> (a -> b) -> b+(&) = flip ($)+{-# INLINE (&) #-}+infixl 1 &++-------------------------------------------------------------------------------+-- Distribution.Compat.BasicFunctors+-------------------------------------------------------------------------------++newtype I a = I a++unI :: I a -> a+unI (I x) = x++instance Functor I where+ fmap f (I x) = I (f x)++instance Applicative I where+ pure = I+ I f <*> I x = I (f x)+ _ *> x = x++_2 :: Lens' (a, b) b+_2 = lens snd $ \(a, _) b -> (a, b)++-------------------------------------------------------------------------------+-- Distribution.PackageDescription.Lens+-------------------------------------------------------------------------------++packageDescription_ :: Lens' GenericPackageDescription PackageDescription+packageDescription_ = lens packageDescription $ \s a -> s { packageDescription = a }++condLibrary_ :: Lens' GenericPackageDescription (Maybe (CondTree ConfVar [Dependency] Library))+condLibrary_ = lens condLibrary $ \s a -> s { condLibrary = a}++condExecutables_ :: Lens' GenericPackageDescription [(UnqualComponentName, CondTree ConfVar [Dependency] Executable)]+condExecutables_ = lens condExecutables $ \s a -> s { condExecutables = a }++condTreeData_ :: Lens' (CondTree v c a) a+condTreeData_ = lens condTreeData $ \s a -> s { condTreeData = a }++description_, synopsis_, maintainer_ :: Lens' PackageDescription String+description_ = lens description $ \s a -> s { description = a }+synopsis_ = lens synopsis $ \s a -> s { synopsis = a }+maintainer_ = lens maintainer $ \s a -> s { maintainer = a }++class HasBuildInfo a where+ buildInfo_ :: Lens' a BuildInfo++instance HasBuildInfo Library where+ buildInfo_ = lens libBuildInfo $ \s a -> s { libBuildInfo = a }++instance HasBuildInfo Executable where+ buildInfo_ = lens buildInfo $ \s a -> s { buildInfo = a }++-- | This forgets a lot of structure, but might be nice for some stuff+buildInfos_ :: Traversal' GenericPackageDescription BuildInfo+buildInfos_ f gpd = mkGpd+ <$> (traverse . traverse . buildInfo_) f (condLibrary gpd)+ <*> (traverse . _2 . traverse . buildInfo_) f (condExecutables gpd)+ where+ mkGpd lib exe = gpd+ { condLibrary = lib+ , condExecutables = exe+ }++hsSourceDirs_ :: Lens' BuildInfo [FilePath]+hsSourceDirs_ = lens hsSourceDirs $ \s a -> s { hsSourceDirs = a }
+ tests/ParserTests.hs view
@@ -0,0 +1,56 @@+module Main+ ( main+ ) where++import Test.Tasty+import Test.Tasty.HUnit++import Data.Maybe (isJust)+import Distribution.PackageDescription.Parsec (parseGenericPackageDescription)+import Distribution.Parsec.Types.Common (PWarnType (..), PWarning (..))+import Distribution.Parsec.Types.ParseResult (runParseResult)+import System.FilePath ((</>))++import qualified Data.ByteString as BS++tests :: TestTree+tests = testGroup "parsec tests"+ [ warningTests+ ]++-- Verify that we trigger warnings+warningTests :: TestTree+warningTests = testGroup "warnings triggered"+ [ warningTest PWTLexBOM "bom.cabal"+ , warningTest PWTLexNBSP "nbsp.cabal"+ , warningTest PWTUTF "utf8.cabal"+ , warningTest PWTBoolCase "bool.cabal"+ , warningTest PWTGluedOperators "gluedop.cabal"+ , warningTest PWTVersionTag "versiontag.cabal"+ , warningTest PWTNewSyntax "newsyntax.cabal"+ , warningTest PWTOldSyntax "oldsyntax.cabal"+ , warningTest PWTDeprecatedField "deprecatedfield.cabal"+ , warningTest PWTInvalidSubsection "subsection.cabal"+ , warningTest PWTUnknownField "unknownfield.cabal"+ , warningTest PWTUnknownSection "unknownsection.cabal"+ , warningTest PWTTrailingFields "trailingfield.cabal"+ -- TODO: not implemented yet+ -- , warningTest PWTExtraTestModule "extratestmodule.cabal"+ ]++warningTest :: PWarnType -> FilePath -> TestTree+warningTest wt fp = testCase (show wt) $ do+ contents <- BS.readFile $ "tests" </> "ParserTests" </> "warnings" </> fp+ let res = parseGenericPackageDescription contents+ let (warns, errs, x) = runParseResult res++ assertBool "parses successfully" $ isJust x+ assertBool "parses without errors" $ null errs++ case warns of+ [PWarning wt' _ _] -> assertEqual "warning type" wt wt'+ [] -> assertFailure "got no warnings"+ _ -> assertFailure $ "got multiple warnings: " ++ show warns++main :: IO ()+main = defaultMain tests
+ tests/ParserTests/warnings/bom.cabal view
@@ -0,0 +1,7 @@+name: bom+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dirs: .
+ tests/ParserTests/warnings/bool.cabal view
@@ -0,0 +1,12 @@+name: bool+version: 1+cabal-version: >= 1.6++flag foo+ manual: true++library+ build-depends: base >= 4.9 && <4.10+ if flag(foo)+ build-depends: containers+ hs-source-dirs: .
+ tests/ParserTests/warnings/deprecatedfield.cabal view
@@ -0,0 +1,7 @@+name: deprecatedfield+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dir: .
+ tests/ParserTests/warnings/extratestmodule.cabal view
@@ -0,0 +1,11 @@+name: extramainis+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dirs: .++test-suite tests+ type: exitcode-stdio-1.0+ test-module: Tests
+ tests/ParserTests/warnings/gluedop.cabal view
@@ -0,0 +1,9 @@+name: gluedop+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ if os(windows) &&!impl(ghc)+ build-depends: containers+ hs-source-dirs: .
+ tests/ParserTests/warnings/nbsp.cabal view
@@ -0,0 +1,7 @@+name: nbsp+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dirs: .
+ tests/ParserTests/warnings/newsyntax.cabal view
@@ -0,0 +1,6 @@+name: newsyntax+version: 1++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dirs: .
+ tests/ParserTests/warnings/oldsyntax.cabal view
@@ -0,0 +1,6 @@+name: oldsyntax+version: 1+cabal-version: >= 1.6++build-depends: base >= 4.9 && <4.10+hs-source-dirs: .
+ tests/ParserTests/warnings/subsection.cabal view
@@ -0,0 +1,9 @@+name: subsection+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dirs: .+ iff os(windows)+ build-depends: containers
+ tests/ParserTests/warnings/trailingfield.cabal view
@@ -0,0 +1,9 @@+name: trailingfield+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dirs: .++description: No fields after sections
+ tests/ParserTests/warnings/unknownfield.cabal view
@@ -0,0 +1,8 @@+name: unknownfield+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dirs: .+ xfield: x
+ tests/ParserTests/warnings/unknownsection.cabal view
@@ -0,0 +1,10 @@+name: unknownsection+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dirs: .++z+ z-field: z
+ tests/ParserTests/warnings/utf8.cabal view
@@ -0,0 +1,8 @@+name: utf8+author: Oleg Grönroos+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10+ hs-source-dirs: .
+ tests/ParserTests/warnings/versiontag.cabal view
@@ -0,0 +1,7 @@+name: versiontag+version: 1+cabal-version: >= 1.6++library+ build-depends: base >= 4.9 && <4.10-rc1+ hs-source-dirs: .
tests/README.md view
@@ -1,38 +1,5 @@-Writing package tests-=====================--The tests under the [PackageTests] directory define and build packages-that exercise various components of Cabal. Each test case is an [HUnit]-test. The entry point for the test suite, where all the test cases are-listed, is [PackageTests.hs]. There are utilities for calling the stages-of Cabal's build process in [PackageTests/PackageTester.hs]; have a look-at an existing test case to see how they are used.--In order to run the tests, `PackageTests` needs to know where the inplace-copy of Cabal being tested is, as well as some information which was-used to configure it. By default, `PackageTests` tries to look at the-`LocalBuildInfo`, but if the format of `LocalBuildInfo` has changed-between the version of Cabal which ran the configure step, and the-version of Cabal we are testing against, this may fail. In that-case, you can manually specify the information we need using-the following environment variables:--* `CABAL_PACKAGETESTS_GHC` is the path to the GHC you compiled Cabal with-* `CABAL_PACKAGETESTS_GHC_PKG` is the path to the ghc-pkg associated with this GHC-* `CABAL_PACKAGETESTS_HADDOCK` is the path to the haddock associated with this GHC-* `CABAL_PACKAGETESTS_GHC_VERSION` is the version of your GHC-* `CABAL_PACKAGETESTS_DB_STACK` is a PATH-style list of package database paths,- `clear`, `global` and `user`. Each component of the list is- interpreted the same way as Cabal's `-package-db` flag. This list- must contain the copy of Cabal you are planning to test against- (as well as its transitive dependencies).--If you can successfully run the test suite, we'll print out examples-of all of these values for you under "Environment".+Unit tests+========== -[PackageTests]: PackageTests-[HUnit]: http://hackage.haskell.org/package/HUnit-[PackageTests.hs]: PackageTests.hs-[PackageTests/PackageTester.hs]: PackageTests/PackageTester.hs-[detailed]: ../Distribution/TestSuite.hs-[PackageTests/BuildTestSuiteDetailedV09/Check.hs]: PackageTests/BuildTestSuiteDetailedV09/Check.hs+Ordinary unit tests. If you're looking for the package tests,+they live in cabal-testsuite now.
− tests/Setup.hs
@@ -1,3 +0,0 @@-import Distribution.Simple-main = defaultMain-
+ tests/StructDiff.hs view
@@ -0,0 +1,162 @@+{- |++At the ZuriHac 2016 I worked on the new parsec-based parser for the *.cabal files.+The obvious test case is to compare new and old parser results for all of Hackage.+Traversing the Hackage is quite trivial. The difficult part is inspecting+the result 'GenericPackageDescription's to spot the difference.++In the same event, Andres Löh showed his library @generics-sop@. Obvious choice+to quickly put something together for the repetetive task. After all you can+compare records field-wise. And if sum constructors are different, that's+enough for our case as well!++Generic programming ftw.+-}++{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DefaultSignatures #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE PolyKinds #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}+-- | TODO: package as a library? is this useful elsewhere?+module StructDiff where++import Control.Applicative (liftA2)+import Data.Align.Key (AlignWithKey (..))+import Data.Foldable (Foldable, fold, traverse_)+import Data.Key (Key)+import Data.List (intercalate)+import Data.Map (Map)+import Data.Monoid (Monoid (..), (<>))+import Data.Singletons.Bool (SBool (..), SBoolI (..), eqToRefl)+import Data.These (These (..))+import Data.Type.Equality+import Generics.SOP++-- | Because @'Data.Proxy.Proxy' :: 'Data.Proxy.Proxy' a@ is so long.+data P a = P++-------------------------------------------------------------------------------+-- Structure diffs+-------------------------------------------------------------------------------++-- | Each thunk has a path, removed and added "stuff"+data DiffThunk = DiffThunk { dtPath :: [String], dtA :: String, dtB :: String }+ deriving Show++-- | Diff result is a collection of thunks+data DiffResult = DiffResult [DiffThunk]+ deriving Show++prefixThunk :: String -> DiffThunk -> DiffThunk+prefixThunk pfx (DiffThunk path a b) = DiffThunk (pfx : path) a b++prefixResult :: String -> DiffResult -> DiffResult+prefixResult name (DiffResult thunks) = DiffResult $ map (prefixThunk name) thunks++-- | Pretty print a result+prettyResultIO :: DiffResult -> IO ()+prettyResultIO (DiffResult []) = putStrLn "Equal"+prettyResultIO (DiffResult xs) = traverse_ p xs+ where+ p (DiffThunk paths a b) = do+ putStrLn $ intercalate " " paths ++ " : "+ putStrLn $ "- " ++ a+ putStrLn $ "+ " ++ b++-- | We can join diff results+instance Monoid DiffResult where+ mempty = DiffResult mempty+ mappend (DiffResult x) (DiffResult y) = DiffResult (mappend x y)++-- | And we have a class for things we can diff+class Diff a where+ diff :: a -> a -> DiffResult+ default diff+ :: (Generic a, HasDatatypeInfo a, All2 Diff (Code a))+ => a -> a -> DiffResult+ diff = gdiff++-- | And generic implementation!+gdiff :: forall a. (Generic a, HasDatatypeInfo a, All2 Diff (Code a)) => a -> a -> DiffResult+gdiff x y = gdiffS (constructorInfo (P :: P a)) (unSOP $ from x) (unSOP $ from y)++gdiffS :: All2 Diff xss => NP ConstructorInfo xss -> NS (NP I) xss -> NS (NP I) xss -> DiffResult+gdiffS (c :* _) (Z xs) (Z ys) = mconcat $ hcollapse $ hczipWith3 (P :: P Diff) f (fieldNames c) xs ys+ where+ f :: Diff a => K FieldName a -> I a -> I a -> K DiffResult a+ f (K fieldName) x y = K . prefixResult fieldName . unI $ liftA2 diff x y+gdiffS (_ :* cs) (S xss) (S yss) = gdiffS cs xss yss+gdiffS cs xs ys = DiffResult [DiffThunk [] (constructorNameOf cs xs) (constructorNameOf cs ys)]++eqDiff :: (Eq a, Show a) => a -> a -> DiffResult+eqDiff x y+ | x == y = DiffResult []+ | otherwise = DiffResult [DiffThunk [] (show x) (show y)]++alignDiff+ :: (Show (Key f), Show a, Diff a, AlignWithKey f, Foldable f)+ => f a -> f a -> DiffResult+alignDiff x y = fold $ alignWithKey (\k -> prefixResult (show k) . f) x y+ where+ f (These a b) = diff a b+ f (This a) = DiffResult [DiffThunk [] (show a) "<none>"]+ f (That b) = DiffResult [DiffThunk [] "<none>" (show b)]++instance Diff Char where diff = eqDiff+instance Diff Bool+instance Diff a => Diff (Maybe a)+instance Diff Int where diff = eqDiff+instance (Diff a, Diff b) => Diff (Either a b)++instance (Diff a, Diff b) => Diff (a, b) where+ diff (a, b) (a', b') =+ prefixResult "_1" (diff a a') <>+ prefixResult "_2" (diff b b')++instance (Diff a, Diff b, Diff c) => Diff (a, b, c) where+ diff (a, b, c) (a', b', c') =+ prefixResult "_1" (diff a a') <>+ prefixResult "_2" (diff b b') <>+ prefixResult "_3" (diff c c')++instance (SBoolI (a == Char), Show a, Diff a) => Diff [a] where+ diff = case sbool :: SBool (a == Char) of+ STrue -> case eqToRefl :: a :~: Char of+ Refl -> eqDiff+ SFalse -> alignDiff++instance (Ord k, Show k, Diff v, Show v) => Diff (Map k v) where diff = alignDiff++-------------------------------------------------------------------------------+-- SOP helpers+-------------------------------------------------------------------------------++constructorInfo :: (HasDatatypeInfo a, xss ~ Code a) => proxy a -> NP ConstructorInfo xss+constructorInfo p = case datatypeInfo p of+ ADT _ _ cs -> cs+ Newtype _ _ c -> c :* Nil++constructorNameOf :: NP ConstructorInfo xss -> NS f xss -> ConstructorName+constructorNameOf (c :* _) (Z _) = constructorName c+constructorNameOf (_ :* cs) (S xs) = constructorNameOf cs xs+#if __GLASGOW_HASKELL__ < 800+constructorNameOf _ _ = error "Should never happen"+#endif++constructorName :: ConstructorInfo xs -> ConstructorName+constructorName (Constructor name) = name+constructorName (Infix name _ _) = "(" ++ name ++ ")"+constructorName (Record name _) = name++-- | This is a little lie.+fieldNames :: ConstructorInfo xs -> NP (K FieldName) xs+fieldNames (Constructor name) = hpure (K name) -- TODO: add .1 .2 etc.+fieldNames (Infix name _ _) = K ("-(" ++ name ++ ")") :* K ("(" ++ name ++ ")-") :* Nil+fieldNames (Record _ fis) = hmap (\(FieldInfo fieldName) -> K fieldName) fis
tests/UnitTests.hs view
@@ -1,34 +1,84 @@+{-# LANGUAGE DeriveDataTypeable #-} module Main ( main ) where import Test.Tasty+import Test.Tasty.Options +import Data.Proxy+import Data.Typeable++import Distribution.Simple.Utils+import Distribution.Verbosity+import Distribution.Compat.Time+ import qualified UnitTests.Distribution.Compat.CreatePipe import qualified UnitTests.Distribution.Compat.ReadP+import qualified UnitTests.Distribution.Compat.Time+import qualified UnitTests.Distribution.Compat.Graph import qualified UnitTests.Distribution.Simple.Program.Internal import qualified UnitTests.Distribution.Simple.Utils import qualified UnitTests.Distribution.System import qualified UnitTests.Distribution.Utils.NubList+import qualified UnitTests.Distribution.Utils.ShortText import qualified UnitTests.Distribution.Version (versionTests) -tests :: TestTree-tests = testGroup "Unit Tests" $+tests :: Int -> TestTree+tests mtimeChangeCalibrated =+ askOption $ \(OptionMtimeChangeDelay mtimeChangeProvided) ->+ let mtimeChange = if mtimeChangeProvided /= 0+ then mtimeChangeProvided+ else mtimeChangeCalibrated+ in+ testGroup "Unit Tests" $ [ testGroup "Distribution.Compat.CreatePipe" UnitTests.Distribution.Compat.CreatePipe.tests , testGroup "Distribution.Compat.ReadP" UnitTests.Distribution.Compat.ReadP.tests+ , testGroup "Distribution.Compat.Time"+ (UnitTests.Distribution.Compat.Time.tests mtimeChange)+ , testGroup "Distribution.Compat.Graph"+ UnitTests.Distribution.Compat.Graph.tests , testGroup "Distribution.Simple.Program.Internal" UnitTests.Distribution.Simple.Program.Internal.tests , testGroup "Distribution.Simple.Utils" UnitTests.Distribution.Simple.Utils.tests , testGroup "Distribution.Utils.NubList" UnitTests.Distribution.Utils.NubList.tests+ , testGroup "Distribution.Utils.ShortText"+ UnitTests.Distribution.Utils.ShortText.tests , testGroup "Distribution.System" UnitTests.Distribution.System.tests , testGroup "Distribution.Version" UnitTests.Distribution.Version.versionTests ] +extraOptions :: [OptionDescription]+extraOptions =+ [ Option (Proxy :: Proxy OptionMtimeChangeDelay)+ ]++newtype OptionMtimeChangeDelay = OptionMtimeChangeDelay Int+ deriving Typeable++instance IsOption OptionMtimeChangeDelay where+ defaultValue = OptionMtimeChangeDelay 0+ parseValue = fmap OptionMtimeChangeDelay . safeRead+ optionName = return "mtime-change-delay"+ optionHelp = return $ "How long to wait before attempting to detect"+ ++ "file modification, in microseconds"+ main :: IO ()-main = defaultMain tests+main = do+ (mtimeChange, mtimeChange') <- calibrateMtimeChangeDelay+ let toMillis :: Int -> Double+ toMillis x = fromIntegral x / 1000.0+ notice normal $ "File modification time resolution calibration completed, "+ ++ "maximum delay observed: "+ ++ (show . toMillis $ mtimeChange ) ++ " ms. "+ ++ "Will be using delay of " ++ (show . toMillis $ mtimeChange')+ ++ " for test runs."+ defaultMainWithIngredients+ (includingOptions extraOptions : defaultIngredients)+ (tests mtimeChange')
+ tests/UnitTests/Distribution/Compat/Graph.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE FlexibleInstances #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module UnitTests.Distribution.Compat.Graph+ ( tests+ , arbitraryGraph+ ) where++import Distribution.Compat.Graph++import qualified Prelude+import Prelude hiding (null)+import Test.Tasty+import Test.Tasty.QuickCheck+import qualified Data.Set as Set+import Control.Monad+import qualified Data.Graph as G+import Data.Array ((!))+import Data.Maybe+import Data.List (sort)++tests :: [TestTree]+tests =+ [ testProperty "arbitrary unbroken" (prop_arbitrary_unbroken :: Graph (Node Int ()) -> Bool)+ , testProperty "nodes consistent" (prop_nodes_consistent :: Graph (Node Int ()) -> Bool)+ , testProperty "edges consistent" (prop_edges_consistent :: Graph (Node Int ()) -> Property)+ , testProperty "closure consistent" (prop_closure_consistent :: Graph (Node Int ()) -> Property)+ ]++-- Our arbitrary instance does not generate broken graphs+prop_arbitrary_unbroken :: Graph a -> Bool+prop_arbitrary_unbroken g = Prelude.null (broken g)++-- Every node from 'toList' maps to a vertex which+-- is present in the constructed graph, and maps back+-- to a node correctly.+prop_nodes_consistent :: (Eq a, IsNode a) => Graph a -> Bool+prop_nodes_consistent g = all p (toList g)+ where+ (_, vtn, ktv) = toGraph g+ p n = case ktv (nodeKey n) of+ Just v -> vtn v == n+ Nothing -> False++-- A non-broken graph has the 'nodeNeighbors' of each node+-- equal the recorded adjacent edges in the node graph.+prop_edges_consistent :: IsNode a => Graph a -> Property+prop_edges_consistent g = Prelude.null (broken g) ==> all p (toList g)+ where+ (gr, vtn, ktv) = toGraph g+ p n = sort (nodeNeighbors n)+ == sort (map (nodeKey . vtn) (gr ! fromJust (ktv (nodeKey n))))++-- Closure is consistent with reachable+prop_closure_consistent :: (Show a, IsNode a) => Graph a -> Property+prop_closure_consistent g =+ not (null g) ==>+ forAll (elements (toList g)) $ \n ->+ Set.fromList (map nodeKey (fromJust (closure g [nodeKey n])))+ == Set.fromList (map (nodeKey . vtn) (G.reachable gr (fromJust (ktv (nodeKey n)))))+ where+ (gr, vtn, ktv) = toGraph g++hasNoDups :: Ord a => [a] -> Bool+hasNoDups = loop Set.empty+ where+ loop _ [] = True+ loop s (x:xs) | s' <- Set.insert x s, Set.size s' > Set.size s+ = loop s' xs+ | otherwise+ = False++-- | Produces a graph of size @len@. We sample with 'suchThat'; if we+-- dropped duplicate entries our size could be smaller.+arbitraryGraph :: (Ord k, Show k, Arbitrary k, Arbitrary a)+ => Int -> Gen (Graph (Node k a))+arbitraryGraph len = do+ -- Careful! Assume k is much larger than size.+ ks <- vectorOf len arbitrary `suchThat` hasNoDups+ ns <- forM ks $ \k -> do+ a <- arbitrary+ ns <- listOf (elements ks)+ -- Allow duplicates!+ return (N a k ns)+ return (fromDistinctList ns)++instance (Ord k, Show k, Arbitrary k, Arbitrary a)+ => Arbitrary (Graph (Node k a)) where+ arbitrary = sized $ \n -> do+ len <- choose (0, n)+ arbitraryGraph len
+ tests/UnitTests/Distribution/Compat/Time.hs view
@@ -0,0 +1,49 @@+module UnitTests.Distribution.Compat.Time (tests) where++import Control.Concurrent (threadDelay)+import System.FilePath++import Distribution.Simple.Utils (withTempDirectory)+import Distribution.Verbosity++import Distribution.Compat.Time++import Test.Tasty+import Test.Tasty.HUnit++tests :: Int -> [TestTree]+tests mtimeChange =+ [ testCase "getModTime has sub-second resolution" $ getModTimeTest mtimeChange+ , testCase "getCurTime works as expected" $ getCurTimeTest mtimeChange+ ]++getModTimeTest :: Int -> Assertion+getModTimeTest mtimeChange =+ withTempDirectory silent "." "getmodtime-" $ \dir -> do+ let fileName = dir </> "foo"+ writeFile fileName "bar"+ t0 <- getModTime fileName+ threadDelay mtimeChange+ writeFile fileName "baz"+ t1 <- getModTime fileName+ assertBool "expected different file mtimes" (t1 > t0)+++getCurTimeTest :: Int -> Assertion+getCurTimeTest mtimeChange =+ withTempDirectory silent "." "getmodtime-" $ \dir -> do+ let fileName = dir </> "foo"+ writeFile fileName "bar"+ t0 <- getModTime fileName+ threadDelay mtimeChange+ t1 <- getCurTime+ assertBool("expected file mtime (" ++ show t0+ ++ ") to be earlier than current time (" ++ show t1 ++ ")")+ (t0 < t1)++ threadDelay mtimeChange+ writeFile fileName "baz"+ t2 <- getModTime fileName+ assertBool ("expected current time (" ++ show t1+ ++ ") to be earlier than file mtime (" ++ show t2 ++ ")")+ (t1 < t2)
tests/UnitTests/Distribution/Simple/Utils.hs view
@@ -9,7 +9,9 @@ import System.Directory ( doesDirectoryExist, doesFileExist , getTemporaryDirectory , removeDirectoryRecursive, removeFile )-import System.IO (hClose)+import System.IO (hClose, localeEncoding, hPutStrLn)+import System.IO.Error+import qualified Control.Exception as Exception import Test.Tasty import Test.Tasty.HUnit@@ -46,6 +48,43 @@ withTempDirectory normal tempDir "foo" $ \dirPath -> do removeDirectoryRecursive dirPath +rawSystemStdInOutTextDecodingTest :: Assertion+rawSystemStdInOutTextDecodingTest+ -- We can only get this exception when the locale encoding is UTF-8+ -- so skip the test if it's not.+ | show localeEncoding /= "UTF-8" = return ()+ | otherwise = do+ tempDir <- getTemporaryDirectory+ res <- withTempFile tempDir ".hs" $ \filenameHs handleHs -> do+ withTempFile tempDir ".exe" $ \filenameExe handleExe -> do+ -- Small program printing not utf8+ hPutStrLn handleHs "import Data.ByteString"+ hPutStrLn handleHs "main = Data.ByteString.putStr (Data.ByteString.pack [32, 32, 255])"+ hClose handleHs++ -- We need to close exe handle as well, otherwise compilation (writing) may fail+ hClose handleExe++ -- Compile+ compilationResult <- rawSystemStdInOut normal+ "ghc" ["-o", filenameExe, filenameHs]+ Nothing Nothing Nothing+ False+ print compilationResult++ -- Execute+ Exception.try $ do+ rawSystemStdInOut normal+ filenameExe []+ Nothing Nothing Nothing+ False -- not binary mode output, ie utf8 text mode so try to decode+ case res of+ Right x -> assertFailure $ "expected IO decoding exception: " ++ show x+ Left err | isDoesNotExistError err -> Exception.throwIO err -- no ghc!+ | otherwise -> return ()+++ tests :: [TestTree] tests = [ testCase "withTempFile works as expected" $@@ -56,4 +95,6 @@ withTempDirTest , testCase "withTempDirectory can handle removed directories" $ withTempDirRemovedTest+ , testCase "rawSystemStdInOut reports text decoding errors" $+ rawSystemStdInOutTextDecodingTest ]
tests/UnitTests/Distribution/Utils/NubList.hs view
@@ -1,11 +1,12 @@-{-# LANGUAGE CPP #-}+-- to suppress WARNING in "Distribution.Compat.Prelude.Internal"+{-# OPTIONS_GHC -fno-warn-deprecations #-} module UnitTests.Distribution.Utils.NubList ( tests ) where -#if __GLASGOW_HASKELL__ < 710-import Data.Monoid-#endif+import Prelude ()+import Distribution.Compat.Prelude.Internal+ import Distribution.Utils.NubList import Test.Tasty import Test.Tasty.HUnit@@ -13,10 +14,15 @@ tests :: [TestTree] tests =- [ testCase "Numlist retains ordering" testOrdering- , testCase "Numlist removes duplicates" testDeDupe- , testProperty "Monoid Numlist Identity" prop_Identity- , testProperty "Monoid Numlist Associativity" prop_Associativity+ [ testCase "NubList retains ordering example" testOrdering+ , testCase "NubList removes duplicates example" testDeDupe+ , testProperty "NubList retains ordering" prop_Ordering+ , testProperty "NubList removes duplicates" prop_DeDupe+ , testProperty "fromNubList . toNubList = nub" prop_Nub+ , testProperty "Monoid NubList Identity" prop_Identity+ , testProperty "Monoid NubList Associativity" prop_Associativity+ -- NubListR+ , testProperty "NubListR removes duplicates from the right" prop_DeDupeR ] someIntList :: [Int]@@ -35,6 +41,30 @@ -- --------------------------------------------------------------------------- -- QuickCheck properties for NubList++prop_Ordering :: [Int] -> Property+prop_Ordering xs =+ mempty <> toNubList xs' === toNubList xs' <> mempty+ where+ xs' = nub xs++prop_DeDupe :: [Int] -> Property+prop_DeDupe xs =+ fromNubList (toNubList (xs' ++ xs)) === xs' -- Note, we append primeless xs+ where+ xs' = nub xs++prop_DeDupeR :: [Int] -> Property+prop_DeDupeR xs =+ fromNubListR (toNubListR (xs ++ xs')) === xs' -- Note, we prepend primeless xs+ where+ xs' = nub xs++prop_Nub :: [Int] -> Property+prop_Nub xs = rhs === lhs+ where+ rhs = fromNubList (toNubList xs)+ lhs = nub xs prop_Identity :: [Int] -> Bool prop_Identity xs =
+ tests/UnitTests/Distribution/Utils/ShortText.hs view
@@ -0,0 +1,33 @@+module UnitTests.Distribution.Utils.ShortText+ ( tests+ ) where++import Data.Monoid as Mon+import Test.Tasty+import Test.Tasty.QuickCheck++import Distribution.Compat.Binary (encode, decode)++import Distribution.Utils.ShortText++prop_ShortTextOrd :: String -> String -> Bool+prop_ShortTextOrd a b = compare a b == compare (toShortText a) (toShortText b)++prop_ShortTextMonoid :: String -> String -> Bool+prop_ShortTextMonoid a b = Mon.mappend a b == fromShortText (mappend (toShortText a) (toShortText b))++prop_ShortTextId :: String -> Bool+prop_ShortTextId a = (fromShortText . toShortText) a == a++prop_ShortTextBinaryId :: String -> Bool+prop_ShortTextBinaryId a = (decode . encode) a' == a'+ where+ a' = toShortText a++tests :: [TestTree]+tests =+ [ testProperty "ShortText Id" prop_ShortTextId+ , testProperty "ShortText Ord" prop_ShortTextOrd+ , testProperty "ShortText Monoid" prop_ShortTextMonoid+ , testProperty "ShortText BinaryId" prop_ShortTextBinaryId+ ]
tests/UnitTests/Distribution/Version.hs view
@@ -15,80 +15,97 @@ import Test.Tasty.QuickCheck import qualified Test.Laws as Laws -#if !MIN_VERSION_QuickCheck(2,9,0) import Test.QuickCheck.Utils-#endif import Control.Monad (liftM, liftM2) import Data.Maybe (isJust, fromJust) import Data.List (sort, sortBy, nub) import Data.Ord (comparing)+import Data.Function (on)+#if MIN_VERSION_base(4,6,0)+import Text.Read (readMaybe)+#endif versionTests :: [TestTree] versionTests =- zipWith (\n p -> testProperty ("Range Property " ++ show n) p) [1::Int ..]- -- properties to validate the test framework- [ property prop_nonNull- , property prop_gen_intervals1- , property prop_gen_intervals2---, property prop_equivalentVersionRange --FIXME: runs out of test cases- , property prop_intermediateVersion+ -- test 'Version' type+ [ tp "versionNumbers . mkVersion = id @[NonNegative Int]" prop_VersionId+ , tp "versionNumbers . mkVersion = id @Base.Version" prop_VersionId2+ , tp "(==) = (==) `on` versionNumbers" prop_VersionEq+ , tp "(==) = (==) `on` mkVersion" prop_VersionEq2+ , tp "compare = compare `on` versionNumbers" prop_VersionOrd+ , tp "compare = compare `on` mkVersion" prop_VersionOrd2 - -- the basic syntactic version range functions- , property prop_anyVersion- , property prop_noVersion- , property prop_thisVersion- , property prop_notThisVersion- , property prop_laterVersion- , property prop_orLaterVersion- , property prop_earlierVersion- , property prop_orEarlierVersion- , property prop_unionVersionRanges- , property prop_intersectVersionRanges- , property prop_differenceVersionRanges- , property prop_invertVersionRange- , property prop_withinVersion- , property prop_foldVersionRange- , property prop_foldVersionRange'+ , tp "readMaybe . show = Just" prop_ShowRead+ , tp "read example" prop_ShowRead_example+ ] - -- the semantic query functions---, property prop_isAnyVersion1 --FIXME: runs out of test cases---, property prop_isAnyVersion2 --FIXME: runs out of test cases---, property prop_isNoVersion --FIXME: runs out of test cases---, property prop_isSpecificVersion1 --FIXME: runs out of test cases---, property prop_isSpecificVersion2 --FIXME: runs out of test cases- , property prop_simplifyVersionRange1- , property prop_simplifyVersionRange1'---, property prop_simplifyVersionRange2 --FIXME: runs out of test cases---, property prop_simplifyVersionRange2' --FIXME: runs out of test cases---, property prop_simplifyVersionRange2'' --FIXME: actually wrong+ ++ + zipWith (\n p -> testProperty ("Range Property " ++ show n) p) [1::Int ..]+ -- properties to validate the test framework+ [ property prop_nonNull+ , property prop_gen_intervals1+ , property prop_gen_intervals2+ --, property prop_equivalentVersionRange --FIXME: runs out of test cases+ , property prop_intermediateVersion - -- converting between version ranges and version intervals- , property prop_to_intervals---, property prop_to_intervals_canonical --FIXME: runs out of test cases---, property prop_to_intervals_canonical' --FIXME: runs out of test cases- , property prop_from_intervals- , property prop_to_from_intervals- , property prop_from_to_intervals- , property prop_from_to_intervals'+ , property prop_anyVersion+ , property prop_noVersion+ , property prop_thisVersion+ , property prop_notThisVersion+ , property prop_laterVersion+ , property prop_orLaterVersion+ , property prop_earlierVersion+ , property prop_orEarlierVersion+ , property prop_unionVersionRanges+ , property prop_intersectVersionRanges+ , property prop_differenceVersionRanges+ , property prop_invertVersionRange+ , property prop_withinVersion+ , property prop_foldVersionRange+ , property prop_foldVersionRange' - -- union and intersection of version intervals- , property prop_unionVersionIntervals- , property prop_unionVersionIntervals_idempotent- , property prop_unionVersionIntervals_commutative- , property prop_unionVersionIntervals_associative- , property prop_intersectVersionIntervals- , property prop_intersectVersionIntervals_idempotent- , property prop_intersectVersionIntervals_commutative- , property prop_intersectVersionIntervals_associative- , property prop_union_intersect_distributive- , property prop_intersect_union_distributive+ -- the semantic query functions+ --, property prop_isAnyVersion1 --FIXME: runs out of test cases+ --, property prop_isAnyVersion2 --FIXME: runs out of test cases+ --, property prop_isNoVersion --FIXME: runs out of test cases+ --, property prop_isSpecificVersion1 --FIXME: runs out of test cases+ --, property prop_isSpecificVersion2 --FIXME: runs out of test cases+ , property prop_simplifyVersionRange1+ , property prop_simplifyVersionRange1'+ --, property prop_simplifyVersionRange2 --FIXME: runs out of test cases+ --, property prop_simplifyVersionRange2' --FIXME: runs out of test cases+ --, property prop_simplifyVersionRange2'' --FIXME: actually wrong - -- inversion of version intervals- , property prop_invertVersionIntervals- , property prop_invertVersionIntervalsTwice- ]+ -- converting between version ranges and version intervals+ , property prop_to_intervals+ --, property prop_to_intervals_canonical --FIXME: runs out of test cases+ --, property prop_to_intervals_canonical' --FIXME: runs out of test cases+ , property prop_from_intervals+ , property prop_to_from_intervals+ , property prop_from_to_intervals+ , property prop_from_to_intervals' + -- union and intersection of version intervals+ , property prop_unionVersionIntervals+ , property prop_unionVersionIntervals_idempotent+ , property prop_unionVersionIntervals_commutative+ , property prop_unionVersionIntervals_associative+ , property prop_intersectVersionIntervals+ , property prop_intersectVersionIntervals_idempotent+ , property prop_intersectVersionIntervals_commutative+ , property prop_intersectVersionIntervals_associative+ , property prop_union_intersect_distributive+ , property prop_intersect_union_distributive++ -- inversion of version intervals+ , property prop_invertVersionIntervals+ , property prop_invertVersionIntervalsTwice+ ]+ where+ tp :: Testable p => String -> p -> TestTree+ tp = testProperty+ -- parseTests :: [TestTree] -- parseTests = -- zipWith (\n p -> testProperty ("Parse Property " ++ show n) p) [1::Int ..]@@ -104,24 +121,45 @@ -- -- , property prop_parse_disp5 -- ] -#if !MIN_VERSION_QuickCheck(2,9,0) instance Arbitrary Version where arbitrary = do- branch <- smallListOf1 $- frequency [(3, return 0)- ,(3, return 1)- ,(2, return 2)- ,(1, return 3)]- return (Version branch []) -- deliberate []+ branch <- smallListOf1 $+ frequency [(3, return 0)+ ,(3, return 1)+ ,(2, return 2)+ ,(2, return 3)+ ,(1, return 0xfffd)+ ,(1, return 0xfffe) -- max fitting into packed W64+ ,(1, return 0xffff)+ ,(1, return 0x10000)]+ return (mkVersion branch) where- smallListOf1 = adjustSize (\n -> min 5 (n `div` 3)) . listOf1+ smallListOf1 = adjustSize (\n -> min 6 (n `div` 3)) . listOf1 - shrink (Version branch []) =- [ Version branch' [] | branch' <- shrink branch, not (null branch') ]- shrink (Version branch _tags) =- [ Version branch [] ]-#endif+ shrink ver = [ mkVersion ns | ns <- shrink (versionNumbers ver)+ , not (null ns) ] +newtype VersionArb = VersionArb [Int]+ deriving (Eq,Ord,Show)++-- | 'Version' instance as used by QC 2.9+instance Arbitrary VersionArb where+ arbitrary = sized $ \n ->+ do k <- choose (0, log2 n)+ xs <- vectorOf (k+1) arbitrarySizedNatural+ return (VersionArb xs)+ where+ log2 :: Int -> Int+ log2 n | n <= 1 = 0+ | otherwise = 1 + log2 (n `div` 2)++ shrink (VersionArb xs) =+ [ VersionArb xs'+ | xs' <- shrink xs+ , length xs' > 0+ , all (>=0) xs'+ ]+ instance Arbitrary VersionRange where arbitrary = sized verRangeExp where@@ -148,12 +186,52 @@ orEarlierVersion' v = unionVersionRanges (EarlierVersion v) (ThisVersion v) +---------------------+-- Version properties+--++prop_VersionId :: [NonNegative Int] -> Bool+prop_VersionId lst0 =+ (versionNumbers . mkVersion) lst == lst+ where+ lst = map getNonNegative lst0++prop_VersionId2 :: VersionArb -> Bool+prop_VersionId2 (VersionArb lst) =+ (versionNumbers . mkVersion) lst == lst++prop_VersionEq :: Version -> Version -> Bool+prop_VersionEq v1 v2 = (==) v1 v2 == ((==) `on` versionNumbers) v1 v2++prop_VersionEq2 :: VersionArb -> VersionArb -> Bool+prop_VersionEq2 (VersionArb v1) (VersionArb v2) =+ (==) v1 v2 == ((==) `on` mkVersion) v1 v2++prop_VersionOrd :: Version -> Version -> Bool+prop_VersionOrd v1 v2 =+ compare v1 v2 == (compare `on` versionNumbers) v1 v2++prop_VersionOrd2 :: VersionArb -> VersionArb -> Bool+prop_VersionOrd2 (VersionArb v1) (VersionArb v2) =+ (==) v1 v2 == ((==) `on` mkVersion) v1 v2++prop_ShowRead :: Version -> Property+#if MIN_VERSION_base(4,6,0)+prop_ShowRead v = Just v === readMaybe (show v)+#else+-- readMaybe is since base-4.6+prop_ShowRead v = v === read (show v)+#endif++prop_ShowRead_example :: Bool+prop_ShowRead_example = show (mkVersion [1,2,3]) == "mkVersion [1,2,3]"+ --------------------------- -- VersionRange properties -- prop_nonNull :: Version -> Bool-prop_nonNull = not . null . versionBranch+prop_nonNull = (/= nullVersion) prop_anyVersion :: Version -> Bool prop_anyVersion v' =@@ -218,7 +296,7 @@ withinRange v' (withinVersion v) == (v' >= v && v' < upper v) where- upper (Version lower t) = Version (init lower ++ [last lower + 1]) t+ upper = alterVersion $ \numbers -> init numbers ++ [last numbers + 1] prop_foldVersionRange :: VersionRange -> Bool prop_foldVersionRange range =@@ -230,9 +308,6 @@ where expandWildcard (WildcardVersion v) = intersectVersionRanges (orLaterVersion v) (earlierVersion (upper v))- where- upper (Version lower t) = Version (init lower ++ [last lower + 1]) t- expandWildcard (UnionVersionRanges v1 v2) = UnionVersionRanges (expandWildcard v1) (expandWildcard v2) expandWildcard (IntersectVersionRanges v1 v2) =@@ -240,6 +315,7 @@ expandWildcard (VersionRangeParens v) = expandWildcard v expandWildcard v = v + upper = alterVersion $ \numbers -> init numbers ++ [last numbers + 1] prop_foldVersionRange' :: VersionRange -> Bool prop_foldVersionRange' range =@@ -248,6 +324,7 @@ laterVersion earlierVersion orLaterVersion orEarlierVersion (\v _ -> withinVersion v)+ (\v _ -> majorBoundVersion v) unionVersionRanges intersectVersionRanges id range where@@ -580,10 +657,9 @@ equivalentVersionRange :: VersionRange -> VersionRange -> Bool equivalentVersionRange vr1 vr2 = let allVersionsUsed = nub (sort (versionsUsed vr1 ++ versionsUsed vr2))- minPoint = Version [0] []+ minPoint = mkVersion [0] maxPoint | null allVersionsUsed = minPoint- | otherwise = case maximum allVersionsUsed of- Version vs _ -> Version (vs ++ [1]) []+ | otherwise = alterVersion (++[1]) (maximum allVersionsUsed) probeVersions = minPoint : maxPoint : intermediateVersions allVersionsUsed @@ -597,8 +673,8 @@ intermediateVersion :: Version -> Version -> Version intermediateVersion v1 v2 | v1 >= v2 = error "intermediateVersion: v1 >= v2"-intermediateVersion (Version v1 _) (Version v2 _) =- Version (intermediateList v1 v2) []+intermediateVersion v1 v2 =+ mkVersion (intermediateList (versionNumbers v1) (versionNumbers v2)) where intermediateList :: [Int] -> [Int] -> [Int] intermediateList [] (_:_) = [0]@@ -616,8 +692,10 @@ in v1 > v && v > v2 adjacentVersions :: Version -> Version -> Bool-adjacentVersions (Version v1 _) (Version v2 _) = v1 ++ [0] == v2- || v2 ++ [0] == v1+adjacentVersions ver1 ver2 = v1 ++ [0] == v2 || v2 ++ [0] == v1+ where+ v1 = versionNumbers ver1+ v2 = versionNumbers ver2 -------------------------------- -- Parsing and pretty printing@@ -655,6 +733,7 @@ laterVersion earlierVersion orLaterVersion orEarlierVersion (\v _ -> withinVersion v)+ (\v _ -> MajorBoundVersion v) unionVersionRanges intersectVersionRanges id stripParens :: VersionRange -> VersionRange@@ -713,11 +792,13 @@ (\v -> Disp.text ">=" <> disp v) (\v -> Disp.text "<=" <> disp v) (\v _ -> Disp.text "==" <> dispWild v)+ (\v _ -> Disp.text "^>=" <> disp v) (\r1 r2 -> r1 <+> Disp.text "||" <+> r2) (\r1 r2 -> r1 <+> Disp.text "&&" <+> r2) (\r -> Disp.parens r) -- parens where- dispWild (Version b _) =- Disp.hcat (Disp.punctuate (Disp.char '.') (map Disp.int b))+ dispWild v =+ Disp.hcat (Disp.punctuate (Disp.char '.')+ (map Disp.int (versionNumbers v))) <> Disp.text ".*"